没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
4/23/23, 1:09 PM
万字长文教你如何做出 ChatGPT
https://mp.weixin.qq.com/s/8IFcQDhsLIWJIx8siF-wdQ
1/32
万字长文教你如何做出 ChatGPT
作者:monychen,腾讯 IEG 应用研究员
简单来说,ChatGPT 是自然语言处理(NLP)和强化学习(RL)的一次成功结合,考虑到读者可能
只熟悉其中一个方向或者两个方向都不太熟悉,本文会将 ChatGPT 涉及到的所有知识点尽可能通俗
易懂的方式展现出来,有基础的同学可以选择性跳过一些内容。
GPT 的进化史
本节的主要目的是介绍自然语言处理中语言模型的一些基础知识,理解语言模型到底在做什
么。
GPT
所 谓 的 GPT(Generative Pre-trained Transformer) , 其 实 是 Generative Pre Training of a
language model(语言模型)。那什么是语言模型呢?可以简单地把语言模型理解为“给定
一些字或者词,预测下一个字或者词的模型”,这里的字或者词在 NLP 领域通常也被称为
token,即给定已有 token,预测下一个 token 的模型,这里举个例子,我们在搜索引擎里进
行搜索时,自动会往后联想就是种语言模型的体现。
腾讯程序员 2023-02-16 18:01 发表于广东
原创
腾讯技术工程
4/23/23, 1:09 PM
万字长文教你如何做出 ChatGPT
https://mp.weixin.qq.com/s/8IFcQDhsLIWJIx8siF-wdQ
2/32
那么训练语言模型有什么优势呢?答案就是它不需要人工标注数据!
比如以“today is a good day”为例,它可以被拆解为:
训练数据 标签
today is
today is a
today is a good
today is a good day
接下来让我们来数学化地描述一下,给定一个句子,比如 ,语言模型其
实就是想最大化:
其中 是考虑的窗口长度,条件概率 通过一个参数为 的神经网络来描述。
GPT 的神经网络采用了一个多层的 Transformer decoder,输入经过 embedding 层(token
embedding 叠加 position embedding),然后过多层解码器,最后通过一个 position-wise
的前向网络得到输出的分布:
有了模型结构,有了目标函数,已经可以预训练一个大容量的语言模型了,这也就是 GPT
的第一阶段,在 GPT 的训练流程里还有第二个阶段,利用一些有标签数据进行微调。假设
4/23/23, 1:09 PM
万字长文教你如何做出 ChatGPT
https://mp.weixin.qq.com/s/8IFcQDhsLIWJIx8siF-wdQ
3/32
输入为 ,标签为 ,可以将输入喂入模型,模型的输出再叠加一个线性层作为
最终的输出:
目标函数也就是:
然而作者在微调时还发现,同时考虑语言模型的自回归目标函数效果更好,也就是:
在微调阶段,可以优化的参数只有顶部的线性层已经用作分隔符的 token embedding。下图
展示的就是 GPT 做微调时对文本的一些常见做法,其实就是拼接和加分割符之类的操作。
GPT2
GPT1 需要对特定任务再进行精调(依赖有标签数据进行监督学习),而 GPT2 则是考虑在
预训练时考虑各种不同的任务,也就更加通用化。因此,GPT2 的模型从原本 GPT1 的:
改为 task conditioning 的形式:
也就是把任务也作为模型的输入,具体的做法是引入一些表示任务的 token,举几个例子。
自回归任务
4/23/23, 1:09 PM
万字长文教你如何做出 ChatGPT
https://mp.weixin.qq.com/s/8IFcQDhsLIWJIx8siF-wdQ
4/32
input:Today is a
output:good
翻译任务
input:Today is a [翻译为中文]
output:今天是一个
问答任务
input:我是小明 [问题] 我是谁 [答案]
output:小明
上面例子中 [翻译为中文]、[问题] 、[答案] 这些就是用于告诉模型执行什么任务的
token。
通过这样的方式,各种任务都能塞进预训练里进行了,想学的越多,模型的容量自然也需要
更大,GPT2 的参数量达到了 1.5 Billions(GPT1 仅 117 Millions)。
GPT3
GPT3 可以理解为 GPT2 的升级版,使用了 45TB 的训练数据,拥有 175B 的参数量,真正诠
释了什么叫暴力出奇迹。
GPT3 主要提出了两个概念:
情景(in-context)学习:就是对模型进行引导,教会它应当输出什么内容,比如翻译任
务可以采用输入:请把以下英文翻译为中文:Today is a good day。这样模型就能够基
于这一场景做出回答了,其实跟 GPT2 中不同任务的 token 有异曲同工之妙,只是表达
更加完善、更加丰富了。
Zero-shot, one-shot and few-shot:GPT3 打出的口号就是“告别微调的 GPT3”,它可以
通过不使用一条样例的 Zero-shot、仅使用一条样例的 One-shot 和使用少量样例的
Few-shot 来完成推理任务。下面是对比微调模型和 GPT3 三种不同的样本推理形式
图。
4/23/23, 1:09 PM
万字长文教你如何做出 ChatGPT
https://mp.weixin.qq.com/s/8IFcQDhsLIWJIx8siF-wdQ
5/32
ChatGPT
ChatGPT 使用了类似 InstructGPT 的方式来训练模型,该方法也叫做 Learning from Human
Feedback。主要分为三个步骤:
用有监督数据精调 GPT-3.5;
对于模型输出的候选结果(因为采样会导致同一输入有不同输出)进行打分,从而训练
得到一个奖励模型;
使用这个奖励模型,用 PPO 算法来进一步对模型进行训练。
剩余31页未读,继续阅读
资源评论
Python徐师兄
- 粉丝: 559
- 资源: 1774
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功