:從原理到實踐)
1. 引言Transformer架構(gòu)自2017年由Google在論文《Attention Is All You Need》中提出以來徹底改變了自然語言處理NLP乃至整個深度學習領域。它摒棄了傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡RNN和卷積神經(jīng)網(wǎng)絡CNN完全基于自注意力Self-Attention機制構(gòu)建在并行計算能力和長距離依賴建模方面展現(xiàn)出巨大優(yōu)勢。如今從BERT、GPT系列到各種大語言模型LLMTransformer已成為現(xiàn)代AI模型的基石。2. 核心組件Transformer模型主要由編碼器Encoder和解碼器Decoder堆疊而成但其核心思想在于以下幾個關(guān)鍵組件2.1 自注意力機制Self-Attention自注意力機制允許模型在處理序列時為序列中的每個位置計算一個“注意力分數(shù)”該分數(shù)決定了在編碼當前位置時應該“關(guān)注”序列中其他位置的多少信息。其核心公式如下Attention(Q, K, V) softmax(QK^T / sqrt(d_k)) V其中QQuery、KKey、VValue均來自輸入序列的線性變換。除以sqrt(d_k)是為了防止點積結(jié)果過大導致softmax梯度消失。2.2 多頭注意力Multi-Head Attention為了增強模型捕捉不同子空間信息的能力Transformer將自注意力機制并行執(zhí)行多次即多個“頭”然后將各頭的輸出拼接并做一次線性變換。MultiHead(Q, K, V) Concat(head_1, ..., head_h) W^O where head_i Attention(QW_i^Q, KW_i^K, VW_i^V)2.3 位置編碼Positional Encoding由于自注意力機制本身不具備序列順序信息Transformer通過向輸入嵌入中添加位置編碼來注入位置信息。原始論文使用正弦和余弦函數(shù)PE(pos, 2i) sin(pos / 10000^(2i/d_model)) PE(pos, 2i1) cos(pos / 10000^(2i/d_model))2.4 前饋網(wǎng)絡Feed-Forward Network每個注意力子層后接一個全連接的前饋網(wǎng)絡通常包含兩個線性變換和一個ReLU激活函數(shù)對每個位置獨立操作。FFN(x) max(0, xW1 b1)W2 b22.5 殘差連接與層歸一化每個子層自注意力、前饋網(wǎng)絡都采用殘差連接Residual Connection并緊接著進行層歸一化Layer Normalization。這有助于緩解深層網(wǎng)絡訓練中的梯度消失問題穩(wěn)定訓練過程。3. 編碼器與解碼器結(jié)構(gòu)3.1 編碼器Encoder編碼器由N個相同的層堆疊而成原論文N6。每一層包含兩個子層多頭自注意力層用于捕捉輸入序列內(nèi)部的關(guān)系。前饋神經(jīng)網(wǎng)絡層對每個位置進行非線性變換。每個子層周圍都有殘差連接和層歸一化。3.2 解碼器Decoder解碼器同樣由N個相同的層堆疊。每一層包含三個子層掩碼多頭自注意力層確保在預測當前位置時只能看到之前的位置信息通過掩碼實現(xiàn)。編碼器-解碼器注意力層讓解碼器關(guān)注編碼器的輸出。前饋神經(jīng)網(wǎng)絡層與編碼器中的前饋網(wǎng)絡相同。解碼器最終通過一個線性層和softmax函數(shù)輸出目標序列的概率分布。4. Transformer的優(yōu)勢與影響并行計算自注意力機制可以同時計算序列中所有位置之間的關(guān)系極大提升了訓練和推理效率。長距離依賴克服了RNN在長序列上梯度消失/爆炸的問題能有效建模序列中任意兩個位置的關(guān)系。可擴展性模型結(jié)構(gòu)規(guī)整易于堆疊更多層和使用更大規(guī)模數(shù)據(jù)催生了“大模型”時代。跨領域應用其思想已被成功遷移到計算機視覺ViT、語音處理、多模態(tài)等領域。