跳到主要内容

训练与推理

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

提示: 若无法显示,请直接打开 独立工具页面

训练:构建模型的理解

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

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

  • 监督学习(Supervised learning): 向模型展示输入与正确输出配对的示例。
  • 强化学习(Reinforcement learning): 让模型通过试错来学习,根据反馈或奖励进行优化。
  • 自监督学习(Self-supervised learning): 通过预测数据中缺失或损坏的部分来学习,无需显式标签。

训练的计算量很大,通常需要昂贵的 GPU 或 TPU 集群。虽然这种初始成本可能非常高,但它基本上是一次性的支出。一旦模型达到预期的准确度,通常只需要定期重新训练来更新或改进模型。

推理:实时使用模型

LLM 推理(inference)是指将训练好的模型应用于新数据以做出预测。与训练不同,推理持续且实时地发生,立即响应用户输入或传入的数据。这是模型被积极「使用」的阶段。训练得更好、微调得更精细的模型通常能提供更准确、更有用的推理结果。

推理的计算需求是持续不断的,并且可能变得非常高,尤其是随着用户交互和流量的增长。每个推理请求都会消耗 GPU 等计算资源。虽然单看每个推理步骤可能比训练小,但随着时间的推移,累积的需求可能会导致可观的基础设施运营成本。


以下是训练与推理的并排对比:

项目训练推理
目的教会模型使用模型
数据海量数据集新的、用户提供的输入
计算长时间、昂贵的 GPU/TPU 作业实时、重复的工作负载
成本模型基本一次性持续不断,并随流量扩展
硬件多节点集群较小的集群、优化的运行时和缓存利用
时间数小时到数周毫秒到秒
工具PyTorch、JAX、DeepSpeed、MegatronvLLM、SGLang、TensorRT-LLM、MAX、LMDeploy

常见问题(FAQs)

什么是模型服务?

模型服务(model serving)是将训练好的模型提供给应用、用户或系统的生产流程,使其能够对新输入运行推理。它通常包括打包模型、将其加载到合适的硬件上、通过 API 或服务暴露、监控其行为,并控制延迟、可靠性、安全性和成本。

了解更多关于服务与推理之间区别的信息。

训练和推理在 LLM 生命周期中的位置在哪里?

训练发生在生命周期的早期。模型学习模式、语言结构和通用知识。之后,模型会经历对齐(alignment)、可选的微调、评估和部署。推理发生在部署之后。这是模型在生产环境中服务真实用户的阶段,通常通过 API、服务或应用工作流进行。你可以把训练理解为「构建模型」,把推理理解为「让模型投入工作」。

为什么 LLM 推理通常比训练成本更高?

尽管训练一个 LLM 很昂贵,但它通常只发生一次。而推理则不同,每次用户发送请求都会运行。随着流量的增长,推理调用的次数也随之增长。每个请求都会使用 GPU 算力、内存和网络带宽。随着时间的推移,这种持续的需求可能使推理成为更大的长期支出,尤其是对于使用频繁或提示词(prompt)较长的应用。

我应该训练自己的 LLM 吗?

大多数情况下,不需要。从头训练一个新的 LLM 需要海量数据集、专业硬件和专门的研究团队。大多数公司通过从现有的开源 LLM开始,然后针对自己的领域进行微调或定制,会取得更好的结果。只有在现有模型无法解决你面临的问题,或者微调无法满足你的严格控制要求时,完整的训练才是有意义的。

微调算是训练还是推理?

微调(fine-tuning)是训练的一种形式。你使用新数据更新模型的部分权重,使其适应特定任务或领域。推理不会改变任何权重,它只是使用模型来生成预测。更多内容请参阅微调章节