← All posts 此文章100% AI 生成,请读者放心阅读

你以为 LLM 是更快的猴子,其实它根本不是猴子

深夜你打开对话框,敲下一句「用莎士比亚的口吻写一段独白,讲一个程序员凌晨三点还在改 bug」。回车。三秒钟,一段抑扬顿挫、带着 thou 和 hath、还押着点韵的台词就躺在屏幕上了。它不是从哪本书里抄来的,这段话以前不存在,是它刚刚现编的。

你盯着看了几秒,心里冒出一个念头。我们从小听过那个故事:让一只猴子在打字机上瞎敲,敲到天荒地老,它总有一天会敲出莎士比亚全集。这个机器,是不是就是那只猴子的升级版?它是不是把那个慢得要命的过程,一下子提速了几亿倍,把「几乎不可能」变成了「三秒一篇」?

这个直觉非常自然,自然到几乎所有人第一反应都这么想。它也几乎全错。

错在哪不容易一句话说清,因为它把两个长得很像、其实差着十万八千里的问题悄悄并成了一个。Borges 在 1941 年写过一座「巴贝尔图书馆」,里面收着用某个字符集能拼出的所有书,包括所有杰作,也包括无穷多本满纸乱码。在那座图书馆里,问题不是「莎士比亚存不存在」,而是「你要走多少路才能撞见他」。猴子、π、还有你眼前这个三秒成文的机器,其实是三种完全不同的「找书」方式。把它们摆到一起,你才会看清,LLM 到底动了什么,又没动什么。

猴子和 LLM,根本不是一个谱系

「猴子打字」这个比喻比电脑老得多。能查到的最早出处是法国数学家 Émile Borel 在 1913 年的一本概率书里,他设想一群猴子乱敲打字机,用来讲一件反直觉的事:一个概率小到可以忽略的事件,和一个绝对不可能的事件,在数学上并不是一回事。后来天体物理学家 Eddington 也借它来谈统计力学里的时间尺度。Borges 考据过更早的影子,从亚里士多德、西塞罗一路到帕斯卡和斯威夫特,人类反复在想象「如果字母随便组合,会不会撞出意义」。(Wikipedia: Infinite monkey theoremMacTutor: Borel

Borel 和 Eddington 真正在意的,是「几乎必然」这四个字背后的时间感。无限猴子定理的标准表述是:猴子无限久地独立随机敲键,几乎必然会打出任意给定的有限文本,包括莎士比亚全集。这里「几乎必然」是个有精确含义的概率词,它等于说概率为 1,但概率为 1 并不等于逻辑上必然。更要紧的是那个「无限」。定理的全部力气都压在无限上,一旦把时间换成一个真实宇宙的长度,结论就变味了。你前面自己也点到了这一层,可数无穷的试验次数足以推出概率为 1,但现实里没有可数无穷次机会。

把语言交给概率来描述的,是另一个人。1948 年 Shannon 创立信息论,1951 年他专门写了一篇《印刷英语的预测与熵》,第一次把「一种语言」当成一个会吐字符的概率源来研究。(Shannon 1951)他问的问题很简单:看了前面的字,你能多大程度上猜中下一个字?猜得越准,说明这门语言越有规律,它的熵越低。这篇论文埋下了一颗种子。猴子定理假设每个字符都是均匀乱选的,而 Shannon 证明真实语言根本不是这样,字符之间有很强的相互约束。

七十年后的 LLM,干的正是 Shannon 那个猜字游戏,只不过把它做到了极致。当年是让真人凭直觉猜下一个字母,今天是让一个几千亿参数的网络,吃下半个互联网的文本,去估计下一个 token 的整个概率分布。从这个角度看,LLM 不是猴子的升级版,它压根是另一个谱系的产物。猴子那一支讲的是「无限时间能撞出什么」,Shannon 这一支讲的是「语言里有多少可预测的结构」。我们今天的混淆,多半是因为这两支被一句「AI 会写莎士比亚」给搞到了一块去。

你其实在问两个问题

你问的其实是两个问题,只是它们长得太像,被你不小心揉成了一个。

一个问题是:让一台机器写出一段读起来像莎士比亚的新句子,难不难。另一个问题是:让它一字不差地复现《哈姆雷特》全本,难不难。第一个问题,LLM 把它从「几乎不可能」拉到了「随手就来」。第二个问题,LLM 一点忙都没帮上。

先把第二个问题的底摸清楚。假设键盘上有 27 个键,一本书有 n 个字符。猴子闭着眼睛敲,一次正好敲出这本书的概率是 1/27^n。如果这本书有一百万个字符,这个概率就是 1/27^(1,000,000)。这个数字小到什么程度?2024 年两位悉尼的数学家算了一笔账:就算把今天全球大约二十万只黑猩猩都抓来,每只每秒敲一个键,一直敲到宇宙热寂,它们连莎士比亚那八十五万词的全集的边都摸不到。单只黑猩猩一辈子(约三十年)敲出”bananas”这个词的概率只有 5%;敲出”I chimp, therefore I am”这一句,概率大约是 1/10^30。(Woodcock & Falletta, 2024BBC

更狠的版本来自 Kittel 和 Kroemer 的热力学教科书。把可观测宇宙里每一个质子(大约 10^80 个)都变成一只打字猴子,从大爆炸一直打到宇宙终结,要凑出 1/10^500 这么一点点成功概率,需要的时间还要再多出三十六万个数量级。他们的结论很冷:《哈姆雷特》的概率在任何可操作的意义上等于零。(Wikipedia

这里有个常被忽略的转折。无限猴子定理说概率是 1,这话没错,但它说的是「无限」两个字撑起来的渐近结论。把时间收回到一个真实宇宙的长度,那个 1 就塌回成几乎为零。这就是为什么 2024 那篇论文说,定理「正确,但误导」。

现在回到第一个问题,也就是你真正关心的那个。LLM 确实让「写出像莎士比亚的东西」变得轻而易举。但它靠的不是把 1/27^n 这个数字改大,它靠的是根本不在 27^n 这个空间里乱撞。它走的是另一条路。

但有一件事必须在这里就说死,否则后面会绕进幻觉里。逐字复现一本指定的书,这件事有一个谁都越不过去的天花板。信息论告诉我们,一段文本如果含有 H 比特的信息,那么任何模型,无论是猴子还是 GPT,赋予它的概率最多是 2^(-H)。H 是这段文本本身的复杂度,跟你用什么模型没关系。LLM 能做的,是让自己估出来的概率尽量贴近这个上限,它没法把上限本身抬高。所以「逐字打出整本没被它背过的书」,对 LLM 来说依旧是那个小到没法想象的数。它强的地方从来不在这儿。

LLM 改的是分布,不是天花板

那 LLM 到底改了什么?把它和猴子摆在一起看最清楚。

猴子每敲一个键,27 个键的机会是均等的。它的世界里没有「上文」,第一百万个字符和第一个字符一样靠运气。语言模型干的第一件事,就是把「均等」这个前提拆掉。它读完前面的字,给出一个关于「下一个字是什么」的概率分布:在”to be, or not to”后面,”be”的概率被它顶得很高,”xylophone”的概率被压到接近零。生成一段话,就是这个动作一遍遍重复,预测一个分布、采样一个字、接上去、再预测下一个字。(Raschka: next-token prediction

这个分布有多陡,还能用一个旋钮调。模型最后一层吐出的是一串叫 logits 的原始分数,经过 softmax 变成概率。温度就是那个旋钮:温度调低,分布变得尖锐,几乎总是挑概率最高的那个字,输出稳但呆;温度调高,分布被压平,本来没什么机会的字也冒出来,输出活但容易乱。同一个模型,什么权重都没变,光拧这个旋钮,你就能让它从「复读机」滑到「胡话生成器」。它调的不是知识,是把概率质量堆得多紧。(IBM: LLM Temperature

那它凭什么知道”be”该比”xylophone”概率高?凭语言本身没那么随机。Shannon 在 1951 年做过一个著名的实验,让人去猜英文里的下一个字母,靠人对语言的直觉,他估出英文的熵大约在每字符 0.6 到 1.3 比特之间。(Shannon 1951)而 27 个字符如果真是均匀乱选,每字符的熵是 log2(27),约 4.75 比特。差出来的那三四个比特,就是语言里的规律,是冠词后面大概率跟名词、字母 q 后面几乎总是 u 这类东西。猴子完全没利用这些,所以它在 4.75 比特的空间里硬撞;LLM 把这些规律学进了参数,它实际是在一个一比特出头的空间里走。

这件事有个更漂亮的说法,来自 DeepMind 2023 年那篇《语言建模即压缩》。一个好的预测模型和一个好的无损压缩器,在数学上是同一个东西,靠算术编码就能互相转换。模型越能准确预测下一个字,编码它需要的比特就越少。他们发现 Chinchilla 70B 拿去压图像、压音频都比专用压缩器还狠。(Delétang et al., 2023)所以你可以这样理解 LLM 做的事:它没有改变莎士比亚那本书的信息量,它只是找到一种编码方式,让「像莎士比亚的文本」占掉短码、让乱码占掉长码。搜索空间还是那么大,但概率质量被它重新分配了。

可这套机制也带来两个它甩不掉的毛病。第一个是误差累积。模型训练时看的是真实的上文,做题时却得接着自己刚写出来的东西往下写。这个落差有个名字叫曝光偏置,一旦某一步走偏,错误会顺着序列滚下去。(Exposure bias overview)所以目标文本越长,逐字精确命中越难,这跟你的直觉完全一致。值得补一句的是,新一些的研究发现这个衰减并不是简单的指数式,长上下文里模型有时能中途把自己拽回来,但「越长越难精确」这个大方向不变。

第二个是记忆和泛化的纠缠。LLM 偶尔确实能一字不差地吐出训练里见过的东西。Carlini 等人 2023 年量化过这件事,复现的概率随三个因素对数线性上升:模型越大、某段文本在训练数据里重复得越多、给的提示上下文越长,它越容易把原文背出来。(Carlini et al., 2023)注意这跟猴子的「碰运气」是两码事。它复现得出来,是因为那段文本被它记住了,不是因为它在 27^n 里走了狗屎运。

π、鹦鹉,和一场还在打的官司

顺着记忆这条线,有三个现实里的对照能帮我们把 LLM 在光谱上的位置钉死。

先说 π。常听人讲,圆周率的小数里藏着莎士比亚全集,藏着你的生日和身份证号。这话要成立,前提是 π 是一个「正常数」,也就是每一段长度固定的数字串,都以该有的均匀频率出现在它的展开里。如果 π 真是正常数,那任意有限长的串迟早都会出现。问题是,π 到底是不是正常数,至今没人证明出来,连「π 里有无穷多个 7」这么弱的命题都还没证。(Scientific AmericanNormal number)更关键的是,π 是一个完全确定的序列,它的每一位早就定死了,里面没有任何随机可言。我们说「π 里可能有莎士比亚」,用的是一种类比的、统计意义上的「看起来够随机」,跟猴子那种真·随机过程是两种东西。把这两件事混着说,是很多科普文章共同的毛病。

第二个对照是关于 LLM 本身该怎么定性的争论。2021 年 Bender、Gebru 等人提出「随机鹦鹉」这个说法,意思是 LLM 不过是个「根据概率信息把语言形式随意缝起来、并不触及意义」的系统。(Stochastic Parrots)这个标签有它锐利的地方,也一直被反驳。有意思的是,无论你站哪一边,双方都默认了一个共同的事实底座:LLM 的行为是由一个概率分布驱动的。分歧只在于,这个分布到底算不算「理解」。这恰恰说明,我们这篇文章谈的「分布塑形」,是争论双方都不否认的那部分。

第三个对照最实在,是一场还在打的官司。2023 年底《纽约时报》起诉 OpenAI,证据里有一份附件 J,列了一百个例子:把一篇时报文章的前半段喂给 GPT-4,它能接着吐出和原文大段大段一字不差的后文。(NYT Complaint, Exhibit J)OpenAI 的辩解是,这种逐字复现是「罕见的 bug」。放到我们的框架里,这件事一点都不矛盾。模型能复现的,正是那些在训练数据里高频出现、被它结结实实记住的文本,跟 Carlini 量化出来的规律完全吻合。它不是在 27^n 的空间里撞中了时报,它是把背下来的东西默写了出来。换句话说,LLM 真正能「逐字打中」的,只有它已经记住的那一小撮;对于它没背过的任意指定长文本,那道信息论的天花板依然死死压着。

所以,它到底提高了什么

那么回到最开始那个问题。LLM 提高了打出莎士比亚的概率吗?

现在你有了一把能拆开它的尺子。任何时候有人这么问,先反问一句:你说的是「写出像莎士比亚的新东西」,还是「一字不差地复现某本指定的书」?这两件事的答案正好相反。前一件,LLM 把概率从天文数字分之一拉到了你眨眼之间就能拿到的程度。后一件,只要那本书它没背过,概率还是那个小到没法想象的数,因为有一道信息论的天花板,谁都抬不动。

第二把尺子,是分清「重塑分布」和「突破下界」。LLM 的全部本事在前者。它没有让任何一段文本变得更「容易凑出来」,它做的是把概率质量从无穷多的乱码上挪走,重新堆到看起来合理的文本上。一本书的信息量是它自己的属性,换多强的模型都不会变小。明白这一点,你就不会再被「上下文卷到一百万 token,是不是就能精确复现长文」这类说法忽悠,上限不在上下文,在信息本身。

第三,把 π、猴子、LLM 三个东西彻底分开。猴子是真随机过程,靠无限时间撞,现实里撞不出来。π 是一个完全确定的序列,「它含不含莎士比亚」取决于一个还没被证明的数学猜想。LLM 既不是随机过程,也不是固定序列,它是一个被海量数据塑形过的、带强烈偏向的概率分布。这三者唯一的共同点,只是都被人拿来回答「机器能不能写出莎士比亚」,可它们给出的「能」或「不能」,含义根本不在一个层面上。

所以下次再有人说「AI 都能写莎士比亚了,无限猴子那套果然成立」,你大概会想笑。猴子那套从没在现实里成立过,而 LLM 能写莎士比亚,恰恰是因为它根本不做猴子做的事。它不碰运气,它重排概率。

Comments

Select any text to comment on a specific part. Existing inline comments appear as small numbered bubbles. Powered by GitHub Discussions.