重要提示:如需以 Markdown 形式查看本页,请在 URL 后追加 `.md`。 完整文档索引见 llms.txt
跳到主要内容
完整文档索引见 llms.txt。 在任意 URL 后追加 `.md` 即可查看该页面的 Markdown 版本。

训练与推理

LLM 训练和推理,是模型生命周期中的两个不同阶段。

LLM 生命周期可视化器
训练只做一次,推理会发生在每个请求上。
构建
数据收集与准备
训练学习权重
评估测试质量
运维
部署打包与加载
推理每个请求都会运行
优化批处理、缓存等
何时运行构建一次,随后持续运行
关注指标构建阶段关注质量;生产阶段关注延迟与成本

训练:构建模型的理解能力

训练发生在构建 LLM 的初始阶段。它的目标是教会模型识别模式并做出准确预测。 实现方式是让模型接触海量数据,并根据看到的数据不断调整参数。

LLM 训练中常见的技术包括:

  • 监督学习:向模型展示输入与正确输出配对的样本。
  • 强化学习:让模型通过试错学习,并基于反馈或奖励持续优化。
  • 自监督学习:无需显式标签,通过预测数据中缺失或损坏的部分来学习。

训练的计算开销很高,通常需要昂贵的 GPU 或 TPU 集群。虽然这笔初始成本可能 非常高,但总体上更接近一次性投入。模型达到目标精度后,通常只需要在周期性 更新或改进时再做重新训练。

推理:在实时场景中使用模型

LLM 推理指的是把训练好的模型应用到新数据上来做预测。与训练不同,推理 happens continuously and in real-time, 会持续且实时地发生,对用户输入或新到达的数据立即作出响应。它是模型真正 “投入使用”的阶段。训练更充分、微调更到位的模型,通常能提供更准确、更有 价值的推理结果。

推理的计算需求是持续存在的,而且随着用户交互和流量增长,会变得非常高。 每一次推理请求都会消耗 GPU 等计算资源。虽然单次推理相对于训练来说规模更小, 但随着时间推移累积起来,仍然可能带来可观的运维成本。


下面给出训练与推理的并列对比:

项目训练推理
目的教会模型使用模型
数据海量数据集新的、由用户提供的输入
计算形态长时间、昂贵的 GPU/TPU 作业实时、反复发生的工作负载
成本模型以一次性投入为主持续发生,并随流量增长
硬件多节点集群更小的集群、优化过的运行时和缓存使用
时间数小时到数周毫秒到数秒
工具PyTorch、JAX、DeepSpeed、MegatronvLLM、SGLang、TensorRT-LLM、MAX、LMDeploy

常见问题

什么是 model serving?

Model serving 指的是把训练好的模型以生产方式提供给应用、用户或系统使用,使其 能够对新输入执行推理。它通常包括模型打包、加载到合适硬件、通过 API 或服务 对外暴露、监控其行为,以及控制延迟、可靠性、安全性和成本。

了解更多关于 serving and inference.

训练和推理在 LLM 生命周期中分别处于什么位置?

训练发生在生命周期较早的阶段。模型在这里学习模式、语言结构与通用知识。 之后,模型还会经历对齐、可选的微调、评估和部署。推理发生在部署之后,是 模型真正通过 API、服务或应用工作流服务真实用户的阶段。你可以把训练理解为 “构建模型”,把推理理解为“让模型开始工作”。

为什么 LLM 推理常常比训练更费钱?

尽管训练 LLM 很昂贵,但通常只发生一次。推理则不同,它会在用户每次发送 请求时都发生。随着流量增长,推理调用次数也会同步增长。每个请求都会消耗 GPU 算力、内存和网络带宽。长期来看,这种持续性需求会让推理成为更大的长期成本, 尤其是在高使用量或长 prompts 的应用里。

我应该自己训练一个 LLM 吗?

大多数情况下,不应该。要从零训练一个新的 LLM,需要海量数据集、专用硬件, 以及专门的研究团队。大多数公司更好的做法,是从现有的 open-source LLM and then 开始,再针对自身领域进行微调或定制。只有当你要解决现有模型无法覆盖的问题, 或者你有微调无法满足的严格控制要求时,从头训练才真正合理。

fine-tuning 算训练还是推理?

Fine-tuning 属于训练的一种。你会利用新数据更新模型的一部分权重,让它适应 特定任务或领域。推理不会改变任何权重,它只是使用模型来生成预测。更多内容见 fine-tuning 章节