Language Models 补充

BERT vs GPT

网络结构

Encoder→BERT,Decoder→GPT

  • Masked Multi-Head-Attention。使用mask的原因是因为在预测句子的时候,当前时刻是无法获取到未来时刻的信息的。也就是Multi-Head-Attention可以看到Input的整个句子,而Masked Multi-Head-Attention只能看到当前输入之前的内容,无法看到之后的内容。
  • 预训练任务。BERT:填空;GPT:预测接下来会出现的token是什么。
  • fine-tuning。这就好比一个人博览群书,你问他什么类型的问题,他都可以顺手拈来。

T5

Text-to-Text Transfer Transformer

文本到文本传输转换器

模型

T5

将翻译、分类、回归、摘要生成等任务都统一转成Text-to-Text任务,从而使得这些任务在训练(pre-train和fine-tune)时能够使用相同的目标函数,在测试时也能使用相同的解码过程。

在形式上统一了自然语言理解和自然语言生成任务的外在表现形式。

在下游任务上fine-tune模型时,为了告诉模型当前要做何种任务,我们会给每条输入样本加一个与具体任务相关的前缀。

  • 翻译前缀 translate English to German:
  • 分类前缀 cola sentence:
  • 摘要前缀 summarize:

T5 的baseline模型直接采用标准的Transformer encoder-decoder结构,以便在生成任务和分类任务上都能取得不错的效果。

训练

无监督 & 有监督。

denoising objective:

很像MLM

新的尝试

模型架构
  • fully-visible attention mask:输出序列的每个元素可以看见输入序列的每个元素。
  • causal attention mask:输出序列的每个元素只能看对应位置及之前的输入序列的元素,无法看见未来的元素。
  • causal with prefix attention mask:输入序列的一部分前缀采用fully-visible attention mask,其余部分采用 causal attention mask。

新的模型架构

在最左侧的Encoder-Decoder结构中,Encoder部分采用fully-visible attention mask,而Decoder部分采用causal attention mask。

中间的Language model结构中,采用causal attention mask。

最右侧的Prefix LM结构中,采用causal with prefix attention mask。比如在翻译任务中,给定训练样本translate English to German: That is good. target: Das ist gut.,我们对translate English to German: That is good. target:采用fully-visible attention mask,对Das ist gut.采用causal attention mask。

结果:

结果

随机Mask的比例

15% or ?

总表

做了很全面的工作

总结

预训练策略:采用multi-task预训练方式(即无监督任务和有监督任务一起预训练),在对比迁移方法一小节中我们发现Multi-task pretraining + fine-tuning的效果和Unsupervised pre-training + fine-tuning的效果差不多,但是前者在预训练过程还能够监控下游任务的性能,因此作者最后采用Multi-task pre-training。

作者也说了,本文的目的不是提出一个新的方法,而是对NLP领域的一些技术支撑点提供一个较为全面的分析视角。

代码

https://github.com/google-research/text-to-text-transfer-transformer

mT5

mT5 → Multilingual T5 → 支持中文

代码

https://github.com/google-research/multilingual-t5

chatGPT

提到说使用了RLHF方法

RLHF

Reinforcement Learning from Human Feedback

基于人类反馈的强化学习。

RLHF的训练过程可以分解为三个核心步骤:

  • 预训练语言模型(LM)
  • 收集数据并训练奖励模型
  • 通过强化学习微调 LM

一个问题是训练这样的模型需要多少数据和人力标注?Hug给出的回答是,因为人工写回答要求质量高所以不能用众包。不过对RM模型的训练,需要的标注不多。

三大核心步骤

预训练语言模型

收集结果→打分(排名)→训练奖励模型

  1. 为什么不人工直接打分?因为打分是主观的需要归一化,而排序一般大家会有共同的结论:对同一个问题,A和B哪个回答更好。
  2. 有了一组一组的偏序(A>B, A>C, C>B)怎么得到每个回答的奖励分数?使用了Elo排名系统,来转换得到分数。

使用奖励模型微调语言模型


Language Models 补充
http://ztrura.com/2023/01/13/LanguageModels2/
作者
ztrura
发布于
2023年1月13日
许可协议