Airflow 是现代 MLOps 堆栈的核心,负责编排整个机器学习生命周期。
使用 Airflow 进行机器学习运维(MLOps)
机器学习运维(Machine Learning Operations,简称 MLOps)是一个广义术语,涵盖了在生产环境中运行机器学习模型所需的所有内容。MLOps 是一个快速发展的领域,拥有众多不同的最佳实践和行为模式,而 Apache Airflow 为所有环节提供了与工具无关的编排能力。MLOps 的一个新兴子集是大语言模型运维(Large Language Model Operations,简称 LLMOps),其重点是围绕 GPT-4 或 Command 等大型语言模型的应用构建流水线。
以下视频展示了使用 Airflow 和 Weaviate 创建自动 RAG 流水线的示例,该流水线会从新闻文章中摄取并嵌入数据,并提供交易建议。你可以在此示例中找到源码 这里。
为什么在 MLOps 中使用 Airflow?
Airflow 是编排 MLOps 工作流的热门选择,因为它是
- Python 原生:使用 Python 代码定义 Airflow 流水线,这使得轻松集成最流行的机器学习工具并将你的 ML 操作嵌入最佳实践的 CI/CD 工作流成为可能。通过使用 TaskFlow API 的装饰器,你可以将现有脚本转换为 Airflow 任务。
- 可扩展:Airflow 本身是用 Python 编写的,这使得它可以通过 自定义模块和 Airflow 插件进行扩展。
- 数据无关:Airflow 对数据保持中立,这意味着它可以编排任何数据流水线,无论数据格式或存储方案如何。你可以轻松接入任何新型数据存储,例如最新的向量数据库或你喜爱的关系型数据库(RDBMS),几乎不费力。
Airflow 在 MLOps 中的特性
Airflow 拥有多项关键特性,使其成为编排 MLOps 工作流的优秀选择
- 监控与告警:Airflow 附带面向生产环境的监控和告警模块,例如 Airflow 通知器、丰富的日志功能以及 Airflow 监听器。它们让你能够细粒度地控制如何监测你的 ML 操作,以及当出现问题时 Airflow 如何向你发出警报。
- 面向 Day 2 运维的特性:自动重试、复杂依赖和分支逻辑以及让流水线动态化的选项等简易特性,在编排 MLOps 流水线时产生巨大差异。Airflow 将这些功能全部内置。
- Airflow 提供者:Airflow 提供者通过额外模块扩展核心 Airflow 功能,以简化与流行数据工具的集成,包括众多流行的 MLOps 工具。你可以在此处找到活跃提供者的列表。