什么是LLMOps?
大型语言模型运营(LLMOps)包括在生产环境中操作管理大型语言模型所使用的实践、技术和工具。
最新的LLM进展,如OpenAI的GPT、Google的Bard和Databricks的Dolly等发布,正在推动企业构建和部署LLM的显著增长。这导致了需要建立如何操作化这些模型的最佳实践。LLMOps允许对大型语言模型进行高效部署、监控和维护。与传统的机器学习运维(MLOps)一样,LLMOps需要数据科学家、DevOps工程师和IT专业人员的协作。您可以在这里学习如何构建您自己的LLM。
大型语言模型(LLMs)是一类新型的自然语言处理(NLP)模型,它们在一系列任务上远远超越了以前的技术水平,从开放式问答到摘要生成,甚至到遵循几乎任意指令。通常情况下,机器学习运维(MLOps)的操作要求也适用于LLMOps,但在训练和部署LLMs方面存在挑战,需要采用独特的LLMOps方法。
LLMOps与MLOps有何不同?
为了调整MLOps(机器学习运维)实践,我们需要考虑随着LLMs(大型语言模型)的出现,机器学习(ML)工作流和需求发生了哪些变化。关键考虑因素包括:
- 计算资源:训练和微调大型语言模型通常涉及对大数据集执行数量级更多的计算。为了加速这个过程,通常会使用像GPU这样的专用硬件来进行更快的数据并行操作。对于训练和部署大型语言模型来说,获得这些专用的计算资源变得至关重要。推断的成本也可以使模型压缩和蒸馏技术变得重要。
- 迁移学习:与许多传统的ML模型不同,许多大型语言模型是从基础模型开始,并通过新数据进行微调以提高在更具体领域的性能。微调允许使用更少的数据和更少的计算资源实现特定应用的最先进性能。
- 人类反馈:训练大型语言模型的主要改进之一是通过人类反馈进行强化学习(RLHF)。更一般地说,由于LLM任务通常非常开放,来自应用程序最终用户的人类反馈通常对于评估LLM性能至关重要。在LLMOps管道中集成此反馈循环既简化了评估,又提供了未来LLM微调的数据。
- 超参数调整:在传统ML中,超参数调整通常集中在提高准确性或其他指标上。对于LLMs,调整也变得重要,以降低训练和推断的成本和计算能力要求。例如,微调批处理大小和学习率可以显着改变训练的速度和成本。因此,传统ML模型和LLMs都受益于跟踪和优化调整过程,但侧重点不同。
- 性能指标:传统的ML模型具有非常明确定义的性能指标,如准确性、AUC、F1分数等,这些指标相对容易计算。然而,在评估LLMs时,需要考虑一整套不同的标准指标和评分方法,如双语评估衡量(BLEU)和面向回忆的测量法用于意图评估(ROUGE),在实施时需要额外考虑。
- 提示工程:遵循指令的模型可以处理复杂的提示或一组指令。工程这些提示模板对于从LLMs获得准确可靠的响应至关重要。提示工程可以降低模型幻觉和提示入侵的风险,包括提示注入、敏感数据泄漏和越狱。
- 构建LLM链或管道:LLM管道是使用诸如LangChain或LlamaIndex等工具构建的,它们将多个LLM调用串联在一起,或者调用外部系统,例如矢量数据库或Web搜索。这些管道允许LLMs用于复杂任务,如知识库问答或基于一组文档回答用户问题。LLM应用程序开发通常侧重于构建这些管道,而不是构建新的LLMs。
为什么需要LLMOps?
尽管在原型设计中使用LLMs特别简单,但在商业产品中使用LLM仍然存在挑战。LLM开发生命周期包括许多复杂组件,如数据摄取、数据准备、提示工程、模型微调、模型部署、模型监控等等。它还需要在团队之间进行协作和交接,从数据工程到数据科学再到机器学习工程。需要严格的操作规范来确保所有这些过程同步运作并协同工作。LLMOps包括LLM开发生命周期的实验、迭代、部署和持续改进。
从LLMOps中能获得什么好处?
LLMOps的主要好处包括效率、可伸缩性和风险降低。
- 效率:LLMOps使数据团队能够更快地开发模型和管道,交付更高质量的模型,并更快地部署到生产环境中。
- 可伸缩性:LLMOps还实现了大规模的可伸缩性和管理,可以监督、控制、管理和监控数千个模型,以实现持续集成、持续交付和持续部署。具体来说,LLMOps提供了LLM管道的可重现性,促进了数据团队之间更紧密的协作,减少了与DevOps和IT的冲突,并加快了发布速度。
- 风险降低:LLMs通常需要进行监管审查,而LLMOps使得更具透明度和更快的响应这类请求成为可能,并确保更好地符合组织或行业的政策。
LLMOps的组成部分
LLMOps在机器学习项目中的范围可以根据项目的需求而从专注到广泛。在某些情况下,LLMOps可以涵盖从数据准备到管道生产的所有内容,而其他项目可能仅需要实施模型部署过程。大多数企业在以下方面应用LLMOps原则:
- 探索性数据分析(EDA):对数据进行初步分析,以了解其特性和潜在模式。
- 数据准备和提示工程:准备用于训练和微调模型的数据,并工程化提示,以获得准确的模型输出。
- 模型微调:对基础模型进行微调,以适应特定任务或领域,提高性能。
- 模型审查和治理:对模型进行审查和监管,确保其质量、可解释性和合规性。
- 模型推断和服务:将模型部署到生产环境中,以便进行实际的推断和应用。
- 模型监控与人类反馈:对模型性能进行监控,并集成来自应用程序最终用户的人类反馈,以改进模型。
LLMOps的最佳实践
LLMOps的最佳实践可以根据应用LLMOps原则的阶段来描述:
-
探索性数据分析(EDA):
- 通过创建可重现、可编辑和可共享的数据集、表格和可视化,迭代地探索、分享和准备数据,以支持机器学习生命周期。
-
数据准备和提示工程:
- 迭代地转换、聚合和去重数据,使数据对数据团队可见并可共享。
- 迭代地开发结构化、可靠的查询提示,用于LLMs。
-
模型微调:
- 使用流行的开源库,如Hugging Face Transformers、DeepSpeed、PyTorch、TensorFlow和JAX,来微调和改进模型性能。
-
模型审查和治理:
- 跟踪模型和管道的渊源和版本,管理这些工件和它们在生命周期中的过渡。
- 借助开源MLOps平台(如MLflow),发现、共享和跨ML模型进行协作。
-
模型推断和服务:
- 在测试和QA中管理模型刷新频率、推断请求时间和类似的生产细节。
- 使用CI/CD工具,如代码仓库和编排工具(借鉴DevOps原则),自动化预生产流水线。
- 启用带有GPU加速的REST API模型端点,用于模型服务。
-
模型监控与人类反馈:
- 创建模型和数据监控流水线,用于检测模型漂移和恶意用户行为,并设置警报。
这些最佳实践根据LLMOps原则的应用阶段有所不同,有助于确保在LLM开发生命周期的各个阶段都遵循最佳实践,以实现高效的LLMOps。
什么是LLMOps平台?
LLMOps平台为数据科学家和软件工程师提供了一个协作环境,促进了迭代式的数据探索,实时协作能力,用于实验跟踪、提示工程、模型和管道管理的功能,以及对LLMs进行控制的模型过渡、部署和监控。LLMOps自动化了机器学习生命周期中的操作、同步和监控方面的任务。