机器学习任务编排工具比较
选择任务编排工具 Airflow Luigi Argo MLFlow KubeFlow
文章插图
> Source: Author
任务编排工具和工作流程最近 , 出现了用于编排任务和数据工作流的新工具(有时称为" MLOps") 。这些工具的数量众多 , 因此很难选择要使用的工具 , 也难以理解它们的重叠方式 , 因此我们决定对一些最受欢迎的工具进行比较 。
文章插图
> Airflow is the most popular solution, followed by Luigi. There are newer contenders too, and they'
总体而言 , Apache Airflow既是最受欢迎的工具 , 也是功能最广泛的工具 , 但是Luigi是类似的工具 , 上手起来比较简单 。Argo是团队已经在使用Kubernetes时经常使用的一种 , 而Kubeflow和MLFlow满足了与部署机器学习模型和跟踪实验有关的更多利基要求 。
在进行详细比较之前 , 了解一些与任务编排相关的更广泛的概念很有用 。
什么是任务编排 , 为什么有用?较小的团队通常从手动管理任务开始 , 例如清理数据 , 训练机器学习模型 , 跟踪结果以及将模型部署到生产服务器 。随着团队规模和解决方案的增长 , 重复步骤的数量也随之增加 。可靠地执行这些任务也变得更加重要 。
这些任务相互依赖的复杂方式也在增加 。刚开始时 , 您可能需要每周或每月一次运行一系列任务 。这些任务需要按特定顺序运行 。随着您的成长 , 该管道变成具有动态分支的网络 。在某些情况下 , 某些任务会引发其他任务 , 而这些可能取决于首先运行的其他几个任务 。
可以将该网络建模为DAG(有向无环图) , 该模型对每个任务及其之间的依赖关系进行建模 。
文章插图
> A pipeline is a limited DAG where each task has one upstream and one downstream dependency at most
工作流程编排工具允许您通过指定所有任务以及它们如何相互依赖来定义DAG 。然后 , 该工具按正确的顺序按计划执行这些任务 , 然后在运行下一个任务之前重试任何失败的任务 。它还会监视进度并在发生故障时通知您的团队 。
CI / CD工具(例如Jenkins)通常用于自动测试和部署代码 , 这些工具与任务编排工具之间有很强的相似性-但也有重要的区别 。尽管从理论上讲 , 您可以使用这些CI / CD工具来编排动态的 , 相互链接的任务 , 但在一定程度的复杂性下 , 您会发现改用Apache Airflow等更通用的工具会更容易 。
[想要更多这样的文章吗? 注册我们的时事通讯 。我们每周最多共享一篇文章 , 从不发送任何形式的促销邮件] 。
总体而言 , 任何业务流程工具的重点都是确保集中 , 可重复 , 可重现和高效的工作流程:虚拟命令中心 , 用于您的所有自动化任务 。考虑到这种情况 , 让我们看看一些最流行的工作流程工具是如何叠加的 。
告诉我使用哪一个您可能应该使用:
· Apache Airflow如果您需要功能最全 , 最成熟的工具 , 则可以花时间来学习它的工作原理 , 设置和维护 。
· Luigi , 如果您需要比Airflow更轻松的学习方法 。它具有较少的功能 , 但更容易上手 。
· Argo , 如果您已经对Kubernetes生态系统进行了深入投资 , 并希望将所有任务作为Pod进行管理 , 并在YAML(而不是Python)中定义它们 。
· 如果您想使用Kubernetes , 但仍使用Python而不是YAML定义任务 , 则使用KubeFlow 。
· MLFlow , 如果您更关心使用MLFlow的预定义模式来跟踪实验或跟踪和部署模型 , 而不是寻找能够适应现有自定义工作流程的工具 。
比较表
文章插图
> (Source: Author) – For more Machine Learning Tips — Get our weekly newsletter
为了快速浏览 , 我们比较了以下方面的库:
· 成熟度:基于项目的年龄以及修复和提交的次数;
· 受欢迎程度:基于采用率和GitHub星级;
· 简洁性:基于易于注册和采用;
· 广度:基于每个项目的专业性与适应性;
· 语言:基于您与工具互动的主要方式 。
这些不是严格的基准或科学基准 , 但目的是让您快速了解这些工具的重叠方式以及它们之间的区别 。有关更多详细信息 , 请参见下面的正面对比 。
Luigi 对比 AirflowLuigi和Airflow解决了类似的问题 , 但是Luigi要简单得多 。它包含在一个组件中 , 而Airflow有多个模块 , 可以用不同的方式进行配置 。气流具有更大的社区和一些其他功能 , 但学习曲线却陡峭得多 。具体来说 , Airflow在计划方面要强大得多 , 它提供了日历UI , 可帮助您设置任务应在何时运行 。使用Luigi , 您需要编写更多的自定义代码以按计划运行任务 。
- 机器人|网络里面的假消息忽悠了非常多的小喷子和小机器人
- 跑腿|机器人“小北”上岗 让办事群众少跑腿
- 计算机学科|机器视觉系统是什么
- 机器人|外骨骼康复训练机器人助力下肢运动功能障碍患者康复训练
- 教学|机器人教学的目标方案
- 体验|VR\/AR体验、3D打印、机器人“对决”……松江这所中学人工智能创新实验室真的赞
- 输送|新时达:“用于机器人码垛的输送系统”获发明专利
- 操作|[LIVE On]黄敏贤和郑多彬充满心碎的下午:机器操作每次都不能通过测试
- 用于|用于半监督学习的图随机神经网络
- 顶级|内地高校凭磁性球体机器人首获机器人顶级会议最佳论文奖