跳到主要内容

少有人走的路:两种练法的分叉

这一章讲三件事: 在它出现之前,聊天机器人是怎么答话的; 同一道题的两种盖法差在哪;以及为什么走通的是当年输得最惨的那一种。

它在全书链条里的位置: 第 02 章讲了它怎么练。 这一章讲「为什么是它,而不是当年赢的那个」。 这也是全书唯一一处讲失败与坚持的地方,后面第 19 章讲泡沫时会用到同一条线索。

1. 老办法:答案是事先写好的

这一节先讲它出现之前的做法,不然你无法体会分叉有多大。

书里问了一个很实在的问题:当年那些聊天机器人比什么? 答案是比各种专业细分的技能1:

技能干什么书里的例子
文本分类判断这句话属于哪一类「北京市朝阳区有哪些三甲医院?」属于「查医院」类
命名实体识别——把人名、地名、机构名这类具体东西从句子里挑出来挑出查询要用的条件挑出「北京市朝阳区」
文本匹配判断两句话是不是一个意思「怎么到那儿?」和「告诉我导航路线」

这三样组合起来,就是当年所有聊天机器人的干活方式—— 书里点名说,包括当时的语音助手在内2

流程是:先用文本分类识别你的意图,再用命名实体识别填查询条件, 最后到知识库里把答案查出来,直接回复给你3书里管这种做法叫检索式——因为回答的内容都是事先写好的,不是新造的。4

它的好处很硬:回答的内容固定可控、不会出事。 书里说, 正经严肃服务人的机器人,当年都在用这一种,不敢用会自己写的那种5

2. 分叉点:只看上文,还是两头都看

这一节讲全章最要紧的那个分岔口。

先把三个名字一次讲完,因为你出门一定会撞见它们。

书里把 ChatGPT 这个名字拆成四段:Chat 说的是会聊天, 后面三个字母各代表一门功夫6。其中 P 是预训练,第 02 章已经讲过了。

G 是生成式——就是「照着给出来的上文,把后面的文字写出来」这种干活方式。 书里的原话是:通过文字接龙生产出新的内容,所以它对文本从左到右单向编码、单向预测7

要说清 T,得先说清什么是网。神经网络就是一大堆小零件连成的一张网, 每个小零件把收到的数乘上自己身上那个可调的数再往下传—— 第 02 章说的「1750 亿个可调的数」,就长在这张网上。

T 是 Transformer——2017 年一篇论文提出的一种搭这张网的方法8书里没有展开讲它内部,我们也不在这里替它讲。

现在说分叉。当年另一条路上站着一个大师级的对手,它叫 BERT—— 同样用 Transformer 这种搭法,但它的第一个字母 B 指的是双向编码: 它预测某个位置的字时,不光用上文,还用下文9

两种练法的区别,用考试题打比方一眼就清楚:

只看上文的那一种两头都看的那一种
训练时怎么盖把下文全部盖住在上下文中间盖住一块
相当于做什么题句子补全完形填空
能不能往后写新内容不能

书里那句判决说得很干脆:完形填空要求左右两边的内容都提前拿到, 而生成新内容需要从左到右一路预测下去,所以「生成新内容这事只有咱们能干」10

3. 主走查:「北京市朝阳区有哪些三甲医院?」

这是本章的主走查。三种做法拿同一句话各走一遍。

下面表格里的中间状态,除了标了出处的那几处,都是我们照书里的机制推演的,不是书里的原文。

做法一:老办法(检索式),三步

第几步干什么这一步手里拿到什么
1文本分类判定这句话属于「查医院」这一类3
2命名实体识别从句子里抽出 北京市朝阳区 当查询条件3
3去库里取拿这两样去知识库查,取回事先写好的那条答案,原样回给你3

做法二:完形填空那一种,一步

第几步干什么这一步手里拿到什么
1把句子中间挖个空,让它填给它 北京市朝阳区有哪些▢▢医院?,它填出 三甲

注意:它填完就没有下文了。 它不能接着往下写出一份医院名单—— 这不是它水平不够,是这种练法决定的。

做法三:只看上文那一种,一步,但这一步会一直走下去

第几步手上已有的条件写下来的
1北京市朝阳区有哪些三甲医院?
2北京市朝阳区有哪些三甲医院?北
……每一步把上一步写下的字并进条件一直写到它认为该停

三种做法的分野在最后一列:前两种只能取或填,第三种能造。

4. 但当年,能造的那一种输得很惨

这一节讲一件反直觉的事:走通的那条路,当年在所有比赛项目上都是输的。

原因就在第 2 节那张表:当年的比赛项目是文本分类、匹配这些细分技能, 而**「能不能生成新内容」不是当年的比赛项目**11

于是:第一代和第二代因为要保留生成能力,选择了只有上文信息的单向编码, 在文本分类、匹配这些细分技能上被 BERT 抛在后面12

2018 年那一年的局面,书里写得很直白: BERT 在许多传统项目上的表现全面碾压第一代13, 于是国内外的学术机构和科技公司纷纷将重兵投入 BERT 方向, 只有人才过剩的大企业还留下小部分团队跟进14

从产业角度看,这个选择完全理性。 书里说: 通过预测下一个词就能理解世界、走向通用智能,这个思路在理论上无法证伪—— 就是「你举不出一个反例来把它否掉」——但成功概率极低; 而年复一年攻克单项任务、完成原来那套年度考核,是更稳妥的选择15

这就是这一章标题的由来:一条少有人走的路16

5. 转机:它没学过翻译,却会翻译了

这一节讲那条路上第一个可以被称为证据的东西。

第二代把训练数据量提了近 10 倍、可调的数提了 10 多倍17, 结果出现了一件计划外的事:它莫名其妙学会了几种技能,比如文本摘要和翻译18

为什么这件事值得大惊小怪? 因为在那之前,翻译模型都要用平行语料来训—— 就是「我爱你」配「I love you」这种一一对应的两份文本, 专门为翻译任务大量训练19

而第二代没有用这种一一对应的两份文本,就学会了翻译。 书里管这种「一个例子都没给就会了」的现象叫零样本20, 并说这是从来没有发生过的事

这一步在主走查上占哪一格? 它不在上面那三种做法里—— 它是「做法三」走到足够大之后冒出来的新格子。 (这类「突然会了」后来有了正式名字,第 05 章讲。)

6. 但那时它很弱,而且差的不是算力

这一节把两件容易被后来者美化的事说清楚。

第一件:当时的翻译水平很低。 书里毫不客气:虽然一不小心学会了翻译, 但水平还很低,跟专业翻译模型没法比21;剧里那个外行角色的评价是 「这『降龙十八掌』还是乞丐版的」22

第二件,也是这一章真正的落点:差的那样东西不是技术。

书里给了一个时间对照,非常锋利: 1986 年那位后来的图灵奖得主就在《自然》杂志上发表过同一个核心思想—— 预测句子的最后一个词。可他当年只能用 112 个句子的数据 (其中 104 句作训练、8 句作测试),而且 1986 年连英伟达公司都还没成立23

然后是那句话:「比算力和数据更短缺的,是相信。」24 书里还引了他 2023 年的回忆:那时候如果你声称需要更多的算力和数据才能让模型有用, 别人会嘲笑你,觉得你在给自己的失败找借口25

第三代把规模放大百倍之后,从量变到质变26,这条路才被业界认可。 而那位首席科学家的总结是: 「在你拥有大规模的高质量数据和算力之后,你还需要相信。」27 (这句话在全书末尾还会再出现一次,第 20 章讲。)

7. 作者的判断与证据

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

说法性质
两种盖法的技术差别、当年的比赛项目事实,而且在扩展阅读里给了细节
2018 年重兵投向另一边事实,产业界当时的公开状况
1986 年的 112 个句子、104/8 的划分事实,而且带年份可核
「孤身走暗巷」「对峙过绝望」这类说法修辞。是作者借流行歌词写的抒情段落
「这种坚持才是通用智能最重要的来源」作者的判断,不是可验证的结论
「成功概率极低但无法证伪」作者对当年产业心态的复盘,事后视角

必须点破的一处:这一章有很强的事后叙事色彩。 书里把这条路写成「孤勇者的坚持」,但同一段也承认了: 留在这条路上的是人才过剩的大企业里的小部分团队14「有余力试错」和「孤勇」不是一回事,这一层书里没有展开。

8. 边界与局限

  • 书里没讲 Transformer 内部是什么。 全书讲清「它的核心机制是什么」只在代序里有一次; 原书正文里只在它自己的第 14 章把那篇奠基论文的名字当某人的履历带过一次(见第 07 章第 6 节), 连一张图都没有。
  • 书里没讲两种练法在数学上为什么此消彼长。 只有结果的对比,没有原因。
  • 「零样本」这个现象书里只给了翻译一个例子,而且全书再没有第二个。 第 05 章那些「突然会了」的例子讲的是另一件事——过了某个规模才冒出来的能力, 不是「一个例子都没给就会」。这两件事在书里挨着出现,极容易被读成一件。
  • 书里对 BERT 后来的处境没有交代。 它在 2019 年之后仍有大量变体和应用, 书里在这一章之后就再没提过。

9. 可带走的

  1. 老一代聊天机器人的答案是事先写好的:先归类,再抽条件,再去库里取。
  2. 同一道题有两种盖法:全盖住只看上文往下写,和中间挖空两头都看。
  3. 完形填空那种拿分高,但它写不出下文——不是水平问题,是练法决定的。
  4. 2018 年,能写下文的那一种在所有比赛项目上都输。
  5. 转机是一次计划外的事:没给一个例子,它却会翻译了。
  6. 1986 年那个思想就有了,差的是 112 个句子和一块还不存在的显卡。
  7. 书里给的最终答案是一句不像技术书的话:你还需要相信。

10. 原文地图

主题原书章原文位置
ChatGPT 四个字母的拆解03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:13(搜「会聊天的生成式预训练」) · text/05-ch03-03-chatgpt.txt:18(搜「每个词都代表了咱们的一门功夫」)
生成式:单向编码单向预测03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:233(搜「单向编码、单向预测」)
BERT 的双向编码03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:237(搜「他的B」)
只有能生成的才写得出新内容03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:247(搜「只做完形填空」) · text/05-ch03-03-chatgpt.txt:249(搜「只有咱们能干」)
当年比什么03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:254(搜「当年都在比各种专业细分的技能」)
检索式的三步03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:268(搜「先用文本分类」) · text/05-ch03-03-chatgpt.txt:270(搜「这也叫检索式」)
固定可控、不敢用生成式03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:277(搜「回答的内容固定可控」)
被抛在后面、少有人走的路03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:285(搜「细分技能上被BERT抛在后面」) · text/05-ch03-03-chatgpt.txt:289(搜「一条少有人走的路」)
零样本学会翻译03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:298(搜「例如文本摘要和翻译」) · text/05-ch03-03-chatgpt.txt:302(搜「就学会翻译了」)
1986 年的 112 个句子03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:422(搜「只能使用112」) · text/05-ch03-03-chatgpt.txt:424(搜「连英伟达公司都还没成立」)
比算力和数据更短缺的是相信03 ChatGPT是怎样炼成的text/05-ch03-03-chatgpt.txt:426(搜「比算力和数据更短缺的」) · text/05-ch03-03-chatgpt.txt:461(搜「在你拥有大规模的高质量数据和算力之后」)

Footnotes

  1. 出处:「03 ChatGPT是怎样炼成的」第 254 段(text/05-ch03-03-chatgpt.txt:254,搜「当年都在比各种专业细分的技能」)。三个例子分别在第 256 段(text/05-ch03-03-chatgpt.txt:256,搜「命名实体识别」)与紧随其后的几段里。

  2. 出处:「03 ChatGPT是怎样炼成的」第 266 段(text/05-ch03-03-chatgpt.txt:266,搜「也包括现在的大多数机器人」)。原文点名了当时的一款语音助手。

  3. 出处:「03 ChatGPT是怎样炼成的」第 268 段(text/05-ch03-03-chatgpt.txt:268,搜「先用文本分类」)。原文的完整三步是:先用文本分类识别查询意图,然后用命名实体识别填写查询参数,最后到知识库里把答案查询出来。 2 3 4

  4. 出处:「03 ChatGPT是怎样炼成的」第 270 段(text/05-ch03-03-chatgpt.txt:270,搜「这也叫检索式」)。原文给的理由是:回答的内容都是事先写好的,不是新创造的。

  5. 出处:「03 ChatGPT是怎样炼成的」第 277 段(text/05-ch03-03-chatgpt.txt:277,搜「回答的内容固定可控」)。原文说,当年正经严肃服务人类的机器人都在用检索式,不敢用生成式,因为后者几年前还经常出低级错误。

  6. 出处:「03 ChatGPT是怎样炼成的」第 13 段(text/05-ch03-03-chatgpt.txt:13,搜「会聊天的生成式预训练」)与第 18 段(text/05-ch03-03-chatgpt.txt:18,搜「每个词都代表了咱们的一门功夫」)。

  7. 出处:「03 ChatGPT是怎样炼成的」第 233 段(text/05-ch03-03-chatgpt.txt:233,搜「单向编码、单向预测」)。

  8. 出处:「03 ChatGPT是怎样炼成的」第 432 段(text/05-ch03-03-chatgpt.txt:432,搜「谷歌发表了提出Transformer架构的论文」)。原文说的是 2017 年。书里正文没有讲这种搭法内部是什么,只在代序里点了一次它的核心机制的名字。

  9. 出处:「03 ChatGPT是怎样炼成的」第 237 段(text/05-ch03-03-chatgpt.txt:237,搜「他的B」)。原文说 B 是 Bidirectional,双向编码;预测某个位置的文字时不光要用上文,还要用下文。

  10. 出处:「03 ChatGPT是怎样炼成的」第 247 段(text/05-ch03-03-chatgpt.txt:247,搜「只做完形填空」)与第 249 段(text/05-ch03-03-chatgpt.txt:249,搜「只有咱们能干」)。

  11. 出处:「03 ChatGPT是怎样炼成的」第 250 段(text/05-ch03-03-chatgpt.txt:250,搜「当年的比赛项目」)。

  12. 出处:「03 ChatGPT是怎样炼成的」第 285 段(text/05-ch03-03-chatgpt.txt:285,搜「细分技能上被BERT抛在后面」)。

  13. 出处:「03 ChatGPT是怎样炼成的」第 440 段(text/05-ch03-03-chatgpt.txt:440,搜「全面碾压」)。

  14. 出处:「03 ChatGPT是怎样炼成的」第 442 段(text/05-ch03-03-chatgpt.txt:442,搜「重兵投入」)。原文接着说,只有人才过剩的大企业还留下小部分团队跟进。 2

  15. 出处:「03 ChatGPT是怎样炼成的」第 446 段(text/05-ch03-03-chatgpt.txt:446,搜「在理论上无法证伪」)。

  16. 出处:「03 ChatGPT是怎样炼成的」第 289 段(text/05-ch03-03-chatgpt.txt:289,搜「一条少有人走的路」)。这是剧中那个外行角色说的话,也是本章标题的来源。

  17. 出处:「03 ChatGPT是怎样炼成的」第 450 段(text/05-ch03-03-chatgpt.txt:450,搜「提升了近10倍的训练数据量」)。

  18. 出处:「03 ChatGPT是怎样炼成的」第 298 段(text/05-ch03-03-chatgpt.txt:298,搜「例如文本摘要和翻译」)。

  19. 出处:「03 ChatGPT是怎样炼成的」第 299 段(text/05-ch03-03-chatgpt.txt:299,搜「平行语料」)。原文举的两个例子是「我爱你」配「I love you」,以及一个拿「怎么老是你?」配「How old are you?」的玩笑。

  20. 出处:「03 ChatGPT是怎样炼成的」第 302 段(text/05-ch03-03-chatgpt.txt:302,搜「就学会翻译了」)。原文用的词是「零样本、无师自通」。同一章第 319 段(text/05-ch03-03-chatgpt.txt:319,搜「用少量样本」)说,第三代还发现用少量样本就能学会更多种类的新技能。

  21. 出处:「03 ChatGPT是怎样炼成的」第 309 段(text/05-ch03-03-chatgpt.txt:309,搜「水平还很低」)。

  22. 出处:「03 ChatGPT是怎样炼成的」第 312 段(text/05-ch03-03-chatgpt.txt:312,搜「乞丐版」)。

  23. 出处:「03 ChatGPT是怎样炼成的」第 420 段(text/05-ch03-03-chatgpt.txt:420,搜「他就在《自然》杂志上发表」)、第 422 段(text/05-ch03-03-chatgpt.txt:422,搜「只能使用112」)与第 424 段(text/05-ch03-03-chatgpt.txt:424,搜「连英伟达公司都还没成立」)。

  24. 出处:「03 ChatGPT是怎样炼成的」第 426 段(text/05-ch03-03-chatgpt.txt:426,搜「比算力和数据更短缺的」)。这一句在原文里独占一段,是全章的转折点。

  25. 出处:「03 ChatGPT是怎样炼成的」第 428 段(text/05-ch03-03-chatgpt.txt:428,搜「那时候(1986年)」)。

  26. 出处:「03 ChatGPT是怎样炼成的」第 457 段(text/05-ch03-03-chatgpt.txt:457,搜「从量变到质变」)。

  27. 出处:「03 ChatGPT是怎样炼成的」第 461 段(text/05-ch03-03-chatgpt.txt:461,搜「在你拥有大规模的高质量数据和算力之后」)。同一句在「后记」第 30 段(text/20-fm.txt:30,搜「你还需要相信」)又出现了一次,作者说他是在检查书稿时再次看到这句话的。