- 揭秘大模型:從原理到實(shí)戰(zhàn)
- 文亮 江維
- 1120字
- 2025-04-17 18:46:18
2.3.1 Transformer的模型結(jié)構(gòu)
Transformer是谷歌在2017年的論文“Attention is all you need”[3]中提出的,用于自然語言處理的各項(xiàng)任務(wù),現(xiàn)在是谷歌云的張量處理單元(tensor processing unit,TPU)推薦的參考模型,也是OpenAI GPT系列大模型的基本結(jié)構(gòu)。Transformer是一種強(qiáng)大的模型,能夠完成并行處理、提取特征、優(yōu)化機(jī)器翻譯等任務(wù)。
Transformer是一種能夠完成機(jī)器翻譯任務(wù)的模型,它可以把一種語言轉(zhuǎn)換成另一種語言。如果不考慮Transformer的內(nèi)部結(jié)構(gòu),只看它的輸入和輸出,那么它的結(jié)構(gòu)可以用圖2-7來表示。

圖2-7 將法文翻譯成英文
打開Transformer的黑盒,就可以看到Transformer是由多個編碼器(encoder)和解碼器(decoder)堆疊而成的,如圖2-8所示。可以看到左邊是由多層編碼器構(gòu)成的,右邊是由多層解碼器構(gòu)成的。

圖2-8 Transformer由多個編碼器和解碼器構(gòu)成
繼續(xù)將編碼器和解碼器拆開,可以看到完整的Transformer結(jié)構(gòu),如圖2-9所示。編碼器包含一個多頭注意力(multi-head attention)層,它由多個自注意力(self-attention)單元組成。解碼器則包含兩個多頭注意力層,一個用于編碼器-解碼器的注意力,另一個用于自注意力。在每個多頭自注意力層的上方,還有一個加法和歸一化(add & norm)層,加法表示使用殘差連接來防止網(wǎng)絡(luò)退化,歸一化表示使用層歸一化來對每一層的激活值進(jìn)行規(guī)范化。

圖2-9 完整的Transformer結(jié)構(gòu)
圖2-8只給出了解碼器的目標(biāo)輸出,沒有顯示解碼器的目標(biāo)輸入。而圖2-9則同時顯示了目標(biāo)輸入(嵌入層的輸入)和目標(biāo)輸出(Softmax層的輸出),這是為了統(tǒng)一訓(xùn)練和預(yù)測的過程。在模型訓(xùn)練時,目標(biāo)輸入是已知的翻譯結(jié)果(比如將法文翻譯成英文時的目標(biāo)是英文),而在模型訓(xùn)練完成后進(jìn)行預(yù)測時,目標(biāo)輸入的第一個詞是特殊的開始標(biāo)記(如<|im_start|>)。關(guān)于這個過程的更多細(xì)節(jié),將在2.3.5節(jié)中詳細(xì)介紹。
為了能夠讓讀者更好地理解Transformer的模型原理,在接下來的內(nèi)容中,將用具體的代碼來實(shí)現(xiàn)它。我們使用的是TensorFlow 2.0框架。
代碼清單2-1 導(dǎo)入TensorFlow 2.0
from __future__ import absolute_import, division, print_function import tensorflow_datasets as tfds import tensorflow as tf import tensorflow.keras.layers as layers import time import numpy as np import matplotlib.pyplot as plt
下面用一個簡單的例子來說明Transformer的基本工作流程。我們還是使用前面的例子,把法文的“Je suis étudiant”翻譯成英文。
(1)得到輸入句子中每個單詞的向量表示x,它是由詞嵌入(word embedding)向量和位置嵌入(position embedding)向量相加而得到的。
(2)把輸入句子的詞嵌入矩陣X作為編碼器的輸入,經(jīng)過N層編碼器的處理,得到了句子中每個單詞的編碼信息矩陣C,如圖2-10所示。矩陣X的維度是n × d,其中n是單詞的個數(shù),d是詞嵌入的維度。

圖2-10 編碼器的處理過程
(3)把編碼器輸出的編碼矩陣C作為解碼器的輸入,解碼器根據(jù)編碼矩陣C和已經(jīng)翻譯過的單詞來生成下一個單詞,如圖2-11所示。

圖2-11 經(jīng)過解碼器后的輸出
從圖2-11可知,解碼器首先從編碼器獲取編碼矩陣,并以“<Begin>”作為起始符,預(yù)測出第一個單詞“I”;然后將“<Begin>”和“I”作為輸入,預(yù)測出第二個單詞“am”。以此類推,生成完整的句子。這就是Transformer的基本工作流程,下面詳細(xì)介紹其中的各個組成部分。
- 機(jī)器學(xué)習(xí)算法競賽實(shí)戰(zhàn)
- 巧用ChatGPT輕松學(xué)演講
- 賢二機(jī)器僧漫游人工智能
- AI時代程序員開發(fā)之道:ChatGPT讓程序員插上翅膀
- 創(chuàng)造性思維:人工智能之父馬文·明斯基論教育
- 自然語言處理導(dǎo)論
- 樹莓派4與人工智能實(shí)戰(zhàn)項(xiàng)目
- 機(jī)器學(xué)習(xí)中的概率思維
- OpenCV4.5計(jì)算機(jī)視覺開發(fā)實(shí)戰(zhàn):基于Python
- 從機(jī)器學(xué)習(xí)到深度學(xué)習(xí):基于scikit-learn與TensorFlow的高效開發(fā)實(shí)戰(zhàn)
- 第五范式
- AIGC輔助軟件開發(fā):ChatGPT 10倍效率編程實(shí)戰(zhàn)
- AI律師助手:律師實(shí)務(wù)ChatGPT實(shí)戰(zhàn)指南
- 人工不智能:計(jì)算機(jī)如何誤解世界(見識叢書52)
- 智能控制