大语言模型 LLM
从「预测下一个词」到「像助手一样对话」
Large Language Model · 大模型 · LLM
- 必要性——旧的「一个任务一个模型」范式差在哪,为什么「一个通用语言模型」是质变。
- 机制——它每一步具体在算什么:从一串 token 到「下一个 token 的概率分布」。
- 训练——「预测下一个词」这个目标,怎样让它不用人工标注就能吃下整个互联网。
- 根本困惑——一个只会猜下一个词的模型,凭什么会推理、翻译、写代码。
- 从基座到助手——为什么预训练完的模型还不能当 ChatGPT 用,还要哪两步。
- 一句话划清边界——为什么语言似然不等于事实真值,为什么会有幻觉与知识截止,以及对齐能改变什么、不能保证什么。
- 把语言任务都改写成「续写」,就能用一个通用模型顶替一堆专用模型。(§1)
- 「续写」= 每步在词表上输出一张概率表,取一个词再拼回、滚动生成。(§2)
- 文字先被切成 token、再变成向量,模型才有的算。(§3)
- Transformer 用带因果掩码的注意力,把前文加工成「足以预测下一个词」的表示。(§4)
- 训练目标是「预测真实的下一个词」,答案来自文本本身——不用标注,所以能吃海量数据、能 scale。(§5)
- 把「猜词」逼到极致,理解、推理、翻译作为副产品被逼出来;规模越大越强。(§6)
- 生成时用采样与温度在「稳」和「有创意」之间调,上下文窗口决定它能看多长。(§7)
- 预训练得到博学的基座;再经指令微调和偏好对齐,才成为听话、安全的助手。(§8)
- 语言似然不等于事实真值,带来幻觉与事实核验需求;对齐调整行为偏好,却不能替代事实核验。(§9)
1为什么需要大语言模型直觉
在大语言模型出现之前,自然语言处理通常采用“一个任务对应一个模型”的做法:情感分类、机器翻译、问答、摘要、命名实体识别各自训练,各自依赖大量人工标注的专用数据。这样的系统可以在单项任务上工作,但每增加或更换一个任务,往往就要重新准备数据、训练模型,已有模型的能力也很难直接迁移。结果是开发成本高、系统彼此割裂,每个模型通常只处理自己负责的一小块问题。
大语言模型所依赖的关键转变,是把看似不同的语言任务统一写成“根据已有文本继续生成文本”。例如,翻译可以表示为“英文:…… 中文:___”,问答可以表示为“问:…… 答:___”,摘要可以表示为“原文:…… 摘要:___”,情感分类也可以表示为“这条评价的情绪是:___”。这些形式的输入虽然表达了不同任务,但要求模型给出的输出都一样:补全下一个合适的文本片段。
统一任务形式会改变模型建设的方式。输入是包含任务说明和待处理内容的文本,输出是符合该任务要求的续写;中间不再需要为每种任务设计一套完全独立的模型。只要同一个模型能够根据上下文判断“这里应该续写什么”,同一套参数就有机会完成翻译、问答、摘要或分类。问题因此从“怎样为每项任务分别建模”,转化为“怎样训练一个足够擅长文本续写的通用模型”。大语言模型正是对这个问题的回答。
这里的“续写”并不等于机械地补一句话。模型必须从输入文字中识别任务类型、理解已有内容,并生成与上下文和任务要求相匹配的输出。任务被编码在文字中,所以改变提示文字就可以改变模型要完成的工作,而不必立刻重新训练一个专用模型。这也是通用语言模型相对于旧式专用模型的核心价值:用统一的输入输出接口和同一套参数覆盖多种语言任务,减少每个任务都从头构建系统的需要。
这种统一也有明确边界。大语言模型适合开放、以语言表达和生成作为核心的任务,但“能够生成看起来合适的文本”不等于“能够保证精确计算、事实可靠或结果严格可复现”。当任务要求精确数值、可核验事实或稳定一致的输出时,单纯依赖模型续写并不合适。这些限制来自其以文本续写为中心的机制,不能简单理解为只要模型再大一些就会自然消失。
2它每一步到底在算什么数学
给定前面已经出现的一串 token,大语言模型在一次计算中并不直接输出一个确定的词,而是为词表中的每个候选 token 计算“它成为下一个 token”的条件概率。可以写成:
P(下一个 token = w │ 前文) = softmax(z)w
其中,w 是词表中的某个候选 token,“前文”是当前上下文,z 是模型最后一层为词表中所有候选项算出的实数向量,也叫 logits。logit 本身还不是概率,可以为任意实数;softmax 将整组 logits 转换为非负且总和为 1 的概率分布,softmax(z)w 就是候选 w 对应的那一项。模型每一步真正给出的,因此是覆盖整个词表的一张概率表,而不是单独一个词。
要从这张概率表生成文本,还需要一种选择规则从中挑出一个 token。选出的 token 会被追加到前文末尾,新的完整前缀再次送入模型,模型再计算下一张概率表。例如,在“法国的首都是”之后选出“巴黎”,输入便变成“法国的首都是巴黎”;下一步模型可能再选“。”或“,”。这个“生成一个、接回输入、再生成一个”的滚动过程称为自回归生成。长篇文本不是一次性写出的完整草稿,而是这个循环重复许多次的结果,直到模型生成结束符。
这也意味着,模型在某一步只根据当时已有的前缀决定下一步,并没有先准备好一份不可更改的全局答案。每次新生成的 token 都会改变后续步骤的条件,早期选择会把生成带向不同路径。模型因此可能连续生成局部上很顺畅的文字,却在某一步进入错误路径,随后又按照错误前缀把话继续说圆。
从数学上看,整段文本的概率可以分解为逐步条件概率的乘积:
P(x₁…xₙ) = ∏ₜ₌₁ⁿ P(xₜ │ x₁…xₜ₋₁)
xₜ 表示第 t 个 token,x₁…xₜ₋₁ 是它之前的全部前缀,n 是序列长度。这个分解说明,“语言模型”建模的是完整文本序列的概率,而序列概率由每一步“在当前前缀下生成下一个 token”的概率共同决定。
例如,给定某段前文,模型第一步选择“巴黎”的条件概率为 0.62;把“巴黎”接入前文后,第二步选择句号的条件概率为 0.80。那么生成“巴黎。”这条两步路径的条件概率为:
P(巴黎。│前文) = 0.62 × 0.80 = 0.496
若另一条路径第一步选择“里昂”的概率为 0.09,随后选择句号的概率为 0.90,那么“里昂。”的路径概率是 0.09 × 0.90 = 0.081。尽管第二条路径的第二步概率更高,整条路径仍然远低于第一条,因为序列概率取决于沿途所有条件概率的乘积,后一步的高概率无法完全补回前一步的巨大差距。
真实文本存在指数数量的候选路径,模型给出的概率分布与最终采用哪条路径并不是同一个概念。贪心解码每一步只保留当前概率最高的 token;束搜索同时保留有限条累计概率较高的候选路径;随机采样则按照每一步的概率分布进行选择和探索。它们使用同一个模型分布,却可能产生不同结果,因此应当把“模型计算出的概率”与“解码规则选出的文本”区分开来。
softmax 归一化得到。| 第一步 | 第二步条件概率 | 整条路径概率 |
|---|---|---|
| 巴黎:0.62 | 句号:0.80 | 0.496 |
| 里昂:0.09 | 句号:0.90 | 0.081 |
3从文字到向量:token 与嵌入数学直觉
文字不能直接进入神经网络,因为神经网络执行的是对数字的加权求和与非线性变换。要把“法国的首都是”这样的字符串变成可计算的输入,需要先后经过分词和嵌入:分词把文本转换为离散编号,嵌入再把编号转换为连续向量。
分词(tokenization)首先按照词表把文本切成一系列 token。token 通常是子词片段:常见词可能整体对应一个 token,生僻词则可能被拆成多个片段。每个 token 在词表中都有一个整数编号,因此“法国的首都是”最终可以表示成类似 [121, 340, 88, 502] 的 token id 序列。这里的整数只起索引作用;编号 121 与编号 340 的数值差,并不表示两个 token 在含义上有多远,也不能直接作为语义关系使用。
嵌入(embedding)负责把每个 token id 映射成一个几百到几千维的向量。可以把它理解为用 id 在一张大表中查找对应的一行:输入是离散编号,输出是由许多连续数值组成的向量。嵌入空间可以承载“远近”关系,使语义相近的 token 落在较接近的位置。这样,后续网络对向量进行数学运算时,才有可能利用其中编码的语义关系,而不是把词表编号误当成有大小意义的数值。
只有 token 的含义还不够,序列中的位置也会影响理解。同一个 token 出现在句首和句尾,对上下文的作用可能不同。因此,每个 token 的嵌入还要叠加表示“它排在第几位”的位置编码。经过这一步,输入不再是一串文字或整数,而是一叠同时携带 token 信息与顺序信息的向量;这才是模型后续计算实际接收的表示。
这条转换链可以写成:
文本 → token 序列 → token id 序列 → token 嵌入 + 位置编码 → 向量序列
每一步都改变了表示形式。分词决定原始文本的哪些片段作为基本处理单位,嵌入把这些单位放入连续空间,位置编码则补上排列顺序。模型处理的是最后得到的向量序列,并不直接操作人看到的字符。
这一机制带来两个务实后果。第一,计费与上下文长度通常按 token 计算,而不是按字数计算;同样长度的可见文本,因为切分方式不同,可能占用不同数量的 token。第二,字符信息可能在分词时被打包进较大的 token,模型并不总能直接逐字母观察文本。例如询问“strawberry 里有几个 r”时,模型可能出错,因为它接收到的基本单位未必是逐个字母。嵌入擅长为后续语义计算提供连续表示,但它不能保证字符级细节始终以可直接计数的形式保留下来。
4中间那个 Transformer 做了什么直觉数学
Transformer 接收的是一串带有位置信息的 token 向量。它的任务不是直接把这些向量翻译回文字,而是反复加工每个位置的表示,让该位置逐步吸收预测所需的上下文信息。经过多层处理后,最后得到的表示包含了足以计算下一个 token 概率的信息。
其中的关键机制是注意力。处理某个位置时,模型会计算它与前面各位置之间的相关性权重,再按照这些权重汇总前文信息。权重越高,相应位置的信息对当前表示的影响越大。例如在“法国的首都是___”中进行预测时,当前位置可以把较多注意力放到“法国”上,从而把国家与待补全内容联系起来,而不必只依赖紧挨着空缺的 token。注意力解决的是“当前预测应该从前文哪些位置取信息,以及各取多少”的问题。
一层注意力得到的上下文还会被继续加工;很多层叠加后,信息可以逐层组合。于是,每个位置起初只是一个局部 token 向量,经过反复更新后,会变成融合了相关前文的、更抽象的上下文表示。Transformer 在大语言模型中的核心角色,可以概括为:输入前文各位置的向量,输出经过上下文化的向量,并以此支撑下一个 token 的预测。
用于自回归语言模型时,注意力还必须满足一个关键约束:第 t 个位置不能访问第 t 个位置之后的信息。训练时为了提高计算效率,整段文本可以一次送入模型;但如果某个位置能够看到自己要预测的 token 或更后面的内容,模型就相当于拿着答案预测答案,训练目标会失去意义。
因果掩码(causal mask)在注意力计算中实施这一限制。它允许每个位置只关注自己左侧已经出现的位置,禁止使用右侧的未来信息。把所有位置之间“能否查看”的关系画成矩阵,会得到下三角形:序列开头可用的信息最少,越靠后的位置能够看到的前文越长。这正是“只根据前文预测下一个 token”在 Transformer 计算中的实现。
因果掩码同时带来重要的训练效率。一段长度为 n 的文本只需一次并行输入,就可以在各个位置上同时构造训练信号:每个位置都利用自己获准看到的前文,预测紧随其后的 token。虽然这些位置在一次计算中共同处理,它们仍严格受掩码约束,不能互相泄露未来答案。于是,一段文本可以同时提供 n 个逐位置预测样本,使海量文本得到高效利用。
这套机制的边界也来自同一约束。一个位置只能汇总已经出现的内容,不能在预测时使用尚未生成的未来 token;模型的表示会随前缀增长而改变。因此,Transformer 所形成的是“以当前前文为条件”的上下文表示,而不是预先知道整段后续文本的全局草稿。
5训练目标:预训练就是一个巨大的交叉熵数学
预训练要解决的问题,是怎样从海量普通文本中为大量模型参数提供学习信号。下一个 token 预测之所以适合这个任务,是因为监督答案已经包含在文本本身:给定前缀 x₁…xₜ₋₁,位置 t 上真实出现的 token xₜ 就是正确目标。训练数据不需要人工逐条标注类别或答案,文本可以自动拆成大量“前缀—真实后继”样本。这种由数据自身产生标签的方式称为自监督学习。
对每个前缀,模型输出词表上所有候选 token 的概率分布。训练需要衡量这个分布是否把足够高的概率分给真实后继,使用的损失是交叉熵。在一段文本上,总损失可写为:
L = −∑ₜ log P(xₜ │ x₁…xₜ₋₁)
L 是各预测位置损失的总和;t 表示当前要预测的位置;xₜ 是文本在该位置真实出现的 token;x₁…xₜ₋₁ 是它之前的前缀;P(xₜ │ x₁…xₜ₋₁) 是模型在看到这个前缀后分配给真实 token 的条件概率。∑ₜ 表示把整段文本各位置的损失加起来。
负对数决定了惩罚方式。若模型给真实 token 很高的概率,log P 接近 0,对应的 −log P 较小;若模型给真实 token 的概率很低,−log P 就很大,模型会受到更重惩罚。因此,损失可以理解为模型面对真实后续时的“惊讶程度”:越不相信实际出现的 token,损失越大。
计算出损失后,梯度下降根据损失相对于参数的变化方向调整模型参数,使后续面对类似前缀时,真实 token 获得更高概率。这个过程在大量文本和大量位置上反复进行。输入是文本前缀以及文本中真实的后继 token,模型直接输出的是词表概率分布,训练系统再把真实后继对应的概率汇总成损失。预训练本质上就是在极大规模的数据上持续压低这组交叉熵损失。
损失下降只表示模型对训练分布中这类文本的真实后续变得更少意外,不能解释为文本内容已经得到事实核验。模型学习的是语料中出现的统计规律,能力与边界都会受到训练语料的时间、语言、来源、噪声和偏见影响。增加数据与参数可以扩大训练规模,但不会自动消除这些限制。
自监督的重要性在于拆除了人工标注的吞吐瓶颈。旧式任务依赖人来制作标签,数据越多,成本和时间通常越高;下一个 token 预测则能直接从普通文本中取得答案,因此可以持续扩大数据、参数和算力。这种随规模增加而改善模型的经验规律被称为缩放定律,而它能够成立的基础之一,正是预训练目标不要求人为给每条文本标注正确后续。
6为什么「猜下一个词」能学会推理直觉
“预测下一个 token”看起来像输入法联想,但当这个目标被应用到大量、多样的文本并被要求做到很高精度时,任务本身会迫使模型学习许多可复用的结构。下一个 token 往往取决于前文的语法、语义、事实关系、说话意图或推导过程;如果模型没有形成足以表示这些关系的内部模式,就很难持续降低预测损失。
例如,要续写“因为 A 且 B,所以___”,正确后续取决于 A、B 与结论之间的关系,模型需要学到能够支持该预测的推理模式或中间表示。要续写代码,下一 token 必须符合语法和语义,否则程序会出错;要续写对话,需要根据对方的意图和语气选择合适表达;要补全“1234 × 5678 = ___”,则需要掌握足以产生结果的乘法规律。表面上这些都是下一 token 预测,实际需要利用的信息和规律却各不相同。
训练的直接输入,是大量且多样的文本以及具有足够容量的模型;直接优化结果,是更低的预测损失和一组内部表示。翻译、代码生成或推理表现不是由单独的任务类别标签逐项教出来的,而是模型为完成广泛预测任务所形成的表示,在新提示下迁移出来的能力。预测目标覆盖的上下文越多样,能够在不同场景复用的语法、事实、代码和部分推理表示就越有价值。
可以从“压缩压力”理解这种迁移。模型必须用有限参数应对许多不同上下文,逐条孤立记住所有情况并不是唯一作用方式;学习可复用的语法、语义和推理模式,能帮助它在更多前缀上预测后续。这解释了模型为什么可能泛化到未原样见过的输入。但参数也会记忆训练片段,因此最终行为通常混合了记忆、模板模仿和组合泛化,不能把规律性表现直接等同于完整理解。
判断模型是否真的获得了可迁移的推理能力,不能只看它是否能流畅写出正确步骤。一个答案可能来自复现训练中常见模板,也可能来自能推广到新问题的内部表示。要区分两者,需要使用新组合、反事实和分布外题目:如果题目形式或要素组合发生变化,能力仍能保持,才更能支持“形成了可泛化表示”的解释。即使某项测评得分提高,也只能说明模型在该测试上表现更好,不能据此断言它拥有人的理解,或每次都在执行可靠算法。
这些能力的发展还依赖规模。参数、数据与算力按比例增大时,模型的预测能力会增强,许多具体表现也随之出现。常见说法是某些能力在规模跨过阈值后“突然涌现”,但这一现象仍有争议:当评价指标是非黑即白时,平滑改善可能看起来像突然跳变;换用连续指标后,曲线也可能呈现平滑上升。因此,更稳妥的结论是,扩大规模能加强预测能力并促成多种可迁移表现,但能力何时出现、是否真正突然,以及它由记忆还是组合泛化支撑,都需要具体测评,而不能只从流畅输出判断。
7生成时的旋钮:采样、温度、上下文窗口数学工程
模型在每一步给出的是词表上的 logits 或由它们归一化得到的概率分布,最终文本还取决于解码规则怎样从分布中选择 token。解码的输入包括模型 logits、当前可见前文以及采样参数,输出是本步选中的一个 token;把这个 token 接回前文并循环执行,才形成完整文本。改变解码方式只会改变如何使用同一个模型的概率分布,不会重新训练参数,也不会给模型补充新知识。
最简单的规则是贪心解码:每一步都选择当前概率最高的 token。它的结果较确定,但逐步只看当前最优选择,容易产生呆板或重复的文本。随机采样则按照概率分布进行选择,高概率 token 更容易被选中,低概率 token 仍保留一定机会。随机性由此带来不同生成路径和更高多样性,也意味着同样的前文可能得到不同结果。
温度 T 在采样前改变概率分布的形状。计算方式是先把每个 logit 除以 T,再做 softmax:
P(w) = softmax(z / T)w
z 是词表中各候选 token 的 logits,w 是其中一个候选,P(w) 是温度缩放后选到它的概率。温度不会改变候选的知识来源,只会重新调整候选之间的相对概率。
当 T → 0 时,logit 之间的差异被放大,分布变得很尖,概率几乎集中在最高候选上,输出更确定、更保守,也可能更容易重复。当 T = 1 时,直接使用模型原本的分布。当 T > 1 时,logit 差异被压缩,分布更平坦,原本概率较低的 token 获得更多被选中的机会,文本因而更多样,但也更容易偏离合适路径。
从信息论角度看,温度调节的是输出分布的不确定性,也就是熵。低温对应低熵,少数候选占据主要概率;高温对应高熵,概率分散到更多候选。所谓“提高创意”,在这个机制中不是模型突然获得了新想法,而是采样时允许更多低概率路径被探索。温度越高并不意味着质量必然越好,它是在稳定性与多样性之间调整取舍。
生成还能使用多少前文,则受上下文窗口限制。上下文窗口规定模型一次计算能够直接条件化的 token 数上限;窗口之外的内容不会自动参与当前预测。若应用希望使用更早的信息,需要把它重新检索出来或摘要后注入当前上下文。窗口按 token 而不是可见字数衡量,因此文本切分方式也会影响实际可放入的内容量。
扩大可用窗口会受到计算与模型结构的共同约束。标准全局注意力需要计算各位置之间的注意力分数,其矩阵规模随序列长度平方增长;此外,KV 缓存、硬件资源、位置表示和训练时使用的长度也都会影响实际可用窗口。上下文窗口因此只是模型当前能够“直接看到”的范围,并不等同于永久记忆;窗口更长也不表示其中每条信息都会被同等有效地利用。
| 温度 | 对分布的影响 | 表现 |
|---|---|---|
| T → 0 | 分布变尖,几乎只剩最高那个 | 确定、保守、可能重复 |
| T = 1 | 就用模型原本的分布 | 默认 |
| T > 1 | 分布被摊平,低概率词也有机会 | 多样、有创意、也更容易跑偏 |
8从「基座」到「助手」:三步工程
预训练完成后得到的是基座模型。它已经能根据大量文本中学到的语言、知识和模式进行续写,但预训练目标只要求它判断“文本通常怎样接下去”,并没有专门要求它把用户输入识别为指令并给出有帮助的回答。因此,把一个问题直接交给基座模型时,它可能继续生成更多问题、模仿网页段落,或者采用其他在训练文本中常见的延续方式,而不一定像助手那样作答。
从基座模型到日常使用的对话助手,通常要经过三个阶段。第一阶段是预训练:输入海量原始文本,通过自监督的下一个 token 预测学习通用的语言、知识与模式。它产出能力广泛的基座模型,但“会续写”不等于“会遵循指令”。
第二阶段是指令微调,也叫 SFT。训练数据不再只是原始网页文本,而是“指令 → 理想回答”的示范。模型继续更新参数,学习看到指令后采用怎样的回答格式、怎样围绕问题组织内容,以及“被问就答”的对话习惯。SFT 主要补上的是指令遵循行为:它把基座模型已有的能力引导到助手式交互中。
第三阶段是偏好对齐,典型方法包括 RLHF 和 DPO。训练信号来自人类对“哪个回答更好”的偏好比较或相应反馈,模型据此调整回答倾向,使输出更有用、更安全,也更接近人们期望的表达方式。这里学习的不是单一标准答案,而是多个候选回答之间的相对偏好。
三段过程的输入和目标不同:
预训练:原始海量文本 → 学习通用续写能力 → 基座模型 指令微调:指令与理想回答示范 → 学习遵循指令 → 对话行为成形 偏好对齐:回答比较或反馈数据 → 调整回答倾向 → 更符合有用性与安全规范
评估三个阶段时也应区分不同指标。预训练后的变化更适合观察知识与续写能力,指令微调要看指令遵循率,偏好对齐则要看偏好与安全指标。模型变得更听话、更符合表达规范,并不必然表示它掌握了更多可靠事实,也不能把回答风格改善直接当作事实准确率提高。
后训练改变的是模型的行为倾向,而不是为每次输出提供绝对保证。完成指令微调和偏好对齐的助手仍可能回答错误,也无法保证每次都安全。需要最新或可核验事实时,仍要依靠检索、工具和外部验证。日常对话模型之所以既能对话又较听话,是预训练能力与后续行为训练共同作用的结果;后两阶段让能力更容易被按人类意图调用,却不能消除生成机制本身的边界。
| 阶段 | 做什么 | 补上了什么 |
|---|---|---|
| ① 预训练(得到基座模型) | 海量文本上自监督预测下一个词 | 渊博的语言、知识、模式——但不听话 |
| ② 指令微调 SFT | 用「指令 → 理想回答」的示范数据继续训练 | 学会「被问就答」的对话格式与习惯 |
| ③ 偏好对齐(RLHF / DPO) | 用人类对「哪个回答更好」的偏好来调 | 答得更有用、更安全、更像人想要的 |
9一句话,划清语言似然的边界综合
理解大语言模型行为的核心句是:它输出的是“在训练数据的统计规律下,最可能接下去的内容”,而不是经过核验的“事实”。
给定提示和当前上下文,模型计算候选 token 的概率,再由解码过程逐步形成续写。这里的语言似然,是模型依据训练数据中的统计规律,为不同续写分配的相对可能性;它回答的是“哪段文字更像训练数据中可能出现的后续”,不是“哪段文字在现实中为真”。模型优化的是下一个 token 是否像合理的人类文本,而训练目标本身没有独立的真值约束。
这一区分直接解释了幻觉风险。一段错误内容也可能拥有很高的语言似然:只要用词、句式和上下文关系足够自然,模型就可能流畅而自信地生成它。高概率只能说明续写符合模型学到的文本规律,不能成为事实证明。若任务要求事实结论,生成结果还必须经过检索、引用或工具验证。
模型的知识来自训练时可用的数据,因此会有知识截止日期,也不会自动知道训练数据之外的最新信息或私有信息。这个时效边界与幻觉并不相同:前者限制模型可能掌握的信息范围,后者说明即使文字流畅,也不能据此判定内容为真。
“最可能出现的文字”也不等于“人希望模型说的话”。训练文本中的常见续写未必有用、安全或符合用户意图,因此还需要对齐训练来调整模型的行为偏好。对齐处理的是回答是否更符合人类偏好和安全目标,它与事实核验有关联,但不能替代事实核验。
自回归生成一次只决定一个 token,没有预先固定的全局草稿。某一步进入错误路径后,后续 token 会以已经出错的前缀为条件,继续生成局部连贯的内容,于是错误答案也可能被解释得很完整。让模型先写出推理过程等提示技巧,有时能改善生成路径,但不能提供正确性保证。
幻觉、知识截止和对齐需求彼此相关,却不是完全相同的单一问题:幻觉涉及语言似然与事实真值的差异;知识截止限制训练所得信息的时效范围;对齐调整偏好与安全行为,但不把语言概率变成事实证明。使用模型时,最重要的边界就是始终把“像真的”与“有证据证明是真的”分开。
还要避免把这些边界压成一条万能因果链。前文能够推出的是:语言概率不是事实证明,训练数据存在时效边界,对齐改变行为倾向。至于如何接入外部资料、怎样划分输入中的信任边界,需要各自的机制与证据,不能只凭“下一个 token”目标作结论。所以下表中的 RAG 与提示注入只作为延伸议题索引,不承担具体机制或证据边界的说明。
| 由这句性质 | 直接推出 |
|---|---|
| 只追求「最可能」,没有真值约束 | 会幻觉——把话说得流畅自信,内容却是编的 |
| 知识全来自训练那一刻的数据 | 有知识截止日期;要最新/私有事实,得外挂检索(RAG) |
| 「最可能说的」≠「应该说的」 | 需要对齐,才不会有用地帮倒忙 |
| 在它眼里,指令和数据都只是 token | 会被提示注入——藏在内容里的指令可能被当成命令执行 |
| 一次一个 token、无全局草稿 | 能把错误答案也说得圆;靠「让它先写推理过程」等技巧改善 |
10把整条因果链连起来综合
大语言模型的完整机制可以从“把语言任务统一成续写”开始理解。翻译、问答、摘要或分类原本需要不同的专用系统,但只要把任务要求和输入都写进文本,它们的输出就都可以表示为“接下来应该出现什么”。统一的续写接口,使同一个模型和同一套参数能够覆盖许多语言任务。
“续写”在计算上不是一次生成整段答案,而是每一步都在整个词表上输出一张概率表,再根据解码规则选出一个 token。选中的 token 被拼回前文,模型以新的前缀继续预测下一步。长文本就是这个自回归循环不断滚动的结果,因此当前选择既决定本步输出,也会成为后续预测的条件。
文字本身不能直接参与神经网络运算,所以输入首先要被切分为 token,并转换为 token id。每个 id 再映射成连续的嵌入向量,并加入位置信息。这样,离散文字才变成模型能够进行加权求和与非线性变换的向量序列。
Transformer 接收这组向量,利用注意力从前文不同位置汇总相关信息,把每个位置反复加工成适合预测后继 token 的上下文表示。因果掩码限制每个位置只能使用左侧前文,不能偷看未来答案。这个限制一方面保持了“只根据前文预测后续”的任务定义,另一方面允许一整段文本在一次训练计算中同时产生多个逐位置预测信号。
训练时,目标 token 就是原始文本在相应位置真实出现的后继,因此文本可以自己提供标签,不需要人工逐条标注。交叉熵惩罚模型没有给真实 token 足够高概率的情况,梯度下降则不断调整参数、降低这种损失。自监督目标拆除了人工标注瓶颈,使扩大数据、参数与算力成为可持续的训练路径。
下一 token 预测之所以能产生翻译、代码或部分推理表现,是因为准确预测不同类型文本的后续,需要形成可复用的语法、语义、事实和推理模式。当预测任务覆盖足够多样的数据、模型又有足够容量时,这些内部表示可以在提示下迁移到具体任务。但这种表现可能混合记忆、模仿和真正的组合泛化,流畅输出本身不能证明可靠推理。
生成阶段并不再学习参数,而是决定怎样使用模型已有的概率分布。贪心解码偏向稳定,随机采样带来多样性;温度通过改变分布的尖锐或平坦程度,在保守与发散之间调整。上下文窗口则限制一次预测能直接使用多少 token,窗口之外的信息不会自动参与计算。
预训练只得到擅长续写的基座模型。要让它成为能遵循要求的助手,还需要用“指令—理想回答”示范进行指令微调,再利用回答偏好或反馈进行偏好对齐。后训练使行为更听话、更有用、更符合安全目标,但不能保证事实一定正确,也不能消除生成机制的其他风险。
整条链最终落在一个重要边界上:模型优化的是训练数据统计规律下的语言似然,不是事实真值。没有真值约束时,错误内容也可能被生成得流畅可信,因此幻觉具有结构性,流畅回答本身不能充当事实证明。与此同时,对齐处理的是目标规范与行为偏好,它会改变模型倾向于怎样回答,却不能保证回答已经过事实核验。
13概念依赖与延伸学习路线
理解大语言模型需要沿着一条明确的概念依赖链前进。最底层是神经网络及其数值计算基础:模型只能处理连续数字,因此文字必须先经过 token 化与分词,映射为编号,再通过嵌入变成向量。softmax 负责把模型输出的 logits 转成词表概率分布,交叉熵则衡量模型给真实后继 token 的概率是否足够高。自监督学习解释了真实文本为什么能直接提供训练目标,而不需要额外人工标签。
Transformer 与注意力构成处理向量序列的核心结构。注意力让当前位置从相关前文位置汇总信息,Transformer 通过多层加工形成上下文化表示。在语言模型中,因果掩码进一步规定每个位置只能使用左侧前文,从而把 Transformer 变成适合“根据前文预测下一个 token”的结构。神经网络、token、嵌入、注意力、softmax、交叉熵与自监督学习因此不是彼此孤立的术语,而是从文字输入到训练信号的连续机制。
建立这些先修概念后,页面核心可以串成一条主线:下一个 token 预测定义每一步要解决的问题;自回归生成把一次预测循环成完整文本;因果掩码保证每一步只使用已出现的前文;预训练目标利用文本中的真实后继计算损失;采样与温度决定怎样从概率分布选择 token;上下文窗口规定一次计算可直接使用的前文范围;基座模型再依次经过指令微调 SFT 和偏好对齐,成为更能遵循指令的助手。
紧邻这条主线的延伸主题,分别回答规模、事实与控制问题。缩放定律讨论数据、参数和算力扩大时能力怎样变化;幻觉讨论语言似然与事实真值不一致带来的错误;对齐与 RLHF 调整模型对人类偏好和安全目标的响应。RAG、提示工程与提示注入也属于进一步学习的延伸主题,但仅凭本页的生成主线,不能判断它们的具体工作方式或风险边界。
再向外扩展,可以学习多模态、混合专家 MoE、推理模型、Agent、微调以及量化与部署。这些主题分别把语言模型连接到更多输入形式、不同模型结构与计算方式、更复杂的推理和行动流程、面向具体任务的参数调整,以及实际运行中的资源约束。它们建立在同一个基础之上:模型先把输入转换为可计算表示,再依据训练得到的参数产生条件概率,并通过生成或外部系统形成最终行为。
这张依赖图中最关键的两条因果关系是:预测下一个 token 的答案来自文本本身,所以不需要人工逐条标注;而要在多样文本中持续预测准确,模型会形成可迁移的语法、语义和部分推理表示。与此同时,训练目标优化的是语言似然而非事实真值,所以错误内容也可能获得高概率并被流畅生成,幻觉因而是生成机制的结构性风险。
| 学习层级 | 涉及概念 |
|---|---|
| 先修 | 神经网络、Transformer、注意力、token 与分词、嵌入、softmax、交叉熵、自监督学习 |
| 本页核心 | 下一个 token 预测、自回归生成、因果掩码、预训练目标、采样与温度、上下文窗口、基座→SFT→对齐 |
| 紧邻延伸 | 缩放定律、幻觉、RAG、对齐、RLHF、提示工程、提示注入 |
| 更远 | 多模态、混合专家 MoE、推理模型、Agent、微调、量化与部署 |
- Brown et al., Language Models are Few-Shot Learners:自回归语言建模、上下文学习与规模效应。
- Kaplan et al., Scaling Laws for Neural Language Models:参数、数据、计算与损失的经验缩放关系。
- Ouyang et al., Training language models to follow instructions:预训练模型与可用助手之间的后训练过程。