InstructGPT学习

GPT系列从GPT-1到GPT-3及InstructGPT,不断发展预训练技术,从无监督到强化学习微调。GPT-2取消fine-tuning层,GPT-3数据量大幅增加,InstructGPT结合监督和强化学习提高模型忠实性。通过RLHF(基于人类反馈的强化学习)训练,解决模型安全性和一致性问题。

GPT发展历程

在回答这个问题之前,首先要搞清楚ChatGPT的发展历程。

  1. GPT-1用的是无监督预训练+有监督微调。
  2. GPT-2用的是纯无监督预训练。
  3. GPT-3沿用了GPT-2的纯无监督预训练,但是数据大了好几个量级。
  4. InstructGPT在GPT-3上用强化学习做微调,内核模型为PPO-ptx,下面的论文会详细分析。
  5. ChatGPT沿用了InstructGPT,但是数据大了好几个量级。

ELMO用Bi-LSTM,GPT用transformer的Decoder,BERT用transformer的Encoder;
ELMO:双向,GPT:单向,BERT:双向;
ELMO:解决一词多义,GPT:特征更丰富,BERT:双向/多任务训练/能捕捉更长距离的依赖;
GPT:适合文本生成等任务(NLG任务),BERT:适合预测任务(NLU任务);


GPT-1的问题

  • fine-tune只能用到特定任务中,如果fine-tune一个分类任务,不能用到句子相似度中去。我们能不能用一个模型做所有NLP的任务,能不能尽量加所有的任务。
  • 目标:language model去解决任何NLP的任务,这就是后续GPT2和GPT3的改进。

针对GPT-1的问题,GPT-2作了如下改进

  • 去掉了fine-tuning层:不再针对不同任务分别进行微调建模,而是不定义这个模型应该做什么任务,模型会自动识别出来需要做什么任务。主打zero-shot

    像下面这样一个机器翻译的样本转换成一个句子,一个QA的问答对也转换成一个句子,GPT2就只优化语言模型的损失。

  • 其次在预训练阶段,GPT-2采用了多任务的方式,不单单只在一个任务上进行学习,而是多个,每一个任务都要保证其损失函数能收敛,不同的任务是共享主体transformer参数的,该方案是借鉴了之前微软的MT-DNN,这样能进一步的提升模型的泛化能力,因此在即使没有fine-turning的情况下依旧有非常不错的表现。

  • 从模型的规模和参数量上说,GPT有1.17亿的参数量,而GPT2将Transformer堆叠的层数增加到48层,隐层的维度为1600,,参数量达到了15亿(最大的GPT-2模型);而Bert参数量也只有3亿。

  • 模型结构方面,GPT2的结构类似于GPT,仍然使用单向的 Transformer 模型,只做了一些局部修改:

    1. 将归一化层移到Block的输入位置;
    2. 在最后一个自注意力块之后加了一层归一化
    3. 同时在residual层初始化的时候,将其乘了 1 / N 1/\sqrt{N} 1/N .这里的N是residual的层数。

GPT2对比GPT3:

  • GPT-3结构和GPT-2一样,但是数据约为GPT-2的1000倍,模型参数约为GPT-2的100倍,暴力出奇迹,使得效果很惊艳。
  • GPT-3不再追求极致的zero-shot学习,即不给你任何样例去学习,而是利用少量样本去学习。主打few-shot
  • 由于GPT-3庞大的体量,在下游任务进行fine-tune的成本会很大。因此GPT-3作用到下游子任务时,不进行任何的梯度更新或fine-tune。

缺点:

  • 虽然效果比GPT-2好很多,但是在文本生成上还是比较弱的。假如让GPT-3生成一个很长的文本,可能给了几段之后,就会重复起来
    结构和算法的局限性。GPT-3是语言模型,不能像bert那样双向看。
  • 均匀地预测下一个词。不能判断哪个词重要,哪个词不重要,导致语言模型可能会花很长时间去学习一些常见的虚词,不像人类学习的划重点。
  • 样本有效性不够。基本上把整个网络上的文章下载下来了。
    做few-shot时,模型真的是根据你给的样本从头学习的吗?这样碰到训练样本上没有出现的任务,也能够泛化过去;还是根据这些样本,从训练记忆里找出相关的,认出了这个任务,那拼的就是训练数据的大小了。

为什么采用Decode only架构?

在这里插入图片描述

  1. 训练效率和工程实现
  2. Encoder的双向注意力存在低秩问题
  3. 参数少一半(推理成本)
  4. decoder-only 有较强的zero-shot表现

输入部分的注意力改为双向不会带来收益,Encoder-Decoder架构的优势很可能只是源于参数翻倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值