深入了解大语言模型运维 (LLMOps) [译]

深入了解大语言模型运维 (LLMOps) [译]

💡 原文中文,约7100字,阅读约需17分钟。
📝

内容提要

LLMOps 是管理大语言模型应用全生命周期的工具与最佳实践,涵盖开发、部署和维护。ChatGPT 发布后,随着 LLM 应用生产化面临独特挑战,LLMOps 逐渐兴起。其流程包括选择基础模型、通过提示工程、微调、外部数据等方式适配下游任务,以及评估和部署监控。与 MLOps 相比,LLMOps 更关注推理成本和响应时间,评估多采用 A/B 测试,提示工程需要专门管理。该领域仍在快速演变。

🔎

延伸解读

LLMOps 兴起的现实背景

文章指出,LLMOps 的流行并非偶然,而是因为 ChatGPT 发布后,大量开发者尝试将 LLM 应用投入生产,却面临与传统 ML 不同的挑战。Chip Huyen 的评论被引用:“用 LLM 打造有趣的东西很简单,但要使其达到生产就绪状态却颇具挑战。”这解释了为何需要一套新的工具和最佳实践来管理 LLM 应用的全生命周期,而不仅仅是沿用 MLOps。

基础模型选择:专有与开源的权衡

文章强调,LLMOps 的第一步是选择基础模型,而开发者需要在专有模型和开源模型之间权衡。专有模型通常规模更大、性能更优、即买即用,但 API 成本较高且灵活性受限;开源模型则成本效益更高、更灵活,但规模较小、能力相对有限。文章以 GPT-3 训练成本为例,说明从零训练基础模型只有少数机构能承担,因此选择现成模型成为主流做法。

评估与监控的特殊性

与传统 MLOps 在保留验证集上评估不同,LLMOps 中许多组织采用 A/B 测试来评估 LLM 性能,因为 LLM 的输出质量更难用固定指标衡量。此外,文章提醒,LLM 的底层 API 模型可能持续更新,导致输出结果在不同版本间显著变化,因此需要专门工具监控模型变化。这提示读者,LLM 应用的评估和监控不是一次性任务,而是需要持续关注的过程。

成本与响应时间的重心转移

文章对比指出,传统 MLOps 的主要成本在于数据收集和模型训练,而 LLMOps 的主要成本转向推理阶段,尤其是长提示带来的推理成本。同时,响应时间在 LLMOps 中尤为突出,既影响开发阶段的实验速度,也直接影响最终产品的用户体验。这一差异意味着,在 LLM 应用中,优化提示长度和推理效率可能比训练过程更值得关注。

❓

Q&A

LLMOps 是什么?它主要管理哪些方面?

LLMOps 代表大语言模型运维(Large Language Model Operations),是专为大语言模型设计的机器学习运维(MLOps)。它指一套新的工具和最佳实践,用于管理基于 LLM 的应用程序的整个生命周期,包括开发、部署和维护。

为什么 ChatGPT 发布后 LLMOps 才火起来?

早期的大语言模型如 BERT 和 GPT-2 自 2018 年就已出现,但直到 2022 年 12 月 ChatGPT 发布并引起广泛媒体关注后,各种基于 LLM 的应用(如聊天机器人、写作助手、编程助手)大量涌现。开发者发现将 LLM 应用投入生产面临独特挑战,需要新的工具和最佳实践来管理生命周期,因此 LLMOps 逐渐兴起。

LLMOps 流程中如何让预训练大模型适应下游任务?

主要方法包括:1)提示工程:通过调整输入提示来引导模型输出预期结果,可使用 LangChain 等工具管理提示模板;2)微调:在特定任务上对预训练模型进行轻量级微调,提升性能并降低推理成本;3)提供外部数据:通过 LlamaIndex、LangChain 等工具连接外部数据源,弥补模型上下文不足;4)使用嵌入(Embeddings):提取嵌入信息构建搜索、推荐等应用,可用向量数据库存储;5)其他替代方案如指令调优、模型蒸馏等。

LLMOps 和传统 MLOps 在成本和响应时间上有什么不同?

在成本方面,传统 MLOps 的主要成本在于数据收集和模型训练,而 LLMOps 的主要成本在于模型推理阶段,尤其是长提示的推理成本较高。在响应时间方面,LLMOps 中响应时间问题尤为突出,因为大语言模型完成任务的时间长度直接影响开发阶段的实验速度和最终产品的用户体验,而传统 MLOps 虽然也考虑响应时间,但不如 LLMOps 关键。

LLMOps 中如何评估大语言模型的性能?

由于大语言模型的性能更难以评估,目前许多组织倾向于使用 A/B 测试来评估模型,而不是像传统 MLOps 那样在保留的验证集上使用特定指标。此外,也出现了如 HoneyHive、HumanLoop 等专门用于评估大语言模型的工具。

LLMOps 中部署和监控大语言模型需要注意什么?

大语言模型的输出结果在不同版本之间可能会有显著变化,例如 OpenAI 为了减少不当内容而更新模型,导致输出变化。因此,构建基于 LLM 的应用时需要关注底层 API 模型的持续变化。目前已有 Whylabs、HumanLoop 等工具用于监控大语言模型。

🏷️

标签

➡️

继续阅读