ChatGPT(一): 技术介绍

1,270 阅读4分钟

之前的文章中,已经简单介绍了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)

截屏2023-03-24 下午2.24.50.png 在之前文章介绍中,我们可以看出,instructGPT 相比于 gpt3,主要是增加引入了 RLHF,人类反馈的强学学习训练方式;而 ChatGPT 相比于 instructGPT,训练方式是一样的,主要区别在于chatgpt改进了数据收集的方法,并引入了大量、高质量的人工标注数据。

训练过程对比

步骤过程描述数据instructGptchatGPT
0pretrain: gpt3基础上 finetuning46%网上爬虫 + bookcorpus +xx--
1SFT: 预训练模型上,继续finetuning模型通过随机采样线上的prompt + 人工撰写13k400k - 500k
2RM:用SFT 模型生成答案,人工对答案排序后,用 SFT 模型做 pairwise 训练 得到RM 模型生成 + 人工标注33k未知
3PPO: 线上采样 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);能拥有建模历史对话的能力。

本文正在参加 人工智能创作者扶持计划