AI 为什么会?④ 为什么预测下一句话,会产生智能?
上一篇,我们没有急着判断 AI 到底会不会思考,而是先看清了一件事:无论最终回答还是回答前的推理,模型都要通过一次次计算和生成向前推进。
于是,真正的问题来了。
为什么预测下一个 Token,最后会表现出智能?
调查现场
今天不打开 ChatGPT,先玩一个小游戏。请预测下面这句话最后缺少的内容。
今天天气很好,我们一起去公____
大多数人都会填“园”。为什么?因为前面的信息已经把答案缩小到了很小的范围。再来一句:
中国的首都是北____
几乎所有人都会填“京”。看到这里,预测下一个词好像并不难。于是,当我第一次听到下面这句话时,心里多少有点失望:
大模型就是高级文字接龙。
就这?
如果只是这样,它为什么还能写代码、翻译、总结合同,甚至完成多步推理?文字接龙和智能之间,显然还少了一块东西。
一、先别急着把“预测”说得太玄
为了补上这块东西,人们很容易把它说成:“模型预测的不是文字,而是世界接下来会发生什么。”这句话很有气势,可它不准确。
在科幻小说里,下一句可能是外星舰队降临地球;在历史文章里,下一句却不能因此变成科幻情节。模型每一步直接预测的,不是现实世界下一秒会发生什么,也不是一条悬在空中的“规律”。
它输出的是:
在当前 Context 下,接下来各个 Token 出现的概率。
Token 可以粗略理解成文字被切分后的基本单位,也可能是标点、代码片段或者一个词的一部分。系统再根据这些概率和解码规则,选出下一个 Token。它不一定每次都机械选择概率最高的那个,所以同一个问题可能得到略有不同的答案。
这听起来似乎又回到了文字接龙。
真正有意思的地方,恰恰在这里:它直接输出的确实很小,但为了把这一步做对,它不得不学会很多更大的东西。
二、难点从来不在“下一个”
看到:
for i in range(10):
下一行为什么大概率要缩进?不是因为它只记住了冒号后面有几个空格,而是因为 Python 有语法结构。再看:
尊敬的张先生:
下一句为什么通常不会突然变成足球比分?因为邮件有自己的表达规律。
为了把下一个 Token 预测好,模型不能只统计相邻的两个字。它需要捕捉语法、语义、文体、代码结构、概念关系以及大量关于世界的知识。
那一刻,我终于意识到:
预测目标很小,支撑预测的内部结构却可以非常复杂。
三、它是在背答案,还是在学规律?
走到这里,又会出现一个争论:它究竟只是背下了所有答案,还是学会了真正的规律?
我以前更愿意相信后一个答案,因为它听起来更像智能。可现实没有这么整齐。
训练过程中,模型可能记住一些高频事实、固定表达甚至罕见片段,也会从大量例子中归纳出可以迁移到新问题的规律。记忆和泛化不是非此即彼,它们会同时存在,而且边界并不总是容易看清。
如果只有记忆,它遇到没见过的新组合就会立刻失效;如果完全没有记忆,它也不可能保留大量事实和固定表达。真正让大模型有用的,不只是它见过什么,还包括:
它能不能把见过的结构,组合到没有原样见过的新问题上。
四、一个很小的目标,为什么长出了这么多能力?
答案可能就藏在训练规模里。想把互联网规模的文本中每一个下一个 Token 都预测得更准,光靠记住“北京”跟在“首都是”后面远远不够。模型必须不断捕捉其中稳定的关系:语言怎样组成句子,代码怎样运行,人物怎样行动,概念怎样关联,论证怎样展开。
模型并不是先被分别教会“写代码”“做翻译”“分析合同”,再把这些按钮装在一起。很多能力,是在同一个训练目标下慢慢长出来的。
不过,这不意味着只要把模型做大,所有能力都会可靠出现。它学到的是训练数据中的统计结构,不是一本经过逐条核验的真理大全;有些能力还需要后训练、工具和专门反馈才能变得可用。
五、原来,“文字接龙”只说了动作,没有说难度
回头看,“文字接龙”并没有错在模型会预测下一个 Token。这件事是真的。
它错在让人以为,模型只看最后几个字,机械接上最常见的词。如果它利用的是整段 Context,以及训练中形成的大量内部结构,那么同样叫“预测下一个”,背后的难度已经完全不同。
模型直接预测的是 Token。
为了预测好 Token,它学到了记忆、知识和可以泛化的规律。
这两句话必须同时成立,少任何一句,都会把大模型讲偏。
调查笔记 No.4
今天,我们修正了第四个认知。
❌ 预测下一个 Token,只是机械的文字接龙。
✅ 模型直接预测的仍然是 Token,但支撑预测的是训练形成的复杂知识、记忆和规律。
预测对象和预测依据,不是同一件事。
新的疑问来了:既然模型已经学到了这么多知识和规律,为什么面对不知道的问题,它有时不说“不知道”,反而会给出一个听起来很像真的答案?
下一篇,我们继续调查。
《AI 为什么会?⑤ AI 为什么不会说"我不知道"?》