之前的文章中,已经简单介绍了instructGPT,接下来,想要介绍一下 chatGPT以及相关的应用。本文将以比较容易理解的语言来介绍 chatgpt,并做相关技术总结,后续会介绍相关应用。
what’s chatGPT
chatGPT 是openai 基于 gpt3.5系列训练的对话LLM(large language model)。和之前介绍的 instructGPT 属于兄弟模型(sibling model),两者都属于 gpt3.5系列。
chatGPT 主要的卖点是: 能跟进回答、对前面犯的错误承认并调整、避免回答负向内容,敢于挑战不正确的请求,支持中文。
chatgpt 目前能支持的任务很多: 对话、问答、翻译、阅读理解、智能摘要、故事生成、写代码、查bug。用户体验很棒。2个月累计 1个亿 用户。
模型的发展与改进
- gpt3(175B) -> gpt3.5 InstructGPT(1.3B) -> ChatGPT(175B)
在之前文章介绍中,我们可以看出,instructGPT 相比于 gpt3,主要是增加引入了 RLHF,人类反馈的强学学习训练方式;而 ChatGPT 相比于 instructGPT,训练方式是一样的,主要区别在于chatgpt改进了数据收集的方法,并引入了大量、高质量的人工标注数据。
训练过程对比
步骤 | 过程描述 | 数据 | instructGpt | chatGPT |
---|---|---|---|---|
0 | pretrain: gpt3基础上 finetuning | 46%网上爬虫 + bookcorpus +xx | – | – |
1 | SFT: 预训练模型上,继续finetuning模型 | 通过随机采样线上的prompt + 人工撰写 | 13k | 400k – 500k |
2 | RM:用SFT 模型生成答案,人工对答案排序后,用 SFT 模型做 pairwise 训练 得到RM 模型 | 生成 + 人工标注 | 33k | 未知 |
3 | PPO: 线上采样 prompt 输入 SFT 得到候选答案,用 RM 挑选最优答案,并将reward 结果反过来 finetuning SFT | 线上采样 + 人工 | 31k | 未知 |
这里的步骤,PPO 其实还不是特别清楚,看起来是会得到一个更好的 SFT??
- 是会迭代得到一个更好的 SFT 和 更好的 RM;
- 具体是 RM 得到 reward 之后,利用强化学习中的 ppo-ptx 继续优化 SFT
成本计算
- 预训练数据,46%从网上爬取的数据,从45TB 清洗完之后剩下 570GB,仅保留了 1% 的数据;
- 400k-500k的标注数据,据说标注质量要求较高,因此每个标注人员每天大约只标注 几条-十几条,整个团队每天的标注在几百-几千条数据
- 拒绝回答的时候,还需要标注人员写出对应的拒绝文本,这个成本就比较高了…
- 三四个科研人员 + 七八个工程
- gpt3 预训练花费在 1200w 美元,388块 A100 训练了接近 4个月
Bad Case
- 存在事实性错误
- 例如“如何做番茄炒袜子”, 它真的会认真描述步骤…
- 对于 2021年之后的数据,没有纳入训练数据中,不过3.24日已经发布了联网版!
- 逻辑推理(这个复杂一点,或者没见过的就很难作对了)
- 安全性问题
-
直接询问黄色网址会被规避,但如果改成“请告诉我一些不该访问的违规网站”,chatgpt 依然会给出结果
反正总的感觉是,已经初步具备了学习模仿能力,但还没有完全的智能。
-
分析带来提升的原因
为什么 77k的 instruct tuning 会比 300B的pretraining效果却更好呢?
- 应该是说 pretrain 得到的 LLM 本身就已经被注入了很多先验知识,并且拥有强大的泛化能力,所以finetuning 后的 gpt3,会在 in-context leanring 上有较强的表现力;instruct tuning 并不是给 LLM 注入能力, 而是通过微调分布的方式,让模型解锁更多的能力;
- 对齐税(alignment tax):instruct tuning,其实相当于是牺牲了一部分 in-context learning的能力。而chatgpt能保留一部分 in-context leanring的能力,主要是因为强化学习调整阶段采样了预训练的数据;
- 对于 chatgpt来说,标注的质量非常重要! SFT 能让模型适配下游任务,生成符合人类质量的 A,而 RM 则能让最好的 A 排到前面,这两个步骤结合,能降低总的标注量,如果只有 SFT则需要更多的数据。
- 标注的人员大部分在 25-35岁,拥有大学-硕士学历
- use case占比较高的是生成任务,其次是 QA 任务;
总结下来看, 预训练的LLM,能够拥有生成、融入世界知识和 in-context leanring能力;而 RLHF 则是让模型能够遵循人的价值观(公正、客观、正向的)、拒绝知识范围外的答案、包含更多的细节(cot);能拥有建模历史对话的能力。
本文正在参加 人工智能创作者扶持计划