气流和 Kubeflow 管道有啥区别?

Posted

技术标签:

【中文标题】气流和 Kubeflow 管道有啥区别?【英文标题】:What are the differences between airflow and Kubeflow pipeline?气流和 Kubeflow 管道有什么区别? 【发布时间】:2020-03-21 14:18:39 【问题描述】:

机器学习平台是商业中的流行语之一,以促进开发 ML 或深度学习。

workflow orchestratorworkflow scheduler 有一个通用部分,可帮助用户构建 DAG、安排和跟踪实验、作业和运行。

很多机器学习平台都有工作流编排器,比如Kubeflow pipeline、FBLearner Flow、Flyte

我的问题是气流和 Kubeflow 管道或其他 ML 平台工作流编排器之间的主要区别是什么?

而且气流支持不同语言的 API 并且拥有庞大的社区,我们可以使用气流来构建我们的 ML 工作流吗?

【问题讨论】:

【参考方案1】:

您绝对可以使用 Airflow 来编排机器学习任务,但您可能希望通过操作员远程执行 ML 任务。

例如,Dailymotion 使用 KubernetesPodOperator 为 ML 任务扩展 Airflow。

如果您没有资源自己设置 Kubernetes 集群,您可以使用具有 Airflow 运算符的 ML 平台,例如 Valohai。

在生产环境中进行机器学习时,理想情况下,您还希望对模型进行版本控制,以跟踪每次执行的数据、代码、参数和指标。

您可以在Scaling Apache Airflow for Machine Learning Workflows找到有关本文的更多详细信息

【讨论】:

谢谢你的回复,看来我需要升级我的中号了,有没有其他的链接,可以参考一下。如何在 hadoop 上构建我们的 ML 管道 抱歉链接。我更新了一个 Medium 朋友链接,以便您现在可以访问它。 Airflow 有利于创建工作流程,但随后可以远程完成工作。您可以使用不同的执行器和操作员来执行此操作,以便在其他平台(spark...)或基础架构(kubernetes 集群...)上启动工作【参考方案2】:

我的问题是气流和气流之间的主要区别是什么 Kubeflow 管道或其他 ML 平台工作流编排器?

Airflow 管道在 Airflow 服务器中运行(如果任务过于占用资源,可能会导致其停机),而 Kubeflow 管道在专用的 Kubernetes pod 中运行。此外,Airflow 管道被定义为 Python 脚本,而 Kubernetes 任务被定义为 Docker 容器。

而且airflow支持不同语言的API并拥有庞大的社区, 我们可以使用气流来构建我们的机器学习工作流程吗?

是的,您可以,例如,您可以使用 Airflow DAG 在 Kubernetes pod 中启动训练作业以运行模拟 Kubeflow 行为的 Docker 容器,您会错过 Kubeflow 的一些 ML 特定功能,例如模型跟踪或实验。

【讨论】:

Kubernetes 组件可以直接在 python / jupyter 中指定 - 而不仅仅是容器。也就是说,用户无需担心后台发生的 docker。虽然我想他们可以,如果他们愿意的话。

以上是关于气流和 Kubeflow 管道有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

KubeFlow 上的 TFServing 和 KFServing 有啥不同

同一个 GCP 项目中的 Kubeflow 管道存储访问错误?

如何将 OutputPathPlaceholder 与带有 Kubeflow 管道的字符串连接起来?

从 Kubeflow 管道运行中获取实验名称

Kubeflow 管道终止通知

如何连接 kubeflow 管道组件