跳转到内容

第 22 章 什么使语言模型成为 LLM

Mini GPT 能接完熟悉的红钥匙句子。提示明确把钥匙改为蓝色以后,它也可能继续回答红色。这两次表现都来自第 21 章最后保存的同一份参数。前一次成功说明,学到的概率分布能复现某种句式;后一次失败则限制了我们对这种能力的判断。给模型加上聊天窗口,或者称它为“智能模型”,都不会改变这些证据。

现代大语言模型也像 Mini GPT 一样计算下一个 token,但计算背后的条件可能相差很远:它接触过哪些文本、训练了多少、模型能容纳多复杂的关系,以及后续训练又鼓励了什么行为。要比较这些模型,就得分别回答几个问题,不能只设一道参数量门槛。模型卡(model card) 按版本记录模型怎样构建、打算用在哪里、做过什么评测,以及有哪些限制。本章要练习的,就是把卡片上的说法与证据逐一接起来。

例 22.1:根据证据还原 MG-2。 输入材料是原有的 MG-2 项目。先看按验证规则选中的第 50 步快照,再看最后第 600 步的快照。两者都有 13,875 个可学习的数值、一个因果块、291 项的字节 BPE 词表,以及包含 BOS 在内的 64 个输入槽位。它们使用同样的 24 条训练记录和八条验证记录,不同的是权重的具体数值。

表 22.1:结构相同,证据却不同。 损失以每个有效的下一个 token 目标的奈特数计。续写保留实测拼写,各条提示的冒号后都有一个空格。

证据第 50 步第 600 步
验证损失2.4055714.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 做过的一样。保存基座快照,就是固定这一过程中的某个时刻。可选的后训练从一份快照出发,用另一种目标或数据分布继续更新参数。还可能有继续预训练、多轮往返等安排;这张图表达依赖关系,并不宣称所有模型都沿一条直线演进。

改变参数的路径
  1. 模型之外选定文本 → token 序列
  2. 模型保存的数值下一个 token 训练 → B1
  3. 模型保存的数值新增训练 → I1

B1 与 I1 的形状相同,保存的数值可以不同。

读取参数的路径
  1. 模型保存的数值加载 I1 与 tokenizer T1
  2. 处理步骤引擎 E1 计算 logits
  3. 模型之外服务进程 S1 调度请求

换服务进程或窗口,不能证明发生过新一轮训练。

一次应用请求
  1. 文本片段上下文含新限额:750
  2. 处理步骤读取固定权重 → 选择 token
  3. 模型之外显示答案;没有改动订单

参数身份不变,上下文也可能使输出改变。

图 22.1:训练改变参数,服务读取快照。 本书原创图示 · CC BY-SA 4.0。

图 22.1 把“改变参数”的箭头与“读取参数”的操作分开。加载选定快照后,执行引擎(engine) 完成数值计算和 token 选择,服务进程(server) 接收请求、分配资源,应用(application) 组织输入、呈现结果,并决定是否允许另一个程序采取行动。第 30—31 章会检查前两项职责,后面的部分再展开应用接口与权限。

假设聊天页面在输入里加上一句“请礼貌回答”,仍使用 B1。模型看到的上下文变了,输出可能改变,但没有发生后训练。再假设页面外观完全相同,后台却加载了 I1。这次界面不变,参数所定义的分布变了。无论哪种情况,关于取消订单的回答仍只是文本;模型没有因此取得取消 A-104 的权限。

这也说明,训练数据的截止日期,不等于每个答案能涉及的最新日期。参数固定的模型,可以在当前输入里看到更新为 750 元的虚构制度。它能否正确使用这条证据,仍要检查实际行为。看到新制度不一定需要重新训练,看到以后也不保证会遵照它回答。MG-2 已经提供了一个小反例:提示写明新值,模型仍未答对。

Mini GPT 让我们能具体检查训练和生成,同时看清它学到的句式有多窄。现代 LLM 增加了规模、数据条件和训练过程,但这些都不会自动保证事实正确或赋予操作权限。Foundation、LLM、base、instruct、chat 和 reasoning 分别描述候选的不同侧面。读到每个名称,都要追问它的来源、输入、评测与证据缺口。下一章沿着数据继续往前查:在成为训练 token 以前,文本经历了什么?

  1. 团队给 MG-2 第 600 步的原有权重加上聊天窗口和礼貌回答的系统提示。哪些对象变了?这能证明模型接受过指令训练吗?
  2. 两份卡片都写“十亿参数”,一份只数活跃专家,另一份数全部存储参数。能直接比较吗?暂时不必知道专家怎样实现,先指出缺少什么定义。
  3. I1 的卡片新增了中文模型名,却没有新增评测。采购者据此认为中英文质量相当。缺少什么证据?用本书的什么小测试可以发现差异?
  4. 模型写了很长的解释,然后答对一道算术题。说出这次记录支持的一项观察,以及不能支持的两项结论。
  5. B1 的训练早于 travel-v2 生效,应用在请求时提供了新制度。回答正确的 750,一定意味着参数更新了吗?还要知道什么才能区分机制?
  1. 界面和输入构造规则变了,保存的权重没有变。提示能影响一次运行,但团队没有展示任何以遵循指令为目的的参数更新。提示及外层程序的版本应与模型修订号分别记录。
  2. 不能。“活跃”数的是某个 token 计算路径用到的部分,“总量”数的是存储的模型。需要两种计数、共享参数与嵌入是否计入,以及路由假设。第 26 章会具体计算。定义不同,纸面数字相等也不表示资源相等。
  3. 名称没有提供按语言分别评测的证据。可以给中英文提供对应的限额更新问题、相同信息和验收标准,记录失败及 tokenizer 长度。小诊断能够揭示差异,本身还不能证明有代表性的双语质量。
  4. 在记录的预算内,这次运行给出了这道题的正确答案。它不能证明普遍可靠的解题推理能力,也不能证明可见解释忠实记录了内部因果过程。要支持更广的结论,还需改变题目、开展有对照的评测。
  5. 不一定。参数不变的模型可能使用了当前上下文。应比较权重和 tokenizer 身份、完整输入,以及其中的检索文档。控制其他条件,移除或更改所提供的制度,有助于研究答案是否依赖上下文;结果仍需谨慎解释。