跳到主要内容

模型训练与推理

理解模型为什么能回答问题,需要把“训练”和“回答”拆成两条不同的过程。

训练阶段用数据和目标函数改变模型参数,让模型逐渐学会语言、代码、格式和任务模式;推理阶段使用已经固定的参数,根据当前上下文逐步生成输出。检索、工具和 Agent 可以在推理时提供新的信息和行动能力,却不会自动把这些内容写回模型参数。

训练从什么开始​

训练数据先经过清洗、去重、过滤和切分,再被转换为模型能够处理的 Token。一个 Token 可以是一个字、一个词,也可以是词的一部分。Token 化决定了模型怎样看到数字、代码、中文、标点和长字符串,也会影响上下文长度、成本和精确操作能力。

模型不会直接把一篇文章保存成可查询的事实表。文本经过 Embedding 变成向量,进入多层 Transformer;Transformer 架构通过 Attention 和其他变换重新组织信息,最后为下一个 Token 产生一组分数。模型从大量样本中反复学习这些分数应该怎样变化。

损失函数如何改变参数​

以自回归语言模型为例,训练时把前面的 Token 作为输入,把下一个 Token 作为目标。模型输出每个候选 Token 的 Logits,经过 Softmax 得到概率,再用真实 Token 计算损失。损失告诉训练系统当前预测偏离目标的程度。

反向传播把损失对各层参数的影响计算出来,优化器根据梯度更新参数。一次更新只改变模型的一小部分行为,数十亿次样本和多轮训练后,参数才逐渐形成语言、代码、概念关联和任务模式。Checkpoint 保存某个阶段的参数,独立评测用来判断继续训练是否真正带来收益。

训练目标决定模型会学到什么。只优化下一 Token 预测,模型更像一个强大的续写器;训练数据、数据配比和质量决定它接触到哪些模式;模型规模和计算预算影响它能否吸收这些模式。参数量本身不能单独解释模型能力。

预训练与后训练承担不同任务​

预训练让模型获得通用语言和代码能力。它从数据中学习“这段上下文后面通常出现什么”,并在多种文本任务中形成可迁移的表示。这个阶段带来广泛能力,也把训练数据中的错误、偏见、过时内容和不一致一起带入了参数。

后训练再用指令示例、偏好信号和安全数据调整模型行为。监督微调教模型理解任务和格式,偏好优化让它更倾向有帮助、清晰和符合约束的回答,安全训练则增加拒答和边界行为。InstructGPT展示了示范、偏好和强化学习如何组合;后训练可以改变行为倾向,却不能自动补齐最新事实,也不能保证每个任务都可靠。

因此,“模型知道什么”和“模型愿意怎样回答”是两个相关但不同的问题。前者更多来自预训练数据和参数,后者还受到后训练、系统提示、上下文和解码策略影响。

推理如何生成一个答案​

推理时,输入先被 Token 化并送入模型。模型对当前序列执行一次前向计算,输出下一个 Token 的 Logits;解码器根据这些分数选择一个 Token,把它追加到序列末尾,再继续计算下一个 Token,直到遇到停止条件或预算耗尽。

选择方式会改变结果。贪心解码每次选择最高分 Token,温度会调整分布的尖锐程度,Top-p 等方法会限制候选集合后再采样。更高的随机性可能增加表达多样性,也可能降低稳定性;更保守的解码可以减少变化,却不能修复模型没有知识或推理错误。

模型每轮都重新根据当前上下文计算结果。系统提示、用户输入、示例、检索片段、记忆和工具返回值都会改变下一步的概率分布。模型没有一个独立于上下文的“最终答案库”,这也是同一个问题在不同上下文中产生不同结果的原因。

上下文和推理成本​

上下文越长,模型需要处理的输入 Token 越多,延迟和成本通常也会增加。推理服务会使用 KV Cache 保存已经计算过的 Key 和 Value,避免多轮生成时重复处理全部前缀;Cache 能减少重复计算,却不能解决长上下文中的噪声、信息位置和权限混杂问题。

推理时增加计算预算,可以通过多次生成、候选搜索、工具验证或测试反馈提高部分任务的成功率。收益取决于任务是否有可靠的筛选标准。没有外部验证器时,生成更多 Token 可能只是把一个错误解释得更长。

从原理回到系统设计​

这条链路决定了几个工程判断:

  • 训练数据影响模型的先验,不能替代当前任务的权威来源。
  • 上下文影响当前生成,外部文本进入上下文后仍然需要来源和信任标记。
  • Logits 和解码控制表达方式,不能把随机性参数当成事实校验器。
  • 工具和 Agent 把推理接到现实系统,权限、状态、验证和停止条件必须留在模型之外。

掌握训练与推理后,再阅读上下文工程理解一次运行如何组装信息,阅读模型能力边界观察这些机制在哪里失效,并用AI 评测与实验方法验证具体任务上的真实能力。