2026年9月12日

00 LLM入门:一个预测下一个 token 的函数

LLM

一个反直觉的事实

Claude、ChatGPT 这些能写代码、能推理、能对话的系统,底层只做一件事:根据前面的文字,预测下一个 token。

这个系列的所有内容,都是在回答两个问题:这件事具体是怎么做到的?为什么做好这一件事,就能表现出智能?

全篇用同一个例子:输入“今天天气很”,看模型如何接下去。

机器学习模型是一个函数

机器学习模型本质上是一个带参数的函数,用来模拟输入和输出之间那个我们写不出来的真实关系。

以吴恩达课程里的房价预测为例:房价和面积之间肯定有关系,但没人写得出精确公式。于是先假设一个函数 y = wx + b,再用大量真实数据去调整 w 和 b,直到预测尽可能接近真实房价。

这里有三个核心概念:

  • 函数:从输入到输出的映射,决定了模型“能画出什么形状”。
  • 参数:函数里可调整的数字,比如 w 和 b。
  • 训练:用数据确定参数的过程。训练完成后参数固定,函数就能对没见过的输入做预测。

现实中的关系很少是一条直线。参数越多,函数能拟合的曲线就越复杂;理论上,参数足够多的神经网络几乎可以逼近任何关系(万能近似定理)。但参数多只代表潜力大,数据不足时会过拟合。

LLM 这个函数的输入和输出

LLM 是同样的框架:输入一串 token,输出下一个 token 的概率分布。

  • 输入:一串 token。token 是文字被切成的小块,中文大约一个字或一个常用词是一个 token(细节见 02 篇)。输入包括 system prompt、对话历史和当前问题,合称 context。
  • 输出:词表中每个 token 成为下一个 token 的概率。词表通常有十几万个 token。
  • 参数:数百亿到上万亿个。“千亿参数”指的就是函数里有这么多个数字,模型文件本质上就是存储这些数字的文件。

输入“今天天气很”,函数给出的可能是:

候选 token 概率
好 40%
热 25%
冷 15%
糟 5%
其余所有 token 合计 15%

注意,输出的不是一句话,也不是一个字,而是一组概率。从中选哪个,由 temperature、top-p 等采样参数决定(见 06 篇)。

一个字一个字地生成

函数一次只能预测一个 token。一段完整的回答,是反复调用这个函数得到的:

  1. 输入“今天天气很”,选出“热”
  2. 输入“今天天气很热”,选出“,”
  3. 输入“今天天气很热,”,选出“记得”
  4. 如此循环,直到模型输出结束标记

这叫自回归生成。一个回答有多少 token,函数就被调用多少次,这就是回答逐字出现的原因。

两个重要推论:选出的 token 立即变成不可修改的上下文,模型没有“回退”能力;输出的 token 也占用 context window。停止条件和加速方法见 07 篇。

参数从哪里来

参数是训练出来的,和房价预测的思路完全一样,只是规模大得多。训练前,人先定好模型的结构(层数、dimension 等超参数),参数本身全是随机数。

预训练:拿海量文本,在每个位置让模型预测下一个 token。预测错了就计算损失,用梯度下降微调参数,重复无数次。这一步让模型学会语言、知识和推理模式,但此时它只会“续写”。

后训练:用“指令—优质回答”格式的数据继续训练,再通过人类反馈强化学习(RLHF)等方法,让模型学会以助手身份对话、遵守 system prompt、拒绝不当请求。我们自己做的 fine-tuning,是同一类操作的小规模版本。

细节见第三部分“训练篇”。

为什么预测下一个 token 能产生智能

因为要在各种文本上都预测准,光靠统计词频是不够的。想想这些场景:

  • 预测一道数学题“答案是”后面的数字,需要会算。
  • 预测侦探小说最后凶手的名字,需要理解情节和线索。
  • 预测一段代码的下一行,需要理解程序逻辑。

“预测”这个任务足够难,迫使模型在参数里学会了语法、知识和推理模式。 没有人教它“代词要找前面的名词”,这些规律是为了降低预测误差而自然涌现的。

不过,模型是否真正“理解”,学界仍有争议。对开发者来说,更实用的认识是:它的能力很强,但本质仍是在生成“最合理的续写”。

常见误解

从“预测下一个 token 的函数”这个框架出发,可以直接澄清三个误解:

  • 模型没有记忆。 函数本身不存储对话,每次请求都要把完整历史重新发送。它“记得”前文,只是因为前文就在输入里。
  • 模型不是在查数据库。 知识以参数的形式分散存储,不是一条条检索出来的。函数每一步都必须给出概率并选一个 token,没有“不输出”的选项,所以不确定时也会流畅地编出内容,这就是幻觉。
  • 模型不会执行任何操作。 它只输出文字。调用工具、联网搜索,都是模型生成一段特定格式的文字,再由外部程序执行并把结果拼回输入。这正是 agent 的基本原理。
00 LLM入门:一个预测下一个 token 的函数 · Kevin's Blog