Airflow 是现代 MLOps 技术栈的核心,负责协调整个机器学习生命周期。

使用 Airflow 进行机器学习运维 (MLOps)

机器学习运维 (MLOps) 是一个广义术语,涵盖了在生产环境中运行机器学习模型所需的一切。MLOps 是一个快速发展的领域,拥有许多不同的最佳实践和行为模式,而 Apache Airflow 为所有步骤提供了与工具无关的编排能力。MLOps 的一个新兴子集是大型语言模型运维 (LLMOps),它专注于围绕 GPT-4 或 Command 等大型语言模型的应用开发流水线。

以下视频展示了一个使用 Airflow 和 Weaviate 创建自动 RAG 流水线的示例,该流水线摄取并嵌入新闻文章数据,提供交易建议。您可以在此处找到此示例中展示的代码。


为什么在 MLOps 中使用 Airflow?

Airflow 是编排 MLOps 工作流的流行选择,因为它具有以下特点:

  • Python 原生:您可以使用 Python 代码定义 Airflow 流水线,这使得集成最流行的机器学习工具并将您的机器学习运维嵌入最佳实践 CI/CD 工作流变得容易。通过使用 TaskFlow API 的装饰器,您可以将现有脚本转换为 Airflow 任务。
  • 可扩展:Airflow 本身是用 Python 编写的,这使得它可以通过自定义模块Airflow 插件进行扩展。
  • 数据无关:Airflow 是数据无关的,这意味着它可以用来编排任何数据流水线,无论数据格式或存储解决方案如何。您可以轻松接入任何新的数据存储,例如最新的向量数据库或您喜欢的 RDBMS。

Airflow 在 MLOps 中的特性

Airflow 具有几个关键特性,使其成为编排 MLOps 工作流的绝佳选择:

  • 监控和告警:Airflow 配备了生产就绪的监控和告警模块,如 Airflow notifiers、广泛的日志记录功能和 Airflow listeners。它们使您能够精细控制如何监控您的机器学习运维以及在出现问题时 Airflow 如何向您发出告警。
  • Day 2 运维特性:自动重试、复杂依赖关系和分支逻辑等简单特性,以及使流水线动态化的选项,在编排 MLOps 流水线时会产生很大的影响。Airflow 内置了所有这些功能。
  • Airflow provider:Airflow provider 通过附加模块扩展了 Airflow 的核心功能,以简化与流行数据工具(包括许多流行的 MLOps 工具)的集成。您可以在此处找到活跃 provider 的列表。