第 22 章 什么使语言模型成为 LLM
Mini GPT 能接完熟悉的红钥匙句子。提示明确把钥匙改为蓝色以后,它也可能继续回答红色。这两次表现都来自第 21 章最后保存的同一份参数。前一次成功说明,学到的概率分布能复现某种句式;后一次失败则限制了我们对这种能力的判断。给模型加上聊天窗口,或者称它为“智能模型”,都不会改变这些证据。
现代大语言模型也像 Mini GPT 一样计算下一个 token,但计算背后的条件可能相差很远:它接触过哪些文本、训练了多少、模型能容纳多复杂的关系,以及后续训练又鼓励了什么行为。要比较这些模型,就得分别回答几个问题,不能只设一道参数量门槛。模型卡(model card) 按版本记录模型怎样构建、打算用在哪里、做过什么评测,以及有哪些限制。本章要练习的,就是把卡片上的说法与证据逐一接起来。
22.1 从确实能检查的模型开始
Section titled “22.1 从确实能检查的模型开始”例 22.1:根据证据还原 MG-2。 输入材料是原有的 MG-2 项目。先看按验证规则选中的第 50 步快照,再看最后第 600 步的快照。两者都有 13,875 个可学习的数值、一个因果块、291 项的字节 BPE 词表,以及包含 BOS 在内的 64 个输入槽位。它们使用同样的 24 条训练记录和八条验证记录,不同的是权重的具体数值。
表 22.1:结构相同,证据却不同。 损失以每个有效的下一个 token 目标的奈特数计。续写保留实测拼写,各条提示的冒号后都有一个空格。
| 证据 | 第 50 步 | 第 600 步 |
|---|---|---|
| 验证损失 | 2.405571 | 4.068374 |
The key is red. Answer: | bluesuersther: blue key. | red. |
The key was red. Now blue. Answer: | blue key. | red. |
Old limit: 600. New limit: 750. Answer: | peng. | shipedwion: old. |
按原定验证规则,第一行支持选择第 50 步。如果任务只有“接出那条熟悉句子的后缀”,第二行又会支持第 600 步。其余两行提醒我们:不能因此把任何一个快照当成能可靠处理更新信息的助手。模型卡必须说清楚,每项评测究竟回答什么问题。若把这些不同问题混成一个没有定义的“智能分数”,恰好会丢掉我们需要的区别。
单独增加参数,也修不好这个实验。我们甚至可以复制一块从不参与计算的参数数组,让计数增加,而所有输出原封不动。真正参与前向计算的参数,同样需要合适的数据和优化过程,才能支持有用的行为。规模关系到模型的容量和学习所用的资源,不是跨过某个整数就能领取的能力证明。
22.2 先分别提问,再给模型贴标签
Section titled “22.2 先分别提问,再给模型贴标签”先问:一份训练好的模型,是否打算支撑多种下游用途?“下游用途”就是基于它进一步构建的任务,例如概括制度,或判断请求属于哪一类。基础模型(foundation model) 强调广泛的训练数据,以及经过适配后用于多种任务的可能性。这个称呼也用于图像等模态的模型,所以不等于“文字聊天机器人”。MG-2 的小语料和有限诊断,并没有建立这种广泛性。
再问:语言建模达到了什么规模?需要一起看参数容量、训练 token 的处理次数、数据种类和已经展示的能力。大语言模型(large language model,LLM) 是对大规模语言模型的通称。本书不设一个通行于所有场合的参数量门槛。明确结构之后,参数数目有助于比较,但不能替代其他信息。现代模型家族中较小的成员,也可能被称为 LLM;名称的使用习惯,并不能决定它适不适合当前任务。
还要问:这份权重处于训练过程的哪一步?基座模型(base model) 指已经完成预训练、尚未进行所讨论的助手适配的模型。因果语言模型通常学习预测文本中的下一个 token,而这些文本既有答案,也有问题、被引用的错误和未完的对话。这个目标本身没有规定“哪位说话者应该听从用户要求”。指令模型(instruct model) 则接受过以遵循指令为目的的训练。训练所鼓励的行为可以改变,层数和参数数量却未必改变。
最后,把行为与交付方式也分开问。聊天(chat) 可能指经过多轮对话训练的模型,也可能指对话模板,或应用的聊天界面,需要结合文档判断。解题推理模型(reasoning model) 通常强调多步解决问题的训练或配置,有时会在给出答案之前使用更多计算。它描述能力与训练侧重,并不是一种与模型运行(inference)相对立的数学过程。可见解释更长,不足以证明解题推理正确;模型生成的解释,也不是经过认证的内部操作记录。
表 22.2:不同名称回答不同问题。 各行是独立的分类维度,不是只能选一个的类别。
| 要问的问题 | 相关名称 | 还需要什么证据 |
|---|---|---|
| 广泛预训练的模型能否适配多种任务? | Foundation | 数据范围,以及各预期用途的评测 |
| 语言建模的规模和覆盖范围如何? | LLM | 参数定义、token 预算、配比和能力证据 |
| 这份权重来自训练过程的哪一步? | Base/instruct | 上一份快照、目标和新增训练 |
| 训练过对话行为,还是只提供聊天界面? | Chat | 模板、训练来源和多轮评测 |
| 是否明确侧重多步解题? | Reasoning | 任务、计算预算、核验和失败证据 |
因此,一份模型可以同时是基础语言模型、LLM、指令模型和侧重解题推理的模型。叫它“基座”,不表示它没有有用的能力;叫它“指令模型”,也不保证答案真实。参考文献中的指令训练与解题推理研究展示了具体的训练过程,并没有为所有模型规定唯一配方。
22.3 把模型卡读成一条可以追查的证据链
Section titled “22.3 把模型卡读成一条可以追查的证据链”例 22.2:一份评测不完整的去厂商化模型卡。 这是 作者给定的教学材料,版本为 lifecycle-card-v1。数字描述一个假想系统,不代表任何实测发布的模型。我们能还原哪些事情,又有哪些事情尚不知道?
表 22.3:卡片字段与能直接读出的信息。 十亿即 1,000,000,000。这里的一个训练 token,指用指定 tokenizer 处理后的一次 token 训练暴露;重复文本会重复计数。
| 字段 | 卡片内容 |
|---|---|
| 架构 | 因果稠密 Transformer;总参数十亿;tokenizer 为 T1 |
| 预训练 | 广泛的混合文本;累计处理二百亿个 token;配比另有文档 |
| 基座快照 | B1,完成下一个 token 预测训练 |
| 适配后快照 | I1,以 B1 初始化,经过指令示范和偏好训练;参数数量不变 |
| 评测 | 报告了英文制度问答;没有中文评测,也没有制度更新测试 |
| 交付 | I1 通过执行引擎 E1 和服务进程 S1 运行;浏览器提供聊天界面 |
| 解题推理说法 | 只有宣传描述,没有预算或可核验的题集 |
| 用途边界 | 起草建议,不执行订单操作;部署许可仍需核查 |
我们可以还原卡片声称的 B1 → I1 关系,并把新增训练标在两者之间。但“二百亿”不等于二百亿份独立信息,因为文档可能反复出现。它也不能说明每份来源都允许这样使用,或每种语言都有充分的数据。这些问题要回到数据记录中核查。
英文结果补不出缺失的中文结果。参数数量相同,也不能说明 B1 与 I1 给出同样的分布:训练可以改变保存的数值,而每个张量的形状都不变。反过来,换一个浏览器界面,也可以完全不动这些数值。至于解题推理能力,这张卡还没有提供支持证据。“尚未证实”本身就是合格的阅读结论,不是需要乐观补全的空白。
共享文件 data/part-v/lifecycle-card.json 固定了这道练习。真正比较候选时,还要保留稳定的修订版本、tokenizer 身份、实测提示与模板、解码配置、预期用途及适用许可。一个会变化的名称,没有具体修订号,日后就难以复跑。模型卡用来组织证据,并不会自动核实作者写下的每个说法。
22.4 从数据走到回答,沿途究竟改变了什么
Section titled “22.4 从数据走到回答,沿途究竟改变了什么”预训练时,流水线先选择文本,再把它变成 token 序列。训练程序计算损失、更新参数,和 MG-2 做过的一样。保存基座快照,就是固定这一过程中的某个时刻。可选的后训练从一份快照出发,用另一种目标或数据分布继续更新参数。还可能有继续预训练、多轮往返等安排;这张图表达依赖关系,并不宣称所有模型都沿一条直线演进。
- 模型之外选定文本 → token 序列
- 模型保存的数值下一个 token 训练 → B1
- 模型保存的数值新增训练 → I1
B1 与 I1 的形状相同,保存的数值可以不同。
- 模型保存的数值加载 I1 与 tokenizer T1
- 处理步骤引擎 E1 计算 logits
- 模型之外服务进程 S1 调度请求
换服务进程或窗口,不能证明发生过新一轮训练。
- 文本片段上下文含新限额:750
- 处理步骤读取固定权重 → 选择 token
- 模型之外显示答案;没有改动订单
参数身份不变,上下文也可能使输出改变。
图 22.1 把“改变参数”的箭头与“读取参数”的操作分开。加载选定快照后,执行引擎(engine) 完成数值计算和 token 选择,服务进程(server) 接收请求、分配资源,应用(application) 组织输入、呈现结果,并决定是否允许另一个程序采取行动。第 30—31 章会检查前两项职责,后面的部分再展开应用接口与权限。
假设聊天页面在输入里加上一句“请礼貌回答”,仍使用 B1。模型看到的上下文变了,输出可能改变,但没有发生后训练。再假设页面外观完全相同,后台却加载了 I1。这次界面不变,参数所定义的分布变了。无论哪种情况,关于取消订单的回答仍只是文本;模型没有因此取得取消 A-104 的权限。
这也说明,训练数据的截止日期,不等于每个答案能涉及的最新日期。参数固定的模型,可以在当前输入里看到更新为 750 元的虚构制度。它能否正确使用这条证据,仍要检查实际行为。看到新制度不一定需要重新训练,看到以后也不保证会遵照它回答。MG-2 已经提供了一个小反例:提示写明新值,模型仍未答对。
22.5 本章小结
Section titled “22.5 本章小结”Mini GPT 让我们能具体检查训练和生成,同时看清它学到的句式有多窄。现代 LLM 增加了规模、数据条件和训练过程,但这些都不会自动保证事实正确或赋予操作权限。Foundation、LLM、base、instruct、chat 和 reasoning 分别描述候选的不同侧面。读到每个名称,都要追问它的来源、输入、评测与证据缺口。下一章沿着数据继续往前查:在成为训练 token 以前,文本经历了什么?
22.6 习题
Section titled “22.6 习题”- 团队给 MG-2 第 600 步的原有权重加上聊天窗口和礼貌回答的系统提示。哪些对象变了?这能证明模型接受过指令训练吗?
- 两份卡片都写“十亿参数”,一份只数活跃专家,另一份数全部存储参数。能直接比较吗?暂时不必知道专家怎样实现,先指出缺少什么定义。
- I1 的卡片新增了中文模型名,却没有新增评测。采购者据此认为中英文质量相当。缺少什么证据?用本书的什么小测试可以发现差异?
- 模型写了很长的解释,然后答对一道算术题。说出这次记录支持的一项观察,以及不能支持的两项结论。
- B1 的训练早于 travel-v2 生效,应用在请求时提供了新制度。回答正确的 750,一定意味着参数更新了吗?还要知道什么才能区分机制?
22.7 参考解答
Section titled “22.7 参考解答”- 界面和输入构造规则变了,保存的权重没有变。提示能影响一次运行,但团队没有展示任何以遵循指令为目的的参数更新。提示及外层程序的版本应与模型修订号分别记录。
- 不能。“活跃”数的是某个 token 计算路径用到的部分,“总量”数的是存储的模型。需要两种计数、共享参数与嵌入是否计入,以及路由假设。第 26 章会具体计算。定义不同,纸面数字相等也不表示资源相等。
- 名称没有提供按语言分别评测的证据。可以给中英文提供对应的限额更新问题、相同信息和验收标准,记录失败及 tokenizer 长度。小诊断能够揭示差异,本身还不能证明有代表性的双语质量。
- 在记录的预算内,这次运行给出了这道题的正确答案。它不能证明普遍可靠的解题推理能力,也不能证明可见解释忠实记录了内部因果过程。要支持更广的结论,还需改变题目、开展有对照的评测。
- 不一定。参数不变的模型可能使用了当前上下文。应比较权重和 tokenizer 身份、完整输入,以及其中的检索文档。控制其他条件,移除或更改所提供的制度,有助于研究答案是否依赖上下文;结果仍需谨慎解释。
22.8 参考文献
Section titled “22.8 参考文献”- Bommasani 等,On the Opportunities and Risks of Foundation Models。第 1、4.2 节解释广泛训练与适配的视角,没有规定通用的 LLM 参数门槛。
- Mitchell 等,Model Cards for Model Reporting。第 4 节的报告维度用于检查本章原创模型卡。
- Ouyang 等,Training language models to follow instructions with human feedback。图 2 和评测讨论区分原有目标与新增的行为训练,结论限于规定的提示分布。
- DeepSeek-AI,DeepSeek-R1,v1。训练概览提供一种侧重解题推理的模型生命周期;其配方和基准结论不构成通用定义。