技术指南

用于 ML 工作流程的 Apache Airflow

Apache Airflow 是一个开源平台,用于以代码形式编写、调度和监控工作流程。

概述

Apache Airflow 是一个开源平台,用于以代码形式编写、调度和监控工作流程。在机器学习中,它充当指挥者的角色,按照可靠的时间表触发数据管道、重新训练作业和批量预测。

Apache Airflow for ML Workflows 是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。

深入探讨

Airflow 于 2014 年在 Airbnb 创建,现在是 Apache 项目。它的中心抽象是 DAG:Python 中定义的任务的有向无环图,其中边设置执行顺序和依赖关系。调度程序解析这些 DAG,决定哪些任务已准备就绪,并将它们分派给执行程序和工作程序; Web UI 显示运行历史记录、日志和任务状态。对于 ML,Airflow 被广泛用作协调器而不是计算引擎:它本身并不训练模型,而是触发提取数据、验证数据、在 Spark 或 Kubernetes Pod 上启动训练作业以及部署结果等步骤。操作员和传感器让任务调用外部系统、等待文件或运行容器。它的优势在于可靠的调度、重试、回填以及对复杂的、基于时间的管道的清晰可见性。

技术洞察

Airflow DAG 只是 Python 代码,因此依赖关系是通过位移语法或任务 API 链接的运算符以编程方式表达的。调度程序不断评估每个 DAG 的调度间隔和任务依赖性,仅对上游依赖性已成功的任务进行排队。 Celery 或 Kubernetes 等执行器在分布式工作线程上运行这些任务。每个任务运行都通过状态、日志和重试逻辑进行跟踪,并且元数据存储在后备数据库中以实现全面的可审核性。

掌握 Apache Airflow 的 ML 工作流程

Apache Airflow 是一个开源平台,用于以代码形式编写、调度和监控工作流程。在机器学习中,它充当指挥者的角色,按照可靠的时间表触发数据管道、重新训练作业和批量预测。 Apache Airflow for ML Workflows 是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将 Apache Airflow for ML Workflows 视为一种操作模型,而不是单一功能:定义所需的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。

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

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

战略影响

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

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

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

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

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

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

Apache Airflow 机器学习工作流程的未来

Airflow 2.x 和 3.x 强调更快的调度程序、用于更清洁的 Python 管道的 TaskFlow API 以及数据感知调度(其中 DAG 在数据集更新而不是固定时钟上触发)。对于机器学习,期望与特征存储和事件驱动的再训练进行更紧密的耦合。 Airflow 越来越多地将自己定位为协调 dbt、Spark 和 Kubeflow 等专业工具的编排层,而不是与它们竞争,从而巩固了其作为现代数据和 ML 堆栈的调度骨干的角色。

现实世界的实施

一家媒体公司每天运行一个 Airflow DAG,用于提取用户参与日志、重新训练推荐模型并刷新服务缓存。

电子商务团队使用传感器等待供应商的数据文件进入云存储,然后再启动下游预测任务。

一家金融科技公司安排每小时批量评分工作,其中 Airflow 触发容器化模型来标记可疑交易。

逻辑更改后,数据团队使用 Airflow 回填通过新的功能工程管道重新处理数月的历史数据。

实施模式

Apache Airflow for ML 工作流程的实践

一家媒体公司每天运行一个 Airflow DAG,用于提取用户参与日志、重新训练推荐模型并刷新服务缓存。

一家媒体公司每天运行一个 Airflow DAG,用于提取用户参与日志、重新训练推荐模型并刷新服务缓存。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力提升和错误成本时,通常会获得更好的结果。

Apache Airflow for ML 工作流程的实践

电子商务团队使用传感器等待供应商的数据文件进入云存储,然后再启动下游预测任务。

电子商务团队使用传感器等待供应商的数据文件存储在云存储中,然后再启动下游预测任务。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力增益和错误成本时,通常会获得更好的结果。

Apache Airflow for ML 工作流程的实践

一家金融科技公司安排每小时批量评分工作,其中 Airflow 触发容器化模型来标记可疑交易。

一家金融科技公司安排每小时的批量评分工作,其中 Airflow 触发容器化模型来标记可疑交易。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力提升和错误成本时,通常会得到更好的结果。

Apache Airflow for ML 工作流程的实践

逻辑更改后,数据团队使用 Airflow 回填通过新的功能工程管道重新处理数月的历史数据。

逻辑更改后,数据团队使用 Airflow 回填通过新的功能工程管道重新处理数月的历史数据。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。

风险与防护栏

!

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

!

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

!

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

实施路线图

1

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

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

2

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

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

3

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

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

4

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

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

不断探索