概述
In machine learning it acts as the conductor that triggers data pipelines, retraining jobs, and batch predictions on a reliable schedule.
深入探讨
Airflow 于 2014 年在 Airbnb 创建,现在是 Apache 项目。它的中心抽象是 DAG:Python 中定义的任务的有向无环图,其中边设置执行顺序和依赖关系。调度程序解析这些 DAG,决定哪些任务已准备就绪,并将它们分派给执行程序和工作程序; Web UI 显示运行历史记录、日志和任务状态。对于 ML,Airflow 被广泛用作协调器而不是计算引擎:它本身并不训练模型,而是触发提取数据、验证数据、在 Spark 或 Kubernetes Pod 上启动训练作业以及部署结果等步骤。操作员和传感器让任务调用外部系统、等待文件或运行容器。它的优势在于可靠的调度、重试、回填以及对复杂的、基于时间的管道的清晰可见性。
现实世界的实施
一家媒体公司每天运行一个 Airflow DAG,用于提取用户参与日志、重新训练推荐模型并刷新服务缓存。
电子商务团队使用传感器等待供应商的数据文件进入云存储,然后再启动下游预测任务。
一家金融科技公司安排每小时批量评分工作,其中 Airflow 触发容器化模型来标记可疑交易。
逻辑更改后,数据团队使用 Airflow 回填通过新的功能工程管道重新处理数月的历史数据。
Apache Airflow 机器学习工作流程的未来
Airflow 2.x 和 3.x 强调更快的调度程序、用于更清洁的 Python 管道的 TaskFlow API 以及数据感知调度(其中 DAG 在数据集更新而不是固定时钟上触发)。对于机器学习,期望与特征存储和事件驱动的再训练进行更紧密的耦合。 Airflow 越来越多地将自己定位为协调 dbt、Spark 和 Kubeflow 等专业工具的编排层,而不是与它们竞争,从而巩固了其作为现代数据和 ML 堆栈的调度骨干的角色。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
What is Apache Airflow for ML Workflows?
Apache Airflow 是一个开源平台,用于以代码形式编写、调度和监控工作流程。在机器学习中,它充当指挥者的角色,按照可靠的时间表触发数据管道、重新训练作业和批量预测。
在 Apache Airflow 中,用于定义工作流程的核心抽象是什么?
Airflow 工作流在 Python 中被定义为 DAG,其中任务是节点,边定义执行顺序。
Airflow 在机器学习管道中最常扮演什么角色?
Airflow 是一个协调器:它触发和协调数据提取和训练作业等步骤,而不是自行进行繁重的计算。
哪个 Airflow 构造用于等待外部条件,例如文件到达存储?
传感器是特殊的操作符,它们暂停工作流程直到满足条件,例如文件登陆或分区出现。
Airflow“回填”可以让您做什么?
回填会跨过去的时间间隔执行 DAG,这对于在管道逻辑更改后重新处理历史记录非常有用。
哪个 Airflow 组件决定了何时应调度符合条件的任务实例?
The scheduler evaluates schedules and task eligibility. Upstream success is the default dependency condition, while configured trigger rules can change it.