01:LLM 的第一性原理:token 预测

这是「用第一性原理理解大模型」系列的第 1 篇。我们将运用「第一性原理」,理解 LLM 最根本性的机制,并逐步拓展出与之相关的一切:什么是 Token?Token 如何被预测?为什么模型会涌现出「智力」?预训练、后训练、Tool Use、Agent 与工程化、商业化。希望本系列内容能让你有所收获。那么事不宜迟,我们先从最根本的问题开始:什么是大模型的第一性原理?
我们不妨从大模型的使用体验开始聊起,你大概已经很习惯这样使用大模型了:
帮我总结这篇文章。
帮我写一段代码。
帮我想一个产品方案。
帮我把这句话翻译得自然一点。把上述问题发送给模型,模型能回答得流畅自然,仿佛它真的「知道」答案。它像一个知识渊博的朋友,也像一个随叫随到的助手。
但如果把外面的聊天界面拿掉,只看模型最底层的工作,它做的事情其实非常朴素:
根据前面所有已知内容(token),猜下一个 token 最可能是什么。模型的核心是做「token 预测」,这就是大模型的第一性原理,它的核心机制。
这里的 token 可以先粗略理解成「模型眼里不可分割的最小内容块」。它可能是一个字、一个词,也可能是标点、代码符号或别的字符片段。
所以,大模型并不是先在脑子里想好一个完整答案,再把答案打出来。而是在不断地:
根据已经看到的内容,预测下一个小块;
把这个小块接到后面;
再预测下一个小块;
一直重复,直到回答结束。听起来像输入法,对吗?
这个直觉不算错,但也不够。普通输入法只是在补几个常见词,大模型则是在海量文本、代码、论文、网页、对话和数学推导中,被训练成一个极其复杂的预测系统。
当预测任务被放大到足够大的规模,它就不再只是猜词了。为了猜得准,模型会被迫学习语言背后的结构:事实、语法、逻辑、风格、代码模式、问题和答案的关系,以及人类完成任务的常见方式。
这篇文章要讲清楚的,就是这一件事:
大模型不是在「查答案」,而是在用预测下一个 token 的方式,压缩人类知识的分布。
一、模型看到的不是句子,而是 token
我们先从最小的单位说起。
人看到这句话:
我今天吃了一个苹果很自然会把它理解成一个完整意思:某个人今天吃了一个苹果。
但模型不会直接看到「完整意思」。在进入模型之前,这句话会先被切成一串 token。它可能像这样:
我 / 今天 / 吃 / 了 / 一个 / 苹果也可能更细:
我 / 今 / 天 / 吃 / 了 / 一 / 个 / 苹 / 果具体怎么切,取决于模型使用的 tokenizer,也就是分词器。

英文、代码、公式也一样。比如一段代码:
function add(a, b) { return它在模型眼中,也不是完整的「一个函数」,而是一串可以被继续预测的符号片段。
这层认知很重要:从模型的角度看,世界并不是一张连续的照片,也不是一个现成的知识库,而是一条条 token 序列。
你可以把它想象成:人类把知识、经验、制度、情绪、代码和数学都写进了语言里;模型再把这些语言切成 token,然后学习这些 token 如何排列、如何相互关联。最终在学习了海量内容后,涌现出了「智能」。
所以,当我们说模型「理解一句话」时,底层发生的不是它理解或拿到这个句子的表意,而是它把句子切割成 token 序列,并建立了 token 间的关系。
这能解释很多看似奇怪的现象:
为什么模型 API 按 token 计费?
为什么中文和英文的 token 成本可能不同?
为什么长文章会占用更多上下文?
为什么代码补全、数学符号、多语言表达都会影响模型表现?因为 token 是模型处理世界的基本单位。
二、模型训练的任务很简单:猜下一个 token
知道 token 以后,我们再看训练。
大模型训练,究竟是在训练啥呢?大模型最基础的训练任务叫 next token prediction,也就是预测下一个 token。
比如,模型看到:
祝你生日此时,它应该学会把下面这个 token 的概率(优先级)排得很高:
快乐再比如,模型看到:
function add(a, b) { return它应该知道后面很可能是:
a + b「猜下一个 token」任务本身不难。复杂的是,要在各种各样的上下文里都猜得准。
如果模型只是看过几千句话,它大概只能学会一些固定搭配。比如「天气真好」「祝你生日快乐」「北京是中国的首都」。这更像记忆。
但如果模型看过的是海量文本,情况就变了。它会遇到小说、新闻、法律条文、代码仓库、论文、百科、论坛问答、产品文档、数学题、聊天记录。
这时,光靠记住词和词经常挨在一起,已经不够用了。
要猜得更准,模型必须慢慢学会:
句子怎么组织
概念之间有什么关系
事实通常如何表达
代码里的变量如何流动
一个问题通常对应什么样的回答
一步推导后面常接哪一步推导
一个任务如何被拆成几个步骤比如,要补全「北京是中国的首都」,模型需要学到北京和中国的关系。要补全函数,它需要学到参数、返回值和语法结构。要续写一段分析,它需要学到观点之间怎样承接。
于是,表面上它是在学习「下一个 token 是什么」,更深一层,它是在学习:
语言背后的世界结构。这就是为什么「预测下一个 token」这个看起来很小的任务,会长出非常大的能力。
三、模型不是给答案,而是给概率
所以模型真的知道正确答案么?答案是否定的。它的每一步输出,都是一组概率。
我们可以把大模型想成一个巨大的函数:
f(上下文) = 下一个 token 的概率分布比如输入:
牛顿提出了模型可能会认为:
万有引力:70%
三大定律:20%
微积分:5%
其他:5%真实情况当然更复杂。模型不是只在这几个词里选,而是在整个词表里给每个可能的 token 都算一个概率。

然后,系统会根据一定的规则选出一个 token。选完以后,把它接回原来的上下文里,再继续预测下一个。
因此生成一段回答,大概就是这个过程:
你输入问题
→ 模型计算下一个 token 的概率
→ 系统选出一个 token
→ 这个 token 被加入上下文
→ 模型继续预测下一个 token
→ 一步步生成完整回答这也是为什么同一个问题,模型有时会给出不同答案。
如果每次都选概率最高的 token,回答会更稳定,但也可能更死板。如果允许模型从一些概率稍低的 token 里选择,回答会更丰富,也更容易有变化。
你在 API 里看到的 temperature、top-p 这些参数,就是在调节这个过程。
可以先记住一个简单直觉:
temperature 低:更稳、更保守
temperature 高:更多样、更发散所以,大模型推理时,不是一次性「想好整段话」,或者「想好框架,再添内容」。它是一边生成,一边把自己刚生成的内容放回上下文,一步步把答案拼出来的。
这是理解模型幻觉、上下文工程、推理和 Agent 的基础。
四、Transformer 与注意力机制:「现在该看哪里」
想想看,模型每次预测 token 时,都需要参考前方所有 token 并进行计算。上下文里有那么多内容,且这些内容与当前 token 的相关性有强有弱,当前 token 的生成到底该参考哪里?
看这个句子:
小明把书包放在椅子上,因为它太重了。这里的「它」指什么?
人会很快判断:大概率是书包。因为「太重」更像在描述书包,而不是椅子。
但对模型来说,这不是简单地看前一个词就能解决的。它需要在上下文里找到相关关系。
Transformer 之所以重要,很大一部分原因就在这里。它里面的 Attention 注意力机制,很好地解决了这个问题:
生成当前 token 时,应该重点参考上下文里的哪些 token?你可以把 Attention 想成模型的「临时聚焦能力」。
它不是把上下文里的每个词都平均看一遍,而是在每一步都重新分配注意力:这一步更该看主语,还是看前面的对象?更该看代码里的变量,还是看用户刚才提出的限制?更该看这段话的开头,还是看最后一句要求?

这就是为什么 Transformer 能处理长文、代码、多轮对话和复杂提示词。它不是简单地把所有文字混在一起,而是在文字之间建立联系。
当然,Attention 不是万能的。
上下文越长,模型要处理的信息越多,成本也越高。关键信息如果埋得太深,模型仍然可能忽略。提示词写得混乱,模型也可能抓错重点。
后面我们会讲到的上下文工程、RAG 和工具调用。本质上,它们都在解决同一个问题:怎么把正确的信息,在正确的时间,放到模型最容易用上的位置。
五、让「预测」看起来像是「理解」
到这里,最关键的问题来了:
如果模型只是在猜下一个 token,为什么它看起来像是在理解、推理和创作?
答案在于「压缩」,借助「语言」这一介质,模型在训练时,把大量的规律压缩进了模型的参数里。
训练更像是这样一个过程:
模型不断看文本
不断预测下一个 token
不断发现自己猜错了
不断调整内部参数
最后把大量规律压进参数里这些规律包括词语搭配,也包括更深的东西:概念关系、叙事结构、代码模式、数学路径、问答习惯、论证方式。
最终,模型参数更像是一个巨大的规律压缩包。这就是「模型是世界的压缩」的意思。
人类社会中的很多东西都会留下语言痕迹。科学知识会写进论文,商业经验会写进案例,程序逻辑会写进代码,法律制度会写进条文,日常常识会写进对话和故事。
模型学习语言分布时,也就间接学习了语言背后的结构。
这不等于它像人一样体验世界。它没有童年,没有身体,也没有主观感受。它的「理解」更像是一种能力:
在高维空间里建模符号之间的关系,并把这种关系迁移到新的上下文里。这句话听起来有点技术。换成更直白的说法就是:
它不是亲眼见过世界,而是从人类描述世界的方式里,学会了很多「桥段」。
这也解释了大模型为什么既强大,又会出错。
它强大,是因为语言里真的藏着大量人类文明的结构。它会出错,是因为它的目标仍然是生成「看起来合理」的下一个 token,并非真正理解对错。
六、Scaling Law:通过规模,把简单任务,推到复杂能力
如果只看「猜下一个 token」,大模型似乎不应该这么厉害。
但当几个维度一起放大,事情就会变得很不一样:
更多数据
更多参数
更多计算
更长上下文
更好的训练方法
更高质量的反馈模型会开始表现出一些不像「输入法」的能力:
总结
翻译
写代码
模仿风格
多步推理
角色扮演
工具调用
产品方案生成
复杂任务拆解这些能力并不是工程师一条条写进去的。工程师没有在模型里手写「如何总结文章」「如何写 Python 函数」「如何扮演面试官」。
更准确地说,是训练目标和数据规模一起,把模型推到了一个更高的位置:为了继续提高预测能力,它必须形成越来越丰富的内部表示。
你可以把它想成拼图。
一开始,模型只是在猜下一块拼图应该放哪里。拼图很少时,它只能记住一些局部形状。拼图越来越多以后,它开始看出边界、颜色、结构,最后甚至能推测整张图大概是什么。
这就是所谓的涌现能力。
不过,涌现不等于魔法。它不是突然凭空产生一个「真正懂世界的小人」。它更像是:足够复杂的预测系统,在足够多的数据和反馈下,学出了可以泛化的结构。
七、今天的 AI 产品不只是一个模型
还有一点也很重要。
我们平时用到的 ChatGPT、Claude、Gemini、Copilot,通常不是一个裸模型直接面对用户。
一个现代大模型产品,往往是很多层东西叠在一起:

预训练模型
+ 指令微调
+ RLHF / RLAIF
+ 系统提示词
+ 上下文工程
+ RAG 检索
+ 工具调用
+ Agent 框架
+ 权限和安全策略
+ 产品交互设计这些词现在看不懂也没关系,后面都会展开。这里先建立一个直觉:
预训练让模型学会语言和世界结构;
指令微调让模型更像一个会遵循任务指令的助手;
对齐让模型更符合人类偏好;
RAG 把外部资料放进上下文;
工具调用让模型能查信息、跑代码、操作软件;
Agent 框架让模型围绕目标一步步行动。所以,当我们评价一个 AI 产品时,不能只问「模型聪不聪明」。还要问:
它能看到什么信息?
它能调用什么工具?
它有没有验证结果?
它失败后能不能恢复?
它有没有权限边界?
它的交互能不能让用户掌控过程?大模型本身提供的是一种强大的语言和推理能力。真正可用的产品能力,来自模型和工程系统的组合。
八、重新回答:大模型到底是什么
现在我们可以回到开头的问题。
大模型到底是什么?
第一,它是概率预测模型。
基于上下文,预测下一个 token 的概率分布。第二,它通过压缩获得能力。
模型参数不是一张张知识卡片,而是海量语言规律的压缩结果。
第三,它对事物的「理解」,来源于做好预测的压力。
为了预测得足够好,它必须学习语法、事实、逻辑、风格、代码模式和任务结构。
第四,它的推理是逐步生成出来的。
模型不是先拿到一个完美答案再输出,而是在每一步选择更合理的下一个 token,逐渐完成整个回答。
第五,今天的大模型能力来自系统组合。
模型 × 数据 × 计算 × 对齐 × 上下文 × 工具 × 产品设计如果再压缩成一句话:
大模型的第一性原理:用预测下一个 token 的方式,压缩人类知识的分布。
理解了这一点,后面很多问题都会变得更清楚。
为什么 token 会影响成本?因为 token 是模型处理世界的基本单位。
为什么上下文这么重要?因为模型每一步都要根据当前上下文预测。
为什么会幻觉?因为生成合理文本,不等于保证事实正确。
为什么 RAG 有用?因为它把可追溯的新资料放进上下文。
为什么 Agent 是重要方向?因为模型本身只生成 token,而工具和行动循环可以把 token 变成真实任务。
下一篇,我们继续往下拆:token 和 embedding 到底是什么?语言又是怎么变成模型能处理的数字的?