技術架構
Transformer模型採用編碼器-解碼器架構,編碼器和解碼器均由多個相同的層堆疊而成,在原論文中均為6層。每個編碼器層包含一個多頭自注意力子層和一個位置式前饋神經網路子層,每個子層周圍都使用了
殘差連線和層歸一化。解碼器層在結構上類似,但包含三個子層,在自注意力和前饋網路層之外,增加了一個編碼器-解碼器注意力層。
自注意力機制使模型能夠直接計算序列中任意位置間的依賴關係,從而有效建模長距離依賴。其核心計算公式為縮放點積注意力:Attention(Q, K, V) = softmax(QK^T/√d_k)V。該機制摒棄了
RNN的時序依賴,使得所有位置可以同時參與計算,實現了高效的並行計算。
多頭注意力機制將輸入投影到多個子空間並行計算注意力,以增強模型的表示能力。其計算公式為:MultiHead(Q, K, V) = Concat(head1, ..., head_h)W^O。在Transformer中,編碼器使用自注意力,解碼器使用掩碼自注意力,並在編碼器與解碼器之間使用編碼器-解碼器注意力。
由於模型本身不具備處理序列順序的能力,因此引入了位置編碼。原始Transformer採用正弦函式生成固定位置編碼:PE(pos, 2i) = sin(pos/10000^(2i/d_model)), PE(pos, 2i+1) = cos(pos/10000^(2i/d_model))。每個編碼器和解碼器層中都包含一個位置式前饋神經網路。編碼器和解碼器的每個子層周圍都使用了殘差連線和層歸一化操作以穩定訓練。
該架構的優勢在於其並行計算能力、對長距離依賴的有效建模以及良好的可擴展性。
角色演員介紹
論文《Attention Is All You Need》共有八位作者,均來自谷歌大腦團隊。論文在腳註中聲明“各人的貢獻均等”,“作者排序按隨機排列”。
阿什什·瓦斯瓦尼與伊利亞·波洛蘇欣共同設計並實現了首批Transformer模型,深度參與了架構的各方面工作。
諾姆·薩澤爾提出了縮放點積注意力、多頭注意力和無參數位置表示等關鍵概念,並深度參與了幾乎所有細節的實現。
尼基·帕爾瑪在原始代碼庫和Tensor2Tensor框架中設計、實現、調優和評估了無數模型變體。
利昂·瓊斯負責初始代碼庫、高效的推理實現和模型可視化,並嘗試了新的模型變體。
烏卡什·凱撒與艾丹·N·戈麥斯花費大量時間設計和實現Tensor2Tensor庫的各個部分,替換了早期代碼庫,極大地改善了結果並加速了研究進度。
論文發表後,據2022年的報導,八位作者大多已離開
谷歌,投身於新的創業或研究項目,例如共同創立Adept、Character.AI、Inceptive、
Cohere等公司,或加入
OpenAI等機構,僅利昂·瓊斯一人仍留在谷歌工作。隨著作者全部離職,谷歌更新了論文版本,刪除了原論文中所有作者的谷歌信箱。