第二篇:大模型技术进化之GPT-1,2,3

GPT进化论

在有了Transformer之后,模型具备对一个长序列预测next token的能力,也就诞生了接下来的GPT-1,2,3等等。

GPT-1

GPT全称为Generative Pre-Training, 其本质是一个无监督的预训练模型。这个基模型可以根据上文context推理next-token。其下游任务,例如文本翻译,情感分类等都需要增加了诸如有监督微调,奖励模型和RLHF(增强学习)等微调手段,使得GPT模型可以在相应的下游任务发挥作用。所以GPT1提出了LLM的一个基本开发范式就是分两步走

    1.pretrain:在无监督大数据集,推理next-token产生基模。
    2.finetune:在有监督小数据集,根据任务微调模型,产生下游模型。

其实预训练+微调的方式在cv领域由来已久,但是nlp领域很难做。原因在于nlp缺乏大量高质量标注,且文字信息比图像更加难以被计算机理解。这两个问题在Transformer横空出世后都得到了解决。之后的LLM应用,包括ChatGPT也是基于这一思想的产物,只不过它的微调过程较为复杂。

小结GPT 1这篇文章( Improving Language Understanding by Generative Pre-Training),它的key contribution可以概括如下:

  • 利用Transformer架构实现了LLM的基本框架——pretrain+finetune。大数据预训练,再通过小数据微调align大模型的"knowledge"。
  • 抽象出了一个NLP的base task——next-token prediction,并认为这种模型实际上在训练过程中隐式的学习到了文章的结构和逻辑关系。
  • 无监督数据训练。

但是,GPT-1也有一定的缺点。一是上游base model的知识align到下游任务的时候,仍然需要额外的训练进行finetune,这种对齐方式较为低效且成本较高。二是模型表征能力不足,很多任务表现其实比不过很多传统方案训练出的模型。

GPT-2

除了finetune到下游任务,GPT-2提出了一种更为高效的alignment的方式--prompting。

例如我们现在需要gpt这个base model去做一个常见的任务:reading comprehension。

  • GPT-1的思路。给出一段文章,和若干对QA进行finetune。费时费力。
  • GPT-2的思路是,直接把一段文章和若干对QA,作为prompt(context),让模型自己去猜测下游任务的意图。从而有了zero-shot alignment的能力。

  利用这个思路,GPT-2用prompt的方法将LLM迁移到下游若干任务中,很多任务都超出了  baseline模型的效果。

可以看出随着参数量的增加,prompt的结果开始逐渐超越传统方法。基于这个实验观察,作者作出了一个大胆的假设,当一个语言模型的容量足够大时,它就足以覆盖所有的有监督任务。因此GPT-2的标题是Language Models are Unsupervised Multitask Learners

这里我们总结GPT-2的两个最大的contribution:

  1. 提出了prompt这一新的对齐方式,使得词向量模型迁移到其它类别任务中,不需要额外的训练。且很多任务中超出了传统的模型。
  2. 实验验证了一个语言模型中的假设:当模型容量足够大,所有的有监督学习都是无监督语言模型的一个子集

从这里开始,我们已经基本看到了ChatGPT的雏形。但是很多实验也表明,GPT-2的无监督学习的能力还有很大的提升空间,甚至在有些任务上的表现不比随机的好。尽管在有些zero-shot的任务上的表现不错,但是我们仍不清楚GPT-2的这种策略究竟能做成什么样子。GPT-2表明随着模型容量和数据量的增大,其潜能还有进一步开发的空间,基于这个思想,诞生了我们下面要介绍的GPT-3。

GPT-3

从GPT-2到GPT-3本质上没有战略级的变化,更多是一些战术上的演进。整体可以总结为两点:

   1. 为了验证GPT-2的假设,设计了一个无比巨大的网络。参数量从1.5B增加到了175B,训练的          数据 除了common crawl,也爬取了一些高质量数据,如Arxiv,stackoverflow,books等。训        练费用更是高达1200万美元。

      当然GPT-3的实验结果也验证了GPT-2中的假设,大力出奇迹。

Model

Launch Date

Training Data

No. of Parameters

Max. Tokens

GPT-1

June 2018

Common Crawl, BookCorpus

117 million

512

GPT-2

February 2019

Common Crawl, BookCorpus, WebText

1.5 billion

1024

GPT-3

June 2020

Common Crawl, BookCorpus, Wikipedia, Books, Articles, and more

175 billion

2048

GPT-4

March 2023

Unknown

Estimated to be in trillions

Unknown

2.为了让模型更好的适应多任务场景,提出了一个新的训练方法In-context learning。这边我们大概了解就可以了,不必深究细节。它的思想来自于meta learning,将训练过程分为了outer loop 和 inner loop。它在训练时会同时将多个任务分别当做多个batch去训练,然后做出了一个假设是,如果一组参数的更新可以使得多个任务同时进步,那么这个更新就是好的。反之如果只benefit了个别任务,那么这组更新就是biased。基于这个假设,他们设计了内外双循环训练,保证多个任务共同进步。同时通过in context的数据结构,让模型能够通过context中的prompt理解所要完成的任务,以便可以更好的对齐到下游任务中去。

至此,GPT系列似乎做好了各种战斗准备。拥有极高的参数量保证网络容量,通过in-context learning更好的适应多任务场景。那么下一步,就是如何将GPT-3习得的知识更好的对齐到下游任务中,真正让其发挥作用,这也就是ChatGPT要做的事。

ChatGPT

现在假设我们需要一个类似ChatGPT的assistant model,我们也有GPT-3训练出来的base model,那么此时是否可以直接得到这样一个助手模型呢?答案是可以的。正如GPT-2时提到的prompt engineering,我们可以给它一些上下文(few-shot prompt) to trick it into an assistant model。

尽管我们在给了大量的prompt的前提下,最终得到了Paris的答案。但是这样的方案过于依赖prompt的设计,而且很多时候表现也不稳定。那么如何把它变得更加useful呢?

这里我们来看一下openai官方给出ChatGPT训练pipeline。从GPT-1到GPT-3包括Meta开源的LLaMA模型其实都只是在pretraining stage。要真正达到ChatGPT的水平还需要supervised finetuning,reward model和reinforcement learning三个stage。具体怎么做呢,我们下篇文章揭晓

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值