首先需要知道的是GPT-2無論在訓練還是推理過程都是只使用了transformer decoder,并沒有使用encoder結構,那么它是怎么做的翻譯任務呢?
使用transformer encoder+decoder的著名架構有:
- 最原始的transformer model(Attention Is All You Need)
- BERT-to-BERT 模型(BERT for Sequence Generation)
- T5 ( Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer)
這種使用了encoder+decoder的model一般就是將要被翻譯的語句輸入進encoder,然后得到K、V,通過attention輸入進decoder,然后用自回歸的方式逐漸生成翻譯
訓練過程
1. 數據準備
使用大規模的中英文平行語料庫,包含成對的源語言(中文)句子和目標語言(英文)句子。例如:
中文句子:你好,世界。 英文句子:Hello, world.
2. 輸入格式
為了訓練翻譯任務,可以使用帶有提示詞的輸入格式,將源語言和目標語言連接起來。例如:
"Translate Chinese to English: 你好,世界。 -> Hello, world."
3. 模型輸入
將整個輸入序列(包括提示詞、源語言句子和目標語言句子)輸入到模型中。模型會將序列中的每個詞轉換為嵌入向量,并添加位置編碼。
4.開始訓練:
-
初始狀態(因為訓練的語料庫是拼接好的,所以有初始輸入進入transformer decoder):
- 輸入:"Translate Chinese to English: 你好,世界。 ->"
- 模型預測第一個詞 "Hello"。
-
第一步:
- 輸入:"Translate Chinese to English: 你好,世界。 -> Hello"
- 模型預測下一個詞 ","。
-
第二步:
- 輸入:"Translate Chinese to English: 你好,世界。 -> Hello,"
- 模型預測下一個詞 "world"。
-
第三步:
- 輸入:"Translate Chinese to English: 你好,世界。 -> Hello, world"
- 模型預測結束標記 "."。
5.計算loss
計算預測出的詞與真實的詞的loss
推理過程
在推理過程中,步驟類似于訓練,但模型已經訓練完畢,不再計算損失,而是生成完整的目標語言句子:
1)輸入準備:
提供源語言句子和提示詞。例如:
"Translate Chinese to English: 你好,世界。 ->"
2)自回歸生成:
- 模型逐步生成目標語言句子 "Hello, world."。