首先需要知道的是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."。