MLOps 和 LLMOps 都是管理机器学习系统的方法。MLOps 致力于解决机器学习生命周期的生产问题,促进数据科学家和运营专家之间的合作,提高机器学习系统的效率和质量。LLMOps 通过结合“终身”学习扩展了 MLOps,使机器学习模型能够随着时间的推移不断地从新数据中学习和改进,从而使数据快速变化的应用程序受益。
1. MLOps
在机器学习领域,建立和部署模型仅仅是个开始。为了确保模型随着时间的推移保持准确、可靠和相关性,采用全面的 MLOps (机器学习操作)方法是至关重要的。MLOps 生命周期包括一系列阶段,这些阶段控制着整个过程,从数据收集到模监视和再训练。
1.1 数据采集
数据是任何机器学习项目的基石。数据的质量和数量极大地影响了 ML 模型的性能。数据收集阶段包括从各种来源收集相关数据,这些来源可能包括数据库、 API、网页抓取等等。
主要活动包括从不同来源收集原始数据,将数据加载到存储系统中,在那里可以访问和处理数据,并为为监督式学习任务标记数据。
在数据采集中,我们需要确保数据质量,验证数据的准确性、完整性和一致性。使用流水线自动化数据摄取并尽量减少手动错误,并且遵守隐私条例,确保数据收集符合法律标准。
1.2 数据处理
一旦数据被收集,它必须被清理和处理,以便对训练模型有用。数据处理包括将原始数据转换为适合于分析的格式。
数据处理的主要活动包括数据清理,即删除重复数据,处理丢失的值,并纠正错误;规范化、缩放和编码数据,创建可以提高模型性能的新特性。
一般地,我们使用脚本来处理日常数据清理任务,维护数据谱系并跟踪数据转换以确保可重复性,利用分布式处理框架(如 ApacheSpark)处理大型数据集。
1.3 模型训练
在这个阶段,数据科学家使用处理过的数据来训练机器学习模型。这涉及到选择适当的算法、调优超参数和评估模型性能。
模型训练的主要活动包括模型选择,即根据问题类型和数据特征选择正确的算法,优化超参数以提高模型性能,使用准确度、精确度、召回率和 F1评分等指标来评估模型的性能。
一般地,我们要对模型进行版本控制,跟踪不同版本的模型及其参数,利用 AutoML 工具简化模型选择和超参数调整,使用像 k重采样交叉验证这样的技术来确保稳健的模型评估。
1.4 模型部署
模型经过训练和评估后,需要将其部署到生产环境中,以便对新数据进行预测。部署可以确保最终用户或其他系统可以访问模型。
模型部署的主要活动包括以易于部署的格式包装模型,创建用于模型预测的 API,使用 Docker 或 Kubernetes 管理模型的大规模部署。
一般地,我们采用持续集成/持续部署方式,使部署过程自动化,以确保一致和可靠的更新。实现检测数据或概念漂移的机制,这些数据或概念漂移可能随着时间的推移而降低模型性能。同时,确保 API 和数据的安全,以防止未经授权的访问和攻击。
1.5 模型监控
模型监视对于确保已部署的模型在生产环境中继续良好运行至关重要。这个阶段包括跟踪模型性能和检测数据漂移、模型漂移和异常等问题。
模型监控的主要活动包括使用相关度量持续测量模型性能,别可能影响模型预测的输入数据分布的变化,设置性能降低警报和调试日志事件。
一般第,我们实施实时监控,以便在问题发生时及时捕捉。同时,创建反馈回路,用新数据重新训练模型。另外,使用可伸缩工具,如 Prometheus 和 Grafana 进行大规模监控。
1.6 反馈和迭代
从监测中获得的见解反馈到初始阶段。如果模型的性能恶化,数据科学家可以用新的数据重新训练模型或者探索新的算法。这种连续的反馈回路确保模型保持相关性并提供最佳结果。
通过建立一个结构化的 MLOps 生命周期,组织可以享受到以下好处:
- 更快产生价值: 自动化流程和简化模型部署导致更快的机器学习解决方案的交付。
- 改进的模型性能: 持续的监控和反馈循环确保模型保持准确和有效。
- 增强协作: MLOps 促进了数据科学家、工程师和操作团队之间的协作。
可伸缩性和治理: MLOps 实践使健壮的模型管理成为可能,并有助于扩展机器学习部署。
MLOps 是现代机器学习项目的基本实践,确保模型不仅能够高精度地开发,而且能够在生产环境中有效地部署和维护。通过遵循从数据收集到模型监控的 MLOps 生命周期,组织可以实现可靠、可扩展和高效的机器学习系统,从而推动业务价值。采用 MLOps 最佳实践将有助于数据科学家和工程师更加协作地工作,简化工作流程,并最终提供更加健壮和有效的机器学习解决方案。
2.从MLOps 到LLMOps
从机器学习运营(MLOps)的基本原理过渡到大型语言模型运营(LLMOps)的专门领域,标志着人工智能领域的重大进展。
MLOps 已经建立了一个健壮的框架,用于在生产环境中部署、监视和管理机器学习模型。它强调自动化、可重复性和可扩展性,确保机器学习模型不仅得到开发,而且随着时间的推移得到有效的维护。
LLMOps 以这些原则为基础,深入研究大型语言模型特有的复杂性。其中包括管理训练所需的大量数据集,优化模型训练和推理的计算资源,以及鉴于 大模型对信息传播和交流的深远影响,确保合规地使用到模型 。
二者之间的主要区别如下:
- 规模和复杂性: 与典型的机器学习模型相比,机器学习模型需要更多的数据和计算能力。LLMOps 通过利用基于云的解决方案、分布式计算和专门的硬件加速器来满足这些需求。
图片
- 模型微调和版本控制: 考虑到预训练大模型的一般特性,针对特定任务或领域对它们进行微调是一种常见的做法。LLMOps 致力于简化这个过程,结合有效的数据注释、模型版本控制和跟踪实验的工具来迭代地完善模型。
- 伦理考虑和减少偏见: 语言和交流的普遍影响,放大了伦理考虑的重要性。LLMOps 整合了用于监测模型输出的偏倚和毒性的实践,确保负责任的使用。
- 高级工具和技术的作用: 向 LLMOps 的过渡是由一套高级工具和技术促进的,这些工具和技术旨在应对大模型的独特挑战。例如,像 Google Cloud 的 Vertex AI 这样的工具为管理大模型应用的整个生命周期提供了一个集成的平台,从数据处理和模型训练到部署和监控。
3.LLMOps
在迅速发展的人工智能领域,大模型应用已经成为创新的基石,这要归功于大模型无与伦比的理解、解释和生成人类语言的能力。然而,部署和管理这些复杂的模型充满了复杂性,包括需要大量的计算资源,管理大量的数据集,并遵守道德标准。
解决这些挑战需要一种称为LLMOps的方法。该规程是机器学习操作(MLOps)的一个关键子集,重点关注从开发到部署和持续管理的 LLM 生命周期的流线化和自动化。
下图是 LLMOps 流水线的简化表示,它随用例的变化而变化。
- 数据准备和版本控制: 这是流水线中的第一步,其中收集、清理、处理数据,并将其转换为用于训练模型的合适格式。在这里,版本控制对于跟踪不同的数据集和随时间变化的情况至关重要,可以确保模型训练中的可重复性和可靠性。
- 流水线设计(监督调整) : 一旦数据准备就绪,下一步是设计流水线,包括建立监督调整大模型的过程。这包括决定模型将如何从准备好的数据中学习,决定使用哪种机器学习算法,以及如何构造训练过程以优化模型的性能。
- 工件配置和工作流: 在这个阶段,建立了流水线的配置细节和工作流。这包括建立必要的计算资源,定义操作序列,以及为成功的模型训练和部署指定标准。
- 流水线执行: 这是将设计的流水线付诸实施的地方。模型使用准备好的数据完成训练过程,系统自动执行预定义的工作流。这种自动执行确保了模型得到一致和有效的训练。
- 部署大模型: 在对模型进行训练和评估之后,将其部署到生产环境中。这可能意味着将模型集成到应用程序中,将其设置为响应 API 调用,或者将其提供给最终用户。
- 提示和预测: 随着 LLM 的部署,现在可以提示它生成预测。这包括向模型提供输入(提示)和接收输出(预测) ,输出基于从训练数据中学习的模式。
- 有责任的人工智能: 最后一步是对已部署的 LLM 进行持续监测和管理,以确保其在道德准则范围内运作。这包括检查模型预测的偏差、公平性和整体社会影响,确保它符合负责任的人工智能原则。
每个步骤都是相互关联的,形成了一个内聚的流水线,确保 LLM 得到有效和负责任的开发、部署和管理。
3.1 数据准备和版本控制
在部署大模型的过程中,最初也许是最关键的一步是准备数据。这个基础阶段为模型的后续表现及其准确解释和生成人类语言的能力奠定了基础。此外,精炼数据和模型体系结构的迭代过程才是真正使这些模型能够随着时间的推移实现和维护其显著能力的原因。
数据准备是一个多方面的过程,包括收集、清洗、预处理和将原始数据转换成适合训练 LLM 的结构化格式。这一过程至关重要,原因如下:
- 质量和相关性: 确保数据的质量和相关性至关重要。高质量的数据导致更有效的训练,允许 LLM 生成更准确的、与上下文相关的输出。例如,请考虑为用于汇总电子邮件的 LLM 准备数据集的过程。数据必须被仔细地清理和格式化,确保不相关的信息,如电子邮件标题或签名,被排除在训练集之外。
如果数据已经在数据仓库中,像 Google Vertex AI 这样的平台提供了创建数据集的必要工具,包括处理 sql 查询。在处理(大型)数据时,需要进行查询优化,以节省时间和资源并创建必要的过滤器。LLM 的指令已经被证明可以改进模型性能和对未知任务的泛化。
将数据分成训练集和评估集两部分。默认情况下,使用80/20分割。
训练和评估的文件格式:
- JSON 是一种简单的基于文本的格式,每个问题和答案都放在一行中。它是人类可读的,是中小型数据集的理想选择。
- TFRecord: 二进制格式,易于计算机阅读,是高效训练的理想选择。
- Parquet:Parquet 是一个很好的选择,为大型和复杂的数据集。
版本控制数据很重要。它允许机器学习模型的可重复性、可追溯性和可维护性。
- 减轻偏差: 仔细的数据准备允许识别和减轻偏差,确保模型的输出在不同的人口统计学和场景中是公平和无偏见的。
- 效率: 准备适当的数据可以显著提高训练效率,减少所需的时间和计算资源。
3.2 LLMOps 中的自动化、编排和流水线
大型语言模型(LLM)的部署和运营操作需要一个复杂的框架来处理它们的复杂性和规模。自动化、编排和流水线构成了这个框架的主干,简化了从数据准备到 LLMOps 景观中的模型部署和监控的每一步。
图片
3.2.1 LLMOps 中的自动化应用
LLMOps 中的自动化是指利用技术以最少的人为干预来执行任务,提高效率并减少出错的可能性。它包括广泛的操作,包括数据预处理、模型训练和性能监视。
自动化的好处:
- 一致性和可靠性: 自动化过程确保任务的统一执行,减少可变性,提高模型输出的可靠性。
- 可伸缩性: 自动化允许伸缩操作来处理训练和微调 LLM 所需的大量数据,以适应模型的增长,而不必成比例地增加时间或资源。
- 速度: 通过自动化重复性任务,组织可以显著加快 LLM 的开发和部署周期,从而实现更快的迭代和改进。
3.2.2 编排 LLMOps 流水线
LLMOps 中的编排涉及到协调各种自动化任务,以确保它们以精确、高效的方式执行。它包括管理任务之间的依赖关系,处理资源分配,确保数据在模型生命周期的不同阶段无缝流动。
编排的关键因素包括:
- 工作流管理: 编排工具管理任务序列,确保在成功完成前面的任务时触发每个步骤。
- 资源优化: 有效的编排包括在最需要的地方分配计算资源,优化基础设施的使用,以平衡性能和成本。
- 错误处理和恢复: 协调器监视故障流水线,根据需要自动重试或重新路由任务,以维持工作流的连续性。
3.2.3实施 LLMOps 流水线
LLMOps 中的流水线是定义好的任务序列,可以自动化部署 LLM 的端到端过程。这些流水线集成了自动化和编制的各种组件,提供了管理模型开发、部署和监视的结构化方法。
LLMOps 流水线说明:
- 数据处理: 自动脚本预处理和清理数据,为训练做准备。
- 模型训练和评估: 模型在处理过的数据上自动训练、评估和反复调整。
- 部署: 一旦模型满足性能标准,就通过自动化脚本将其部署到生产环境中。
- 监测和维护:部署后,模型的性能将被持续监控,并对异常或性能下降发出自动警报。
流水线是编排的一组组件。构建和实现流水线(例如: KubeFlow 流水线),可以让你定义执行的顺序以及数据如何从一个步骤流向另一个步骤。流水线被编译成 yaml 文件,比如“ pipeline.yaml”。一旦创建了流水线文件,任何人都可以在任何类型的环境(云或本地)中执行它。
3.3 部署大模型及应用
部署大模型是 LLMOps 过程的重心,在这个过程中,模型已经为实际应用做好了准备。部署策略的选择必须考虑到模型的预期用途,无论它是需要实时交互还是能够在定期的批量更新中起作用。
一般地, LLM 的部署策略包括:
- 批量部署: 在实时处理不重要的场景中,批量部署是一种可行的策略。在这里,数据,例如在一个设定的时期内收集的客户评论(例如,前一周) ,是大批量处理的。经过训练的模型对这些累积的数据进行预测,允许每隔一段时间进行全面的分析和洞察。这种方法对于不需要立即响应并且可以在非高峰时间安排以优化资源利用的任务特别有用。
- 使用 REST API 的实时部署: 对于需要即时反馈的应用程序,通过 REST API 部署 LLM 是理想的。该策略支持与最终用户的实时交互,其中用户界面通过一个 REST API 与后端服务通信,该 API 将请求中继到模型并立即返回响应。这样的设置对于像 ChatGPT 这样的人工智能会话模型来说是典型的,用户需要即时和交互式的通信。
- 提示和预测: 生产数据与训练数据相同是非常重要的。数据的差异会影响模型的性能。
- 负责任的人工智能: 回应还应该包括安全分数。这些分数可以用来确保 LLM 的响应在预期行为的范围内。一个典型的 LLMOps 平台可以处理这些问题,比如 Google Vertex AI。
3.4 部署后管理
在部署大型语言模型(LLM)之后,重点转移到确保它们在操作中保持健壮、有效和合乎道德。这个阶段对于维护性能标准和适应不断变化的需求和用户交互是至关重要的。部署后管理涉及以下几项关键的活动。
3.4.1 包、部署和版本
正确的版本控制和 LLM 打包对于跟踪更改、重现结果以及在必要时回滚到以前的版本至关重要。这种实践促进了模型的可控部署,并支持为不同的用例或环境维护多个版本。
3.4.2 模型监视: 度量与安全
持续监控对于评估模型的健康状况和部署后的性能至关重要。这包括跟踪各种指标,如响应时间、准确性和吞吐量,同时确保模型的输出保持在安全和道德准则范围内。监测工具可以提醒从业人员注意任何偏离预期业绩或道德标准的情况,促进及时干预。
3.4.3 推理可伸缩性
推理操作的可伸缩性是适应不同负载和维护性能的关键,包括:
- 负载测试: 进行负载测试,以了解模型在不同条件下的行为,并准备峰值使用时间。
- 可控制的发布: 在全面推出之前,通过逐步引入对用户子集的更改,实施分阶段推出策略可以帮助管理新特性或模型的发布。
3.4.5 延迟管理
延迟是指模型返回预测所需的时间。这是一个关键因素,尤其是对于实时应用程序而言:
- 允许延迟: 根据应用程序的需求和用户期望确定可接受的延迟阈值。
- 更小的模型: 在可行的情况下,利用更小、更有效的模型可以减少延迟,而不会显著影响预测的质量。
- 更快的处理器: 使用高速处理器,如 GPU 或 TPU,可以加快推理时间,提高总体响应能力。
- 区域部署: 在更接近终端用户的地方部署模型,例如,在区域数据中心,可以减少网络延迟并提高响应时间。
通过精心管理这些部署后方面,组织可以确保其 LLM 有效、高效和符合道德地服务于预期目标,为用户提供价值,并保持对 AI 应用程序的信任。
图片
4. LLMOps 的一些探索实践
一些常见的LLMOps实践如下:
- 拥抱全面的数据管理: 使用工具和平台自动化数据收集、清理和预处理,确保高质量数据的稳定流动。确保使用数据版本控制工具对数据集进行版本控制,从而允许在不同数据集版本之间进行无缝转换。
- 关注AI伦理: 使用工具检测和纠正培训数据和模型输出中的偏差。确保模型易于理解和解释。这涉及到利用可解释性工具和框架来提供对模型决策的洞察力。
- 优化模型训练: 使用分布式训练技术处理 LLM 中的大规模数据和参数。定期用新数据对模型进行微调,以保持其更新和有效性。
- 优先考虑模型安全性: 使用工具检查模型的漏洞并进行定期的安全审计。定期测试模型对抗对手攻击,以确保其健壮性。
- 持续监控和维护: 使用监控工具检测模型性能随时间的变化。实现一个系统,在这个系统中,对模型输出的真实反馈可以用来细化和重新训练模型。
- 优先考虑隐私和合规性: 在培训敏感数据模型时采用差分隐私技术。通过定期进行合规检查,确保业务符合 GDPR 和 CCPA 等法规。
- 社区参与: 参与并为开源社区做出贡献,不断更新最新的进展和最佳实践。鉴于人工智能的快速发展,确保团队总是在学习和采用新的方法、工具和最佳实践。
- 灾难恢复和冗余: 定期备份模型、数据和配置,以确保在发生任何灾难时进行恢复。具有适当的冗余来处理系统故障而不影响模型可用性。
4.小结
MLOps 和 LLMOps 都强调自动化,以减少人为错误,提高机器学习系统的效率,同时确保机器学习模型符合业务和监管要求。与深度学习是机器学习的一个子集类似,LLMOps 是MLOps的一个子集。
大模型应用的开发和实现复杂性突出了 LLMOps 的重要作用。从准备数据到确保合乎预期的使用,结合了技术技能、战略规划和有责任人工智能的承诺。通过关注 LLMOps,我们可以充分利用大模型的潜力,确保它们能够有效地满足我们的需求。
【参考资料】
- Scaling Instruction-Finetuned Language Models : https://arxiv.org/pdf/2210.11416.pdf
- LlamaDuo: LLMOps Pipeline for Seamless Migration from Service LLMs to Small-Scale Local LLMs,https://arxiv.org/pdf/2408.13467.pdf
- Maximizing User Experience with LLMOps-Driven Personalized Recommendation Systems,https://arxiv.org/pdf/2404.00903.pdf
- LLMOps Course at deeplearning.ai: https://www.deeplearning.ai/short-courses/
- LLMOps Course at deeplearning.ai: https://www.deeplearning.ai/short-courses/