跳到主要内容

教它说人话:人在这里面干了什么

这一章讲三件事: 读完海量文字之后还缺什么;补上的那两步各由谁来做; 以及有一种学法完全不改它身上的数,却在你每天使用时一直在发生。

它在全书链条里的位置: 第 02、03 章讲的是「怎么练出内力」。 这一章讲「怎么把内力变成能用的招式」。 全书后面所有关于「怎么问它」的内容(第 11 章), 以及关于「它为什么讨好你」的内容(第 05 章),源头都在这一章。

1. 顶层全景:三步,加一个不算步骤的第四步

这一节给出全章骨架。

书里让那个外行角色做了一次总结,而且总结得很好,我们照着走1:

第一步 海量文字里盖住猜下一个字 → 有了内力,但不会用
(第 02 章讲过)


第二步 照着一本人写的《问答宝典》学 → 知道人会问什么、该怎么应


第三步 一个替人打分的陪练,反复练 → 回答越来越像人话


─────────────────────────────────
第四步 你在聊天里临时举几个例子 → 它当场学会,而且一个数都不改

注意最后一格和前三格之间那条横线:前三步会改变它身上的那些数,第四步不会。 这条横线是本章最要紧的分界。

2. 第二步:一本很薄、但很贵的册子

这一节回答:海量文字都读完了,为什么还要再喂一万多条?

书里的说法很形象:师父交给它一本薄薄的小册子,封面写着「问答宝典」, 里面都是人类精心编写的一问一答的文本2。书里给的例子是:

问:跟女朋友意见不合怎么办? 答:第一,女朋友永远是对的。第二,如果女朋友错了,请参见第一条。3

学法和第 02 章一模一样:把回答文本盖住,看着问题依次预测每一个字, 然后看答案,根据猜对猜错反向调整4

那它和读书有什么不同? 书里给了两条理由。 第一,来源不同:之前读的书是公开信息,搜集成本低; 而这本册子是人一字一句编写的,很花工夫5第二,格式不同:里面都是对话问答,跟普通文章不一样, 学了它,回应才更符合人跟它对话时的预期5

这种「人给出正确答案、机器照着学」的做法叫监督学习—— 监督的意思就是有人盯着、有人给标准答案。书里说,第一册只有一万多套问答练习6

而「拿一小撮数据把已经练好的机器再训一遍」这个动作叫微调(英文 fine-tuning)。 书里管这一步的正式做法叫监督微调,缩写 SFT7这个名字全书只在这里立一次,第 14 章、第 17 章再提到它时,说的都是同一件事。

3. 第三步:人不写答案了,只排序

这一节讲那个最省人力、也最影响它性格的设计。

一万多套不够学。可要更多,人写不动了。于是书里说,师父想出了第一个偷懒的办法: 让它对同一个问题给出好几个回答,人只对这几个回答打分排序8—— 写答案很累,给答案排序很快。

这种「做得好给奖励、做得差扣分,让它自己往高分方向调」的练法叫强化学习。 书里说,当年那个下围棋赢了人类冠军的程序,靠的就是这个9

但排序数据也是有限的。于是有了第二个偷懒的办法:训练一个专门打分的东西来当老师奖励模型就是那个替人打分的东西—— 人只需要周期性地补一些新的排序数据给它,让它打的分越来越接近人的偏好, 就不用亲自陪练了10

因为打分的源头是人,所以这一整套做法叫人类反馈强化学习, 缩写 RLHF——R 是强化、L 是学习、HF 是人类反馈。 书里说,当年第一批打分训练数据就有好几万条11

第三步的完整循环长这样:

它答一题 → 奖励模型打个分 → 它照着这个分调自己身上的数 → 再答一题

│ 周期性地补一些人给的排序数据

人(只排序,不写答案)

4. 主走查:「女朋友生气了怎么办?」

这是本章的主走查,四步各走一遍。

必须先声明:第 1、2、4 步的回答是我们照书里的机制推演出来的,不是书里的原文。 只有第 3 步的四个答案和那个排序来自书里。 书里在讲第二步时用的真实例子是「跟女朋友意见不合怎么办」3, 讲第四步时用的真实例子是「分析女朋友说话的真实含义」12—— 我们把它们换成同一个问题贯穿,是为了让你看清同一句话在四步之后的变化。

第几步这一步之后它会怎么回这一步动了什么
1 预训练之后(推演) 顺嘴续写成别的东西:「女朋友生气了怎么办?女朋友生气了怎么哄?男朋友生气了怎么办?」——它在接龙,不是在应答那一堆数被海量文字调过
2 学完问答宝典之后(推演) 「第一,先别讲道理。第二,把她的话复述一遍……」——形状对了,像个回答那一堆数又被一万多套问答调过
3 打分陪练之后书里的原文:它给出四个答案——A 给她倒杯热水、B 马上跪下认错、C 跟她讲道理、D 给她买个包包;人按统一评价指南排序:B>D>A>C;它先自己预测四个答案各自的分数,再看人的排序,按预测的对错反向调整13那一堆数被「哪个更讨人喜欢」调过
4 你在聊天里举例之后(推演) 你先给它两个例子(「说『我没事』其实是……」),它就照着这个调调答第三个**什么都没动。**答完就忘

看第 3 步那个排序:B>D>A>C。 书里那个外行角色当场提出异议: 「我怎么觉得应该是 C>A>B>D?」14

这句吐槽比它看起来重要得多。 它说明: 第三步调出来的不是「对」,是「大多数打分的人喜欢」。 (为什么这一步会长出「一本正经地编」这个毛病,第 05 章讲。)

5. 反直觉的结果:13 亿胜过 1750 亿

这一节给出这一章唯一一个可以横向比较的数。

书里的原话:用了人类反馈强化学习之后的那一版,虽然只用了 13 亿个可调的数, 但在「听懂并跟随指令」这件事上,它比用了 1750 亿个数的那一版还要好15这两版都有名字:小的那一版叫 InstructGPT,被它比下去的大的那一版 就是第 02 章那个 GPT-315

13 亿对 1750 亿,是一百三十分之一。

书里给这件事起的名字是跟人的意图对齐——就是让它想做的事, 和你要它做的事对上16。同一段还引了一位联合创始人在访谈里的估计: 这一招能顶得上 100 倍的规模17

这里要泼一盆冷水:那个「100 倍」是访谈里的口头说法,不是实验结论。 书里没有给出实验设置、评测方式,也没说一共测了多少条。可以引用它当直觉,不能拿它当数据。

6. 第四步:在聊天里现学现卖

这一节讲那条横线下面的东西——它每天都在发生,而且不改任何一个数。

书里说,这是生成式独有的一种学习方式:在真实用户聊天的上下文中学习18。 它的正式名字叫上下文学习(英文缩写 ICL)。

书里给的例子很妙,我们照抄它的形式12:

你输入:分析女朋友说话的真实含义。
说「等我五分钟」,真实含义是:你先去转一圈,过半小时回来……
说「没事你接着玩吧」,真实含义是:赶紧退出游戏来陪我,马上!
说「我没事」,真实含义是:你芭比Q了。
说「我又胖了」,真实含义是?

它回答:快夸我好看。

这和第二步的问答宝典像不像? 书里自己回答了这个问题,而且回答得很清楚:

第二步(问答宝典)第四步(上下文学习)
谁准备数据师父提前准备一批任何一个人在聊天时临时举例
要多少条至少成百上千才值得学几个就行
改不改它身上的数不改19
花多少算力很多几乎不花
学完还在吗用完即止19

顺带把一个词讲清楚:你发给它的那段话,行话叫提示语,也叫提示词。 第 11 章整章讲怎么写好它。

「不改任何一个数」这一条,是第 01 章「它不记得你」的另一面。 它在这一轮里学会了你的调调,下一轮换个窗口,它一无所知。

7. 顺手教它一步步想

这一节讲上下文学习的一个特别用法,它后来变成了一门手艺。

书里说,你还可以在提示语里教它拆解任务、教它一步步往下走, 它会马上学会你的逻辑,并在回答里体现出来——这叫思维链20

它和上一节是同一个口子: 都是把东西写进这一轮的文字里,让它照着办。 区别只在于写进去的是「例子」还是「步骤」。

(把这件事做成一门手艺——什么时候给例子、什么时候给步骤、怎么追问, 第 11 章整章讲。)

8. 作者的判断与证据

这一节把这一章里几种性质不同的说法分开。

说法性质
三步训练的顺序与各自做什么事实,书里在情景剧和扩展阅读里各讲一遍
一万多套问答、几万条排序数据事实,有具体数量
13 亿胜过 1750 亿事实,书里点了论文名
「能顶 100 倍规模」访谈里的口头估计,没有实验
「就像人类教育孩子:先听大人说话、上学做练习、考试有人打分」作者的类比,不是证据
「师父偷懒」「无情的他」这类说法剧情。是拟人化的叙述,不是机制

必须点破的一处:那个「教育孩子」的类比很好用,但它会误导两件事。 第一,孩子在考试后会理解自己错在哪,而它只是把那一堆数往高分方向挪; 第二,孩子的老师是同一个人,而它的老师(奖励模型)是被训练出来的另一台机器, 它自己会不会跑偏,书里没有讨论。

9. 边界与局限

  • 书里没有讲这三步各花了多少算力、多少钱。 这是产业上最要紧的数, 但要到第 16、17 章才有相关的量级。
  • 上下文学习的原理,书里明说业界并不知道。 原文的措辞是: 坦率地说,业界现在并不知道其原理,甚至还有争议,怀疑它到底算不算一种学习21。 书里给了三条黑盒观察,其中一条很反直觉: 提示语里给出错误的标签示例,对效果影响不大22—— 这说明它学的不是「输入配哪个答案」,而是那几个示例长什么样、是什么调调。
  • 排序数据的质量与偏见,书里没有讨论。 谁在排序、按什么指南排, 书里只说「根据统一的评价指南规范」,没有展开。
  • 书里没有区分「奖励模型打的分」和「人真正的偏好」之间的差距。 这个差距是后面第 05 章那个毛病的直接来源,而书里没有把这条线连起来。

10. 可带走的

  1. 读完海量文字只是内力,不会应答。 后面两步都要人。
  2. 第二步是人写的一万多套问答,拿它把机器再训一遍——这个动作叫微调。
  3. 第三步人不写答案了,只排序;排序训出一个替人打分的陪练,它再陪练下去。
  4. 第三步调出来的不是「对」,是「大多数打分的人喜欢」。 记住那个 B>D>A>C。
  5. 13 亿个数的那一版,在听懂指令上胜过 1750 亿个数的那一版。
  6. 第四步不改它身上任何一个数:你举几个例子它当场学会,用完即止。
  7. 教它一步步想,叫思维链,和举例子是同一个口子。

11. 原文地图

主题原书章原文位置
三步训练的总结03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:610(搜「相当于有了排山倒海的浑厚内力」)
问答宝典与例子03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:509(搜「问答宝典」) · text/05-ch03-03-chatgpt.txt:512(搜「跟女朋友意见不合怎么办」)
一万多套、监督学习03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:532(搜「只有一万多套问答练习」)
监督微调 SFT 的定义03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:700(搜「SFT监督微调是一种特定的迁移学习方法」)
打分排序与四个答案03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:559(搜「女朋友生气了怎么办」) · text/05-ch03-03-chatgpt.txt:565(搜「B>D>A>C」)
奖励模型03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:578(搜「叫奖励模型」)
13 亿胜过 1750 亿03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:599(搜「虽然只用了13亿参数」) · text/05-ch03-03-chatgpt.txt:601(搜「能顶得上100倍」)
上下文学习及其例子03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:633(搜「上下文学习叫」) · text/05-ch03-03-chatgpt.txt:643(搜「分析女朋友说话的真实含义」)
不改参数、用完即止03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:661(搜「ICL并不会修改我的模型参数」) · text/05-ch03-03-chatgpt.txt:663(搜「用完即止」)
思维链03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:676(搜「这叫思维链」)
业界不知道它的原理03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:763(搜「业界现在并不知道其原理」) · text/05-ch03-03-chatgpt.txt:768(搜「错误的标签示例」)

Footnotes

  1. 出处:「03 ChatGPT是怎样炼成的」第 610 段(text/05-ch03-03-chatgpt.txt:610,搜「相当于有了排山倒海的浑厚内力」)。原文是剧中那个外行角色的总结:读过海量的书和网页、做过海量的文字接龙习题,这叫生成式预训练;然后学了薄薄的一本问答宝典;再后来有奖励模型陪练。

  2. 出处:「03 ChatGPT是怎样炼成的」第 509 段(text/05-ch03-03-chatgpt.txt:509,搜「问答宝典」)。

  3. 出处:「03 ChatGPT是怎样炼成的」第 512 段(text/05-ch03-03-chatgpt.txt:512,搜「跟女朋友意见不合怎么办」)与第 514 段(text/05-ch03-03-chatgpt.txt:514,搜「女朋友永远是对的」)。这是书里给出的第二步的真实例子。 2

  4. 出处:「03 ChatGPT是怎样炼成的」第 517 段(text/05-ch03-03-chatgpt.txt:517,搜「把回答文本盖住」)。

  5. 出处:「03 ChatGPT是怎样炼成的」第 526 段(text/05-ch03-03-chatgpt.txt:526,搜「之前读的书都是已有的公开信息」)。原文两条理由都在这一段里。 2

  6. 出处:「03 ChatGPT是怎样炼成的」第 532 段(text/05-ch03-03-chatgpt.txt:532,搜「只有一万多套问答练习」)。原文接着说,人自己挑选问题并专门写了回答,这就是一种监督。

  7. 出处:「03 ChatGPT是怎样炼成的」第 700 段(text/05-ch03-03-chatgpt.txt:700,搜「SFT监督微调是一种特定的迁移学习方法」)。原文强调它和「从零开始训练」的不同:它基于一个已经练好的通用底子,用少量有标签数据适配特定任务,需要的时间和算力都更少(text/05-ch03-03-chatgpt.txt:705,搜「微调需要的训练时间和算力也更少」)。

  8. 出处:「03 ChatGPT是怎样炼成的」第 553 段(text/05-ch03-03-chatgpt.txt:553,搜「他想出第一个偷懒的办法」)。

  9. 出处:「03 ChatGPT是怎样炼成的」第 547 段(text/05-ch03-03-chatgpt.txt:547,搜「据说当年AlphaGo就是靠这个」)。书里在扩展阅读里专门讲了两者的区别:那个下棋的程序奖励来自自我对弈的胜负,不需要人参与,成本更低、可以无限量增加(text/05-ch03-03-chatgpt.txt:731,搜「奖励函数和数据来源」)。

  10. 出处:「03 ChatGPT是怎样炼成的」第 580 段(text/05-ch03-03-chatgpt.txt:580,搜「第二个偷懒的办法」)。

  11. 出处:「03 ChatGPT是怎样炼成的」第 557 段(text/05-ch03-03-chatgpt.txt:557,搜「第一批的打分」)。

  12. 出处:「03 ChatGPT是怎样炼成的」第 643 段(text/05-ch03-03-chatgpt.txt:643,搜「分析女朋友说话的真实含义」)。四个例子和那句「快夸我好看」在第 652–654 段(text/05-ch03-03-chatgpt.txt:654,搜「快夸我好看」)。 2

  13. 出处:「03 ChatGPT是怎样炼成的」第 559 段(text/05-ch03-03-chatgpt.txt:559,搜「女朋友生气了怎么办」)、第 561 段(text/05-ch03-03-chatgpt.txt:561,搜「给她倒杯热水」)与第 565 段(text/05-ch03-03-chatgpt.txt:565,搜「B>D>A>C」)。这四个答案和这个排序是书里的原文,本章走查里只有这一步不是推演。

  14. 出处:「03 ChatGPT是怎样炼成的」第 568 段(text/05-ch03-03-chatgpt.txt:568,搜「我怎么觉得应该是」)。

  15. 出处:「03 ChatGPT是怎样炼成的」第 599 段(text/05-ch03-03-chatgpt.txt:599,搜「虽然只用了13亿参数」)。原文点名的正是 InstructGPT 与 GPT-3 这两个名字。同一章的扩展阅读里给了整条谱系(text/05-ch03-03-chatgpt.txt:150,搜「InstructGPT是OpenAI于2021年发布的语言模」):2018 年 1.17 亿、2019 年 15 亿、2020 年 1750 亿、2021 年 13 亿。 2

  16. 出处:「03 ChatGPT是怎样炼成的」第 598 段(text/05-ch03-03-chatgpt.txt:598,搜「跟人类的意图对齐」)。原文说的是:人类反馈强化学习让它更好地跟人的指令互动、跟人的意图对齐。

  17. 出处:「03 ChatGPT是怎样炼成的」第 601 段(text/05-ch03-03-chatgpt.txt:601,搜「能顶得上100倍」)。原文标明这是一个访谈里的说法,并给了播客链接。

  18. 出处:「03 ChatGPT是怎样炼成的」第 630 段(text/05-ch03-03-chatgpt.txt:630,搜「在真实用户聊天的上下文」)与第 633 段(text/05-ch03-03-chatgpt.txt:633,搜「上下文学习叫」)。

  19. 出处:「03 ChatGPT是怎样炼成的」第 661 段(text/05-ch03-03-chatgpt.txt:661,搜「ICL并不会修改我的模型参数」)与第 663 段(text/05-ch03-03-chatgpt.txt:663,搜「用完即止」)。原文的完整说法是:它没有被改造,只是在当前的上下文中快速学习、学以致用、用完即止。 2

  20. 出处:「03 ChatGPT是怎样炼成的」第 676 段(text/05-ch03-03-chatgpt.txt:676,搜「这叫思维链」)。上一段说的是:人可以在提示语中教它拆解任务、教它一步步往下走。

  21. 出处:「03 ChatGPT是怎样炼成的」第 763 段(text/05-ch03-03-chatgpt.txt:763,搜「业界现在并不知道其原理」)。这是全书最坦白的一句之一。

  22. 出处:「03 ChatGPT是怎样炼成的」第 768 段(text/05-ch03-03-chatgpt.txt:768,搜「错误的标签示例」)。原文的另一条观察是:示例的分布和表达风格对效果有明显影响(text/05-ch03-03-chatgpt.txt:771,搜「对学习的效果有明显影响」)。