模型管道工作流工具简介
在本节课中,您将了解模型流水线中的工作流工具。
模型流水线
模型流水线通常是更广泛数据平台的一部分,该平台提供数据源(如数据湖和数据仓库)以及数据存储(如应用数据库)。在构建流水线时,能够调度任务运行、确保流水线的所有依赖项已完成,并在需要时回填历史数据,是非常有用的。虽然这些任务可以手动完成,但已有多种工具被开发出来,以提升数据科学工作流的管理效率。

批处理模型流水线
本章中,我们将探讨一种批处理模型流水线,它通过依次执行一系列任务来训练并存储倾向性模型的结果。这与我们之前讨论的部署方式有所不同——之前的部署主要关注将模型预测作为Web端点提供实时服务。而在批处理过程中,你会执行一组操作,将模型结果存储下来,供后续由其他应用程序调用。例如,一个批处理模型流水线可以预测游戏中哪些用户可能流失,当用户启动会话时,游戏服务器获取该用户的预测结果,并据此提供个性化的优惠方案。

在为生产系统构建批处理模型流水线时,必须确保流水线出现的问题能被快速解决。例如,假设由于上游数据库故障,模型流水线无法获取最新的一批用户数据,此时若有一个机制能够向负责该流水线的团队发送告警,并重新运行流水线的部分环节以修复前置数据或模型输出问题,将会非常有帮助。
工作流工具
工作流工具为解决模型流水线中的此类问题提供了有效方案。使用工作流工具时,你可以定义需要完成的操作,明确各操作之间的依赖关系,然后将这些操作交由工具进行调度执行。工作流工具的主要职责包括:
- 运行任务
- 分配资源
- 监控任务状态
目前有许多开源工具可用于构建工作流,例如 Airflow、Luigi、MLflow 和 Pentaho Kettle。我们将重点介绍 Airflow,因为它已被众多企业和云平台广泛采用,且主流云服务商也提供了全托管版本的 Airflow。
本章学习目标
在本章中,我们将实现以下目标:
- 构建一个以 Docker 容器形式运行的批处理模型流水线,
- 使用 cron 在 EC2 实例上调度任务运行,
- 探索基于 Kubernetes 的托管式 cron 实现,
- 使用 Airflow 定义执行模型流水线所需的操作图谱,
- 了解云平台提供的 Airflow 服务。