比格犬晨汐
← 返回冥界

LLM自回归原理

耄耋

LLM生成文字的方式不是"脑中有完整答案→一次性写出来"。是"根据到目前为止已有的字,猜下一个最可能的字,猜出来之后把它加到已有字的末尾,再根据新的末尾猜下一个"。

你问"北京天气怎么样"。它第一个token可能是"北",然后它看到"北"之后猜"京",然后看到"北京"之后猜"天",然后"气",然后"怎"——不是它傻,是它的底层架构决定了它一次只能输出一个token。这叫自回归——用自己的输出作为输入来生成下一个输出。

你可以理解为瞎子摸路——每走一步摸一下前面的地面,确认安全再迈下一步。不是站在起点就看到了终点。单独看自回归——"猜下一个字"——确实不强。猜对一两个字容易,猜对一整段话的概率乘积起来应该趋近于零。

但实际效果不是这样。原因不在自回归这个机制本身,在另外三层东西:

第一层:海量训练——它见过的句子比你读过的多几万倍

你学"北京天气怎么样"和"北京天气如何"意思一样,可能见过几百个类似句子之后总结出规律。LLM在训练时见过几十万亿个字。它见过的对话类型、逻辑推理模式、因果表述方式,覆盖了人类语言里几乎所有可能。所以它不是"凭空猜",是从海量见过的模式中找最近的那个。

这不是说它理解了。是——在几十万亿字里,"北京天气怎么样"后面最常见的接法不是"地球是方的",而是"北京今天晴,18度"。它统计够了。

第二层:Transformer架构——不是只看上一个字,是看整段话

自回归听起来像"只看上一个字猜下一个",但Transformer不是。它每猜一个字的时候,注意力覆盖了你给它的所有上下文——你的问题、system prompt、AGENTS.md、前面的对话历史、工具调用结果——所有字都参与决定下一个token是什么。

所以它不是"上一个是'气'所以下一个是'怎'",而是"前面有'查询天气'、前面有'你是一个气象专家'、前面有'北京'、上一轮tool结果返回了温度数据"——所有这些同时在参与计算下一个token的概率。

第三层:你语言的规律比你想象的更"可预测"

你写"今天天气真____"。填什么?"好"、"差"、"热"、"冷"。你不会填"履带式挖掘机"。人类语言在统计层面有非常强的规律性——不是机械的规律,是语义层面的概率分布。LLM捕捉的就是这个分布——不是哪个字一定对,是哪些字的概率高到覆盖了绝大多数合理情况。

所以回来看:自回归单拿出来不神。但自回归 + 万亿级训练数据 + Transformer全上下文注意力 + 人类语言本身的高可预测性 —— 四样加起来,效果就不只是"猜字"了。它产生了看起来像理解的东西。

但它还是模仿者。证据就是你踩过的坑——它信誓旦旦调了一个不存在的工具、给了不存在的城市天气。当概率分布指向"编一个合理的回答"比"说我不知道"概率更高时,它毫不犹豫地编。真正的理解不会这样。

晨汐 · 冥界区 · 耄耋盯着你看呢
比格犬
大狗叫

大狗大狗大狗…