任务编排工具和工作流程
最近,用于编排任务和数据工作流的新工具激增(有时称为“MLOps”)。这些工具的数量众多,使得选择正确的工具成为一个难题,因此我们决定将一些最受欢迎的工具进行对比。
总体而言,Apache Airflow既是最受欢迎的工具,也是功能最广泛的工具,但是Luigi等类似的工具,上手起来比较简单。Argo是团队已经在使用Kubernetes时经常使用的一种,而Kubeflow和MLFlow满足了与部署机器学习模型和跟踪实验有关的更多利基需求。
在进行详细比较之前,先了解一些涉及到任务编排(task orchestration)的核心概念。
本文来自《数据黑客》,登录官网可阅读更多精彩资讯和文章。
什么是任务编排?为什么有用?
较小的团队通常从手动管理任务开始,例如清理数据,训练机器学习模型,跟踪结果以及将模型部署到生产服务器。随着团队规模和解决方案的增长,重复步骤的数量也随之增加。可靠地执行这些任务也变得更加重要。
这些任务相互依赖的复杂程度也在增加。刚开始的时候,你可能需要每周或每月运行一次任务,这些任务按特定顺序运行。随着项目发展,这些任务变成具有动态分支的网络。在某些情况下,某些任务会引发其他任务,而这些可能取决于首先运行的其他几个任务。
可以将该网络建模为DAG(有向无环图),该模型对每个任务及其之间的依赖关系进行建模。
工作流程编排工具允许您通过指定所有任务以及它们如何相互依赖来定义DAG。然后,该工具按正确的顺序执行这些任务,然后在运行下一个任务之前重试任何失败的任务。它还会监视进度并在发生故障时通知您的团队。
CI /CD工具(例如Jenkins)通常用于自动测试和部署代码,这些工具与任务编排工具之间有很强的相似性,但也有重要的区别。即使从理论上讲,您可以使用这些CI/CD工具来编