技术指南

MLflow 和模型生命周期跟踪

MLflow 是一个开源平台,用于管理机器学习生命周期,从实验跟踪到模型打包和部署。

概述

MLflow 是一个开源平台,用于管理机器学习生命周期,从实验跟踪到模型打包和部署。这很重要,因为它为构建模型的混乱、迭代过程带来了秩序和可重复性。

MLflow 和模型生命周期跟踪是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。

深入探讨

MLflow 由 Databricks 创建并于 2018 年发布,它解决了一个常见的难题:数据科学家进行了数百次实验,但无法追踪哪些参数、代码和数据生成了最佳模型。 MLflow 围绕四个组件进行组织。跟踪每次运行的日志参数、指标、代码版本和输出工件,以便结果具有可比性。项目在定义的环境中以可重用、可重现的格式打包代码。模型提供了标准格式,因此可以将相同的模型部署到许多服务目标。模型注册表添加了版本控制、阶段转换(例如暂存到生产)和批准工作流程。 MLflow 与框架无关,可与 scikit-learn、PyTorch、TensorFlow、XGBoost 等配合使用,这就是为什么它成为实验管理和轻量级 MLOps 的事实上的标准。

技术洞察

MLflow Tracking 通过日志记录 API 工作:在训练脚本中,您调用函数来记录参数、指标和工件,这些参数、指标和工件将写入由数据库和工件存储支持的跟踪服务器。每次运行都会获得一个唯一的 ID,并且属于一个实验。模型格式用风味(其框架)和元数据包装经过训练的模型,因此可以通过 REST 加载或提供单个工件,而无需重写推理代码。

掌握 MLflow 和模型生命周期跟踪

MLflow 是一个开源平台,用于管理机器学习生命周期,从实验跟踪到模型打包和部署。这很重要,因为它为构建模型的混乱、迭代过程带来了秩序和可重复性。 MLflow 和模型生命周期跟踪是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将 MLflow 和模型生命周期跟踪视为一种操作模型,而不是单个功能:定义所需的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

在实践中,强大的团队使用 MLflow 和模型生命周期跟踪来根据可靠性和成本优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。

多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。

战略影响

多年来,架构决策决定着性能和运营成本。

多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

更好的工程选择可以减少生产中的可靠性事故。

更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。

MLflow 和模型生命周期跟踪的未来

MLflow 正在积极扩展到生成式 AI,增加了 LLM 应用程序的跟踪、提示管理以及链和代理的评估工具。期望对跟踪非确定性 LLM 输出、数据集和提示版本控制以及与更广泛的可观察性堆栈的集成提供更深入的支持。随着注册中心的成熟,它越来越多地充当治理中心,团队在生产环境中批准、审核和回滚经典模型和生成人工智能系统。

现实世界的实施

数据科学团队使用 MLflow Tracking 记录每次训练运行,然后在 UI 中比较数十次运行,以选择性能最佳的模型。

仅在审阅者批准转换后,保险公司才使用模型注册表将风险模型从暂存阶段升级为生产阶段。

团队以 MLflow 格式打包模型一次,然后将相同的工件部署到 REST 端点、批处理作业和云平台。

LLM 应用程序团队使用 MLflow 跟踪来记录每个调用的提示、响应和延迟,从而调试行为不当的代理。

实施模式

MLflow 和模型生命周期跟踪的实践

数据科学团队使用 MLflow Tracking 记录每次训练运行,然后在 UI 中比较数十次运行,以选择性能最佳的模型。

数据科学团队使用 MLflow Tracking 记录每次训练运行,然后在 UI 中比较数十次运行,以选择性能最佳的模型。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

MLflow 和模型生命周期跟踪的实践

仅在审阅者批准转换后,保险公司才使用模型注册表将风险模型从暂存阶段升级为生产阶段。

保险公司仅在审阅者批准过渡后才使用模型注册表将风险模型从暂存阶段推广到生产阶段。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

MLflow 和模型生命周期跟踪的实践

团队以 MLflow 格式打包模型一次,然后将相同的工件部署到 REST 端点、批处理作业和云平台。

团队以 MLflow 格式打包一次模型,然后将相同的工件部署到 REST 端点、批处理作业和云平台。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

MLflow 和模型生命周期跟踪的实践

LLM 应用程序团队使用 MLflow 跟踪来记录每个调用的提示、响应和延迟,从而调试行为不当的代理。

LLM 应用程序团队使用 MLflow 跟踪来记录每次调用的提示、响应和延迟,调试行为不当的代理。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

风险与防护栏

!

优化一项基准测试可以隐藏更广泛的系统弱点。

!

基础设施和维护成本常常被低估。

!

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

2

在实际负载和数据条件下进行基准测试。

在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

3

仪器监控错误、漂移和用户影响。

仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

4

在扩展之前准备回滚和事件响应路径。

在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。

不断探索