什么是训练
AI 训练是一种优化过程。模型处理示例,训练系统衡量其输出满足目标的程度,然后更新模型可学习的参数并重复这一过程。
对于使用梯度训练的神经网络,一次训练步骤通常包含三个关键部分:
- 运行模型的前向过程以生成输出。
- 计算损失。损失是一个数值,用于表示输出与训练目标之间的差距。
- 计算并应用参数变化,以改善模型下一次生成的输出。
并非所有训练方法都使用带标签的示例,也并非都采用相同的更新算法。但其定义性结果仍然是学习状态发生变化:产生一组新的参数、更新一个适配器,或生成一个之后可以使用的新检查点。
什么是推理
AI 推理运行经过训练的模型,以计算预测、生成结果、评分、嵌入或其他输出。该操作使用模型选定的学习状态,但不会对其应用训练更新。
当你向聊天机器人发送提示词、欺诈检测模型为一笔交易评分,或公司将一整夜的图像作为一个批次进行处理时,都可能发生推理。推理不一定是实时的,其输入也不一定确实是全新的。关键在于:在该操作中,输入是被用来获得输出,而不是用来更新模型。
真正的区别
最明确的区别在于模型计算出输出之后发生了什么。
- 训练:使用目标信号来改变学习状态。
- 推理:在保持学习状态不变的情况下使用输出。
这比说训练速度慢而推理速度快,或说训练发生在实验室而推理发生在产品中,更为可靠。这些描述通常是正确的,但很容易找到例外。
| Dimension | Training | Inference |
|---|---|---|
| Primary purpose | Improve or adapt the model | Produce an output from the model |
| Learned parameters | Updated during the process | Read and used, but not updated by the operation |
| Typical gradient-based work | Forward calculation, objective calculation, backward calculation, optimizer update | Forward model calculation only |
| Input role | Supplies evidence for a learning objective | Supplies the case for which an output is needed |
| Result | Updated parameters, adapter, or checkpoint | Prediction, generation, score, embedding, or action signal |
| Timing | Can be one-off, periodic, or continuous | Can be request-driven, streamed, scheduled, or batched |
| Main system concerns | Learning quality, stability, data, memory, and time to reach an objective | Output quality, latency, throughput, reliability, and cost per workload |
两个阶段可以使用相同的模型架构和大量相同的硬件。这些相似之处并不会抹去二者的边界;真正决定边界的是是否存在学习更新。
一个具体示例
假设你正在构建一个垃圾邮件过滤器。以下数字仅用于说明。
在训练期间,模型收到一封已知标签为“垃圾邮件”的电子邮件。它为该邮件分配了 0.40 的垃圾邮件分数。训练系统将该分数与已知标签进行比较,计算误差,并调整模型参数。它会在大量示例上重复这一过程。之后保存的一个检查点为同一封训练邮件打出的分数为 0.91。
现在,过滤器收到一封用户发来的邮件。在推理期间,保存的检查点为其给出 0.82 的垃圾邮件分数。应用程序可能会将该邮件移入垃圾邮件文件夹。但这一操作本身并不会教会模型任何东西。用于处理下一封邮件的参数保持不变。
如果系统之后收集经过审核的邮件,并使用它们来更新模型,那么这次后续的优化运行就是训练。预测和学习更新是两个独立的操作,即使其中一个操作为另一个操作提供了数据。
两者何时重要
训练决策决定哪些行为会成为模型学习状态的一部分。数据、目标、更新方法和停止时机都会影响最终可供使用的检查点。
推理决策决定该检查点在实际工作负载下的表现。团队可能会针对单个用户的快速响应、大批量处理效率、可预测的输出质量,或这些目标之间的平衡进行优化。
成本比较取决于具体系统。一次大型训练运行消耗的计算资源可能远多于一次推理请求。然而,当请求量足够大时,一项服务在推理上的总支出仍可能更高。频繁重新训练的模型还会再次改变这种平衡。“训练成本更高”这一说法并不完整,除非明确说明计算单位和时间范围。
人们容易混淆的地方
推理不是自动学习
AI 应用在处理请求时,可能会保存对话、检索文档、更新缓存或记住用户偏好。这些是周边应用的变化。除非学习过程改变了模型参数或其他已学习组件,否则它们不属于模型训练。
评估是相邻的操作
验证和测试通常看起来像推理,因为模型会生成输出而不更新参数。但二者的目的不同:评估会将输出与已知答案或标准进行比较,以衡量模型表现。训练工作流可能会在更新轮次之间暂停,以评估某个检查点,但这次评估过程本身并不是训练更新。
微调仍然属于训练
微调从现有检查点开始,而不是从未经训练的模型开始。它可以更新模型的全部参数,也可以只更新一个较小的适配器。无论哪种方式,它都会为了满足某个目标而改变学习状态,因此属于训练一侧。
两个阶段可以交错进行
已部署的系统可以先进行预测、收集反馈,然后再训练修订后的模型。在线学习可以更紧密地交替或结合预测步骤与更新步骤。整个生命周期可能变得模糊,但仍然可以根据每项操作是否更新学习状态来识别它。
下一步阅读
阅读《AI 中的训练是什么?》,了解改变模型的优化过程。阅读《AI 中的推理是什么?》,了解经过训练的模型如何在交互式系统和批处理系统中将输入转换为输出。