Training vs. inference

LLM training 和 inference 是 model lifecycle 中两个不同的阶段。

可视化工具:LLM Lifecycle Visualizer

Training:构建模型的理解能力

Training 发生在最初构建 LLM 时,其目的是教会模型识别模式并做出准确预测。实现方式是让模型接触海量数据,并根据所遇到的数据调整 parameters。

LLM training 中常用的技术包括:

Training 的计算密集度很高,通常需要昂贵的 GPU 或 TPU cluster。尽管这项初始成本可能非常高,但基本上属于一次性支出。一旦模型达到预期准确率,通常只需定期 retraining,以更新或改进模型。

Inference:实时使用模型

LLM inference 是指将训练完成的模型应用于新数据以进行预测。与 training 不同,inference 会持续、实时地发生,即时响应用户输入或传入的数据。这是模型真正“投入使用”的阶段。Training 效果更好、fine-tuning 更充分的模型,通常能提供更准确、更实用的 inference 结果。

Inference 对 compute 的需求会持续存在,而且可能变得非常高,尤其是在用户交互和 traffic 增长时。每个 inference request 都会消耗 GPU 等计算资源。单独来看,每次 inference 所需的计算量可能小于 training,但长期累积的需求会带来巨大的运营成本。


下面是 training 和 inference 的并列对比:

项目 Training Inference
目的 教会模型 使用模型
数据 海量 dataset 用户提供的新输入
Compute 耗时长、成本高的 GPU/TPU job 实时、重复执行的 workload
成本模式 主要是一次性成本 持续产生,并随 traffic 增长
硬件 Multi-node cluster 规模较小的 cluster、经过优化的 runtime 和 cache 使用方式
时间 数小时至数周 数毫秒至数秒
工具 PyTorch、JAX、DeepSpeed、Megatron vLLM、SGLang、TensorRT LLM、MAX、LMDeploy

FAQ

什么是 model serving?

Model serving 是将训练完成的模型提供给应用程序、用户或系统,使其能够针对新输入运行 inference 的生产过程。它通常包括打包模型、将模型加载到合适的硬件上、通过 API 或服务对外提供模型,以及监控模型行为,并控制 latency、可靠性、安全性和成本。

进一步了解 serving 和 inference 的区别。

Training 和 inference 在 LLM lifecycle 中处于什么位置?

Training 发生在 lifecycle 的早期阶段。模型在此阶段学习模式、语言结构和通用知识。之后,模型会经历 alignment、可选的 fine-tuning、evaluation 和 deployment。Inference 发生在 deployment 之后,模型会在这一阶段通过 API、服务或应用工作流为生产环境中的真实用户提供服务。你可以把 training 理解为“构建模型”,把 inference 理解为“让模型投入工作”。

为什么 LLM inference 的成本往往高于 training?

虽然训练 LLM 的成本很高,但通常只进行一次。相比之下,每当用户发送请求时,inference 都会运行一次。随着 traffic 增长,inference call 的数量也会随之增加。每个请求都会占用 GPU compute、memory 和 network bandwidth。长期来看,这种持续需求可能使 inference 成为成本更高的长期支出,尤其对于使用量大或包含较长 prompt的应用而言。

我应该训练自己的 LLM 吗?

大多数情况下,不应该。从头训练新的 LLM 需要海量 dataset、专用硬件和专门的研究团队。对于大多数公司,更好的做法是从现有的 open-source LLM开始,再针对自己的领域进行 fine-tuning 或定制。只有当你要解决的问题是现有模型无法处理的,或者有 fine-tuning 无法满足的严格控制要求时,full training 才有意义。

Fine-tuning 属于 training 还是 inference?

Fine-tuning 是 training 的一种形式。你使用新数据更新模型的部分 weights,使其适应特定任务或领域。Inference 不会改变任何 weights,只使用模型生成预测。请参阅 fine-tuning 章节了解更多信息。