ChatGPT 背后的技术路线问题

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_高级版,每接口累计50万次
简介: ChatGPT 背后的技术路线问题

OpenAI 一路从 GPT 到 GPT3 再到 ChatGPT,其不停摸索的技术路线,早已不是 大规模预训练语言模型 可以简单概括,而是通往 AGI 所需的 NLP 到底是什么样的。


由于 GPTx 的使用限制,制约了我们对其应有的关注。这对于仍停留在 BERT 时代的我们,是值得警醒的。


进化之路

模型

发布时间

参数量

预训练数据量

GPT-1

2018年6月

117 M

5GB

GPT-2

2019年2月

1.5 B

40GB

GPT-3

2022年5月

175 B

570+ GB

InstructGPT

2022年3月


_


_

(数据来源于 引用1-3)


GPT-1


背景

  • pretrain+finetune 的风潮(基于 LSTM 结构的 ULMFiT【Universal Language Model Fine-tuning for Text Classification】)
  • Transformer 相对 LSTM/CNN 的优异表现


核心路线

pretrain + finetune


模型&数据&训练

  • 模型基于 transformer 结构,layer-12 head-12 hidden-768 embedding=4H
  • 数据使用 BooksCorpus,规模 5GB
  • pretrain
  • 自左向右的生成式语言模型
  • finetune
  • 区别于 BERT,GPT-1 在预训练时没有 CLS 和 SEP,只有单句;对于具体下游任务,需增加 START/DELIM 和 EXTRACT,其 token embedding 在 finetune 时随机初始化
  • 基于 EXTRACT embedding 经 MLP 进行下游任务的 loss 计算
  • finetune 的 loss 不仅包含下游任务的 loss,还包含输入文本的 LM loss
  • image.pngGPT-2


背景

  • 越来越多工作聚焦在仅 pretrain 不 finetune,来减轻标注数据收集的压力,即 few-shot、zero-shot
  • multi-task learning 和 meta-task learning 算是较有希望的方向
  • multi-task learning 和 meta-task learning 往往圈定一个 task 集合,在 LM 类 PTM 方面,会将建模 p(out|in) 转化为建模 p(out|in,task),来显式/加速捕捉 task 信息,如 MQAN【The Natural Language Decathlon: Multitask Learning as Question Answering】使用 task-specific pattern 来拼接 in,task 进行训练和预测
  • GPT-2 认为“任何有监督任务都是语言模型的一个子集,当模型的容量非常大且数据量足够丰富时,仅仅靠训练语言模型的学习便可以完成其他有监督学习的任务”,故坚持在自然文本上直接建模 p(out|in) ,虽然学习慢很多,但形式更通用


核心路线

基于 GPT-1,扩大模型规模,提升模型容量,实现无监督的隐式的 multi-task learning 效果


模型&数据&训练

  • 模型结构继承 GPT-1,在 transformer 的结构上有微调,size 最大的:layer-48 head-12 hidden-1600 embedding=4H
  • vocab size 从 GPT-1 的 40000 扩大到 50257
  • 数据采用了网页内容 WebText,规模 40GB


评价&思考

  • 从效果来看,在文本摘要任务上媲美有监督模型,在法译英任务上超越所有无监督但比有监督差,初步显现了潜力,但大多任务上 zero-shot learning 效果仍大幅落后于有监督


GPT-3


背景

  • 越来越多工作【Pretrained Transformers Improve Out-of-Distribution Robustness】表明,在 pretrain+finetune 范式中,当 model 拟合在 downstream-task trainset 后,往往丧失了对 downstream-task OOD 的泛化能力
  • 由于 trainset 不可能收集整个真实分布,随着时间变化预测数据的分布也可能变化,因此 model 需要具备 OOD 的能力,属于已有类别的能归类,不属于的能拒判
  • 通过构造 OOD 测试集,对比 IID 上的表现,有一些实验结论
  • 传统 NN 衰减很大,甚至只有 30%,而 PTM 衰减很小
  • 更大 size 的 PTM,并不一定表现更好(CV 上是越大越好,NLP 上不是)
  • PTM 使用的训练数据的规模越大、多样性越强,表现越好
  • 蒸馏后衰减会很大
  • 20-21 年开始,meta-learning 领域中 in-context learning 逐渐兴起


in-context learning

  • in-context learning 的核心思想是,在 meta-learning 中引入 multi-task learning 的模式,从而让模型基于少量训练样本来提取任务的语义信息,并以此来预测最终输出
  • 以 MetaICL【MetaICL: Learning to Learn In Context】为例,
  • image.png
  • 一些工作【Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?】对 in-context learning 的有效性进行了实验分析
  • 模型并没有学习输入和标签之间的对应关系:训练时随机变更 x_i 的 y_i,没影响
  • 模型学到了输入和标签的分布:对 x_i 或 y_i 部分token用随机token替换,均有负面影响
  • 但增加前缀输入(样例),来激活大模型语言表达建模能力,也算是一种 learning


核心路线

  • 在 GPT-2 基础上,大幅扩大模型规模,提升模型容量
  • 预测时引入 in-context learning 思路,处理 few-shot、one-shot 问题(训练时没有)


模型&数据&训练

  • 模型结构继承 GPT-2,size 最大的:layer-96 head-96 hidden-12288 embedding=4H
  • 数据在 WebText 基础上,加入了 Book、Wikipedia 等数据,根据质量赋权使用,共计 45TB
  • 训练依然是 bigger model -> larger batch-size -> smaller learning-rate
  • 在验证 few-shot one-shot 效果时,GPT-3 并没有真的使用这些数据进行 finetune,而是相当于 zero-shot 直接预测验证效果


评价&思考

  • GPT-3 在一些 task 上甚至超过了有监督 SOTA,从效果看,确实验证了“更大的模型的通用泛化效果”
  • image.png
  • image.png
  • 但在文本生成上仍会在长篇幅上出现重复、矛盾、突兀的问题,缺乏物理常识,由于单向 LM 建模的问题在需要反复阅读上下文的 MRC 任务上也会差一些
  • PAPER 中列举了一些更宏观的 limitation,也对应现在 PTM 方向的 limitation,很有意思,可延伸阅读


InstructGPT


背景

  • GPT-3 所生成内容的 untruthful、unhelpful、toxic 问题,受到社会和学术关注
  • 最初用在 Atari games 的 RLHF(reinforcement learning from human feed-back),自 19 年开始,逐步应用到 NLP 的各项 task 上


核心路线

image.png模型&数据&训练

  • Demonstration dataset -> SFT model
  • prompt 的概念区别于 prompt learning,这里表示我们和 ChatGPT 交互时的键入,有各种任务形式,包括 Generation、QA、Chat、MRC、Summarization、Classification 等
  • prompt 库由 user 键入和 labeler 撰写构建,会做一些采样处理,保证丰富度
  • 给定 prompt,labeler 撰写 response,形成 input-output 的生成式数据,约 1.2W 规模,用于 GPT-3 supervised finetune
  • Comparison dataset -> RM
  • 给定一个 prompt,由模型生成 K 个 response,标注人员标注分档,形成 C_K^2 个 comparison pair,约 3.3W * C_K^2 规模,用于 reward model 的学习
  • 一组 C_K^2 样本,shuffle 到 epoch 中,有泄露倾向,训练时很快就会过拟合,应在一个 batch 内使用
  • loss 就简单用了个 -log(delta(score1 - score2))
  • labeler 在标注 ranking list 前,会对每个 response 标注一些 meta label,即整体分数(1-7)、是否回应了 task、是否色情、是否暴力等等,但在训练中貌似没有体现应用?
  • PPO model
  • 3.1W 规模,具体见后面章节


评价&思考

  • 从结论来看,对现有大规模 PTM 通过 SFT+PPO 进行 alignment 到 user intention 的思路,比继续提升模型规模要高效的多:SFT 和 PPO 的训练消耗是 GPT-3 pretrain 的千分之一,在百分之一规模的 GPT-3 上就能达到 GPT-3 的效果(1.3B V.S. 1175B)
  • image.png
  • RL 在 NLP 中应用越来越多,而且取得了不错的效果,这里单独拎出来讨论下


Deep Reinforcement Learning from Human Preferences


背景

  • RL 的应用往往需要一个具体定义的 reward function,但许多真实任务的目标较复杂,难以清晰定义,即无法将 user intent 和 RL system 进行 align
  • 对于 expert user,可以提供 demonstration,使用 inverse RL 抽取出 reward function,如 imitation learning 等方法
  • 对于 non-expert user,只能定性的对 system behavior 提供 feedback,来表明 intent,系统从中学习 reward function,这里关注该方式
  • 关于 user feedback,显然 comparison 是更容易操作的,实验也证明这对于学习 user intent 已足够


核心路线


image.png

(图片来源于 引用6)

  • policy
  • 一旦有了 reward function,就是一个传统 RL 问题了,可以使用任意 RL 算法
  • 考虑到这里的 reward function 可能是 non-stationary 的,使用 policy gradient 类方法更合适,本文处理 Atari games 使用的 A2C
  • reward function
  • 训练数据
  • human feedback 形成 comparison dataset (a1, a2, label),label ∈ {1, 2, equal}(实际上本文 label 是个 {1,2} 上的分布)
  • 标注数据,需要 online 持续进行,会用上一轮的 reward function 预测,筛选差异较大的 hard pair
  • 目标函数


image.png


references(部分)

  1. Universal Language Model Fine-tuning for Text Classification:https://arxiv.org/abs/1801.06146
  2. Language Models are Unsupervised Multitask Learners:https://d4mucfpksywv.cloudfront.net/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
  3. Language Models are Few-Shot Learners:https://arxiv.org/abs/2005.14165
  4. MetaICL: Learning to Learn In Contex:https://arxiv.org/abs/2110.15943
  5. Training language models to follow instructions with human feedback:https://arxiv.org/abs/2203.02155
  6. Deep Reinforcement Learning from Human Preferences:https://arxiv.org/abs/1706.03741

相关文章
|
机器学习/深度学习 数据采集 人工智能
国内“谁”能实现chatgpt,短期穷出的类ChatGPT简评(算法侧角度为主),以及对MOSS、ChatYuan给出简评,一文带你深入了解宏观技术路线。
国内“谁”能实现chatgpt,短期穷出的类ChatGPT简评(算法侧角度为主),以及对MOSS、ChatYuan给出简评,一文带你深入了解宏观技术路线。
国内“谁”能实现chatgpt,短期穷出的类ChatGPT简评(算法侧角度为主),以及对MOSS、ChatYuan给出简评,一文带你深入了解宏观技术路线。
|
6月前
|
人工智能 IDE Linux
chatgpt的ai编程工具
该内容是关于两个chatgpt的ai编程工具的安装和使用说明。Copilot的下载步骤包括在IDE的设置中搜索并安装插件,然后重启IDE并登录GitHub账户。使用时,通过写注释触发建议,用快捷键选择建议。启用或禁用Copilot可通过底部状态图标。另一个工具是Alibaba Cloud AI Coding Assistant (Cosy),同样在IDE的插件市场下载安装后重启。其详细使用方法建议参考官网。
299 0
|
3月前
|
人工智能 自然语言处理 搜索推荐
chatgpt这么火,现在AI搜索引擎有哪些呢?
国外AI搜索引擎包括ChatGPT,擅长自然语言处理与内容生成;Google Bard,提供智能个性化搜索体验;Microsoft Bing集成GPT模型增强智能检索;Perplexity AI以简洁答案及文献引用著称;Neeva强调隐私保护与无广告服务。国内方面,天工AI支持多种功能如知识问答与代码编程;腾讯元宝基于混元模型助力内容创造与学习;360AI搜索以精准全面的信息搜索见长;秘塔AI专注提升写作质量和效率;开搜AI搜索提供个性化智能搜索服务。以上引擎均利用先进AI技术提升用户体验。更多详情参阅[AI搜索合集](zhangfeidezhu.com/?page_id=651)。
112 8
chatgpt这么火,现在AI搜索引擎有哪些呢?
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题
HuggingGPT是一个框架,它使用大型语言模型(如ChatGPT)作为控制器来管理和协调Hugging Face上的AI模型,以语言作为通用接口解决多模态和领域的复杂AI任务。
59 0
HuggingGPT解析:使用 ChatGPT及HuggingFace上的族系解决AI问题
|
3月前
|
机器学习/深度学习 人工智能 算法
为什么ChatGPT等AI大模型都是基于Python开发?
为什么ChatGPT等AI大模型都是基于Python开发?
|
3月前
|
人工智能 自然语言处理 Linux
免费ChatGPT4o灵办AI可体验浏览器插件
灵办AI就是您所需的最佳助手!我们为您带来了一款多功能AI工具,ChatGPT4o不仅能为您提供精准翻译,还能满足您的对话需求、智能续写、AI搜索、文档阅读、代码生成与修正等多种需求。灵办 AI,真正让工作和学习变得轻松高效!一款多功能智能助手,旨在提升工作和学习效率。它提供实时翻译、对话问答、搜索、写作和网页阅读等服务,支持多种浏览器和操作系统,帮助用户随时获取信息,打破语言障碍,优化内容创作和信息处理。
120 0
|
3月前
|
Web App开发 人工智能 安全
Gemini vs ChatGPT:谷歌最新的AI和ChatGPT相比,谁更强?
Gemini vs ChatGPT:谷歌最新的AI和ChatGPT相比,谁更强?
|
3月前
|
人工智能 安全 机器人
ChatGPT 1岁:创新、争议和AI产生突破的一年
ChatGPT 1岁:创新、争议和AI产生突破的一年
|
5月前
|
人工智能 安全 机器人
ChatGPT 1岁:创新、争议和AI产生突破的一年
ChatGPT 1岁:创新、争议和AI产生突破的一年
|
5月前
|
人工智能 机器人 API
OpenAI发布新AI模型GPT-4o和桌面版ChatGPT
OpenAI发布新AI模型GPT-4o和桌面版ChatGPT