Kubeflow是什么

Kubeflow是Kubernetes的机器学习(ML)工具包,Kubeflow致力于机器学习工作流在Kubernetes上部署的简单性、可移植性和扩展性。

Kubeflow建立在Kubernetes上,用于部署,扩展和管理复杂系统的系统。

https://www.kubeflow.org/docs/

Kubeflow目标不是重新创建服务,而是提供一种直接的方法来将机器学习工作流的同类最佳开源系统部署到各种基础结构中。

在运行Kubernetes的地方,都能够运行Kubeflow。机器学习必须提供与构建、训练、维护和管理模型有关的各种复杂功能,Kubernetes无疑是合适的。

下图显示了Kubeflow作为在Kubernetes上安排ML系统组件的平台:

ML工作流程简介

当开发和部署ML系统时,ML工作流程通常包括几个阶段。 

开发ML系统是一个反复的过程。 需要评估ML工作流各个阶段的输出,并在必要时对模型和参数进行更改,以确保模型不断产生所需的结果。

为简单起见,下图按顺序显示了工作流程阶段。 工作流末尾的箭头指向流程,以指示流程的迭代性质:

ML工作流程中的Kubeflow组件

下图将Kubeflow添加到工作流中,显示哪些Kubeflow组件在每个阶段都有用:

特定ML工作流程的示例

下图显示了特定ML工作流程的简单示例,可用于训练和提供在MNIST数据集上训练的模型:

用于部署和管理Kubeflow的Kubeflow Operator

Kubeflow Operator帮助部署、监视和管理Kubeflow的生命周期。 

该框架提供了一个开放源代码工具包,用于构建、测试、打包、管理Kubeflow生命周期。

Kubeflow Operator目前处于孵化阶段,建立在KfDef CR之上,使用kfctl作为Controller的核心。 

https://github.com/kubeflow/kfctl/blob/master/operator.md