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

这是「用第一性原理理解大模型」系列的第 1 篇。
本篇内容将从 LLM 的日常使用体验开始,逐步抽丝剥茧,回答为什么「给定上下文,预测下一个 token」这一机制,是理解大语言模型的起点。
你是否也曾好奇,为什么大语言模型(LLM)能做到「有问必答」,并且诗词歌赋、琴棋书画、编程代码,样样精通?
本系列文章将以「第一性原理」,对 LLM 抽丝剥茧,深入分析其背后的原理。
之所以用到「第一性原理」,不是为了追溯亚里士多德关于 first principles 的讨论,也不是为了「喊句口号」。在产品和工程的语境里,我们通常把「第一性原理」,当成一种拆解方法:
回到事物最基本的条件,把它拆成不可再轻易拆分的要素,再从这些要素重新推导出实现目标的路径。
顺着这个思路,我们需要弄清两件事:
- 目标是什么? 我们为什么需要大语言模型?
- 关键要素有哪些? 什么是实现大语言模型最基本的、不可拆分的要素?
宏观上,为了进一步解放生产力,人类在不断追求「通用人工智能(AGI)」的实现:让机器能够理解并处理开放式的人类任务。比如回答问题、解释概念、写代码、总结文章、翻译句子、规划步骤、根据上下文继续对话。这些任务表面上各不相同,但底层都有一个共同点:它们都可以被写成一段语言输入,并期待系统生成一段合适的语言输出。
于是,一个可计算的目标就出现了:
给定前面的上下文,生成接下来最合适的内容。这也揭示了大语言模型最关键的两个要素:
1. 上下文
2. 生成后续内容的能力有别于搜索引擎、知识库、数据库、专家系统,大语言模型不是为了存放某个固定答案,而是为了学习人类语言中「上下文如何通向后续内容」的规律。好让它能执行更通用的任务,回答没见过的问题。
由此,本系列所说的「第一性原理」不是一句神秘口号,而是一条可被推导的逻辑链:
目标:处理开放的人类语言任务
路径:把任务统一成“给定上下文,生成后续内容”
训练:让模型在海量语料中学习下一个 token 的概率分布
生成:通过自回归方式逐 token 采样和展开
结果:模型压缩语言分布,并间接学习语言背后的世界结构接下来,我们将深入大语言模型的核心机制,并逐步解构其背后的各种技术原理。
一、模型看到的不是句子,而是 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 的生成到底该参考哪里?
比如这个句子:
小明把书包放在椅子上,因为它太重了。这里的「它」指什么?
人会很快判断:大概率是书包。因为「太重」更像在描述书包,而不是椅子。
但对模型来说,这不是简单地看前一个词就能解决的。它需要在上下文里找到相关关系。
Transformer 之所以重要,很大一部分原因就在这里。它里面的 Attention 注意力机制,很好地解决了这个问题:
生成当前 token 时,应该重点参考上下文里的哪些 token?你可以把 Attention 想成模型的「临时聚焦能力」。
它不是把上下文里的每个词都平均看一遍,而是在每一步都重新分配注意力:这一步更该看主语,还是看前面的对象?更该看代码里的变量,还是看用户刚才提出的限制?更该看这段话的开头,还是看最后一句要求?
这就是为什么 Transformer 能处理长文、代码、多轮对话和复杂提示词。它不是简单地把所有文字混在一起,而是在文字之间建立联系。
当然,Attention 不是万能的。
上下文越长,模型要处理的信息越多,成本也越高。关键信息如果埋得太深,模型仍然可能忽略。提示词写得混乱,模型也可能抓错重点。
后面我们会讲到的上下文工程、RAG 和工具调用。本质上,它们都在解决同一个问题:怎么把正确的信息,在正确的时间,放到模型最容易用上的位置。
五、让「预测」看起来像是「理解」

到这里,最关键的问题来了:
如果模型只是在猜下一个 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 的概率分布。搜索、RAG、数据库和工具调用是外部系统能力,不是裸模型本身。
误解二:大模型只是高级输入法。
这个比喻能帮助理解逐 token 生成,但会低估模型能力。普通输入法主要补全常见短语,大模型为了预测海量复杂文本,被迫学习概念关系、代码结构、推理步骤和任务模式。
误解三:模型先想好完整答案,再逐字打印。
不是。它会把已经生成的 token 放回上下文,再继续预测下一步。也正因为如此,早期的小错误可能在后续生成中被放大。
误解四:只要模型足够大,就一定可靠。
规模能移动能力边界,但不能自动带来事实依据、权限控制、业务验证和产品责任。可靠的 AI 产品来自模型、上下文、工具、评估和交互设计的组合。
十、你应该能回答的三个问题
读完这一篇,可以试着用自己的话回答:
- 为什么「预测下一个 token」不是一个浅层任务?
- 为什么模型生成的是概率路径,而不是从数据库中取出的固定答案?
- 为什么现代 AI 产品不能只评价「模型聪不聪明」?
下一篇,我们继续往下拆:token 和 embedding 到底是什么?语言又是怎么变成模型能处理的数字的?