Kubeflow:云计算和机器学习的桥梁
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.2 Kubeflow 的用户故事

Kubeflow 社区的项目支持将端到端的机器学习运行到Kubernetes 云平台上,本节通过一个完整的用户案例讲解Kubeflow 的几个主要组件,以及Kubeflow 社区中的技术栈是如何融合在一起协同工作的。

Kubeflow在安装时默认创建Kubeflow Jupyter Notebook Hub,用户可以使用Kubeflow Jupyter Notebook Hub 创建一个Jupyter Notebook,在Jupyter Notebook 中创建机器学习项目,进行超参调优、模型训练等操作。Kubeflow Jupyter Notebook Hub 支持多个用户同时使用Jupyter Notebook。

用户可以使用Jupyter Notebook 调用Pipelines 的API 来完成数据预处理、超参调优、模型训练和服务发布等端到端的机器学习工作流,如图4-1 所示。Pipelines 是基于Argo运行的,可以直接使用Argo 查看日志和一些特定的参数,并且根据这些参数分析模型;可以管理和控制机器学习工作流;可以观察机器学习工作流的进度;等等。可以使用Kubeflow Katib 进行超参调优。可以使用Kubeflow 社区中的Operator(如TFJob、PyTorchJob 等)在Kubernetes 集群中进行分布式的快速模型训练。

img

图4-1 Kubeflow 端到端的机器学习工作流

在模型训练完成后,可以使用KFServing 进行服务发布,在Jupyter Notebook 中,可以直接调用KFServing SDK 的客户端API。KFServing 支持服务的升级、业务量的分流等。可以使用KFServing API 监控、更新、删除服务等。KFServing 提供了一个Kubernetes自定义资源,名为InferenceService,用于在任意机器学习框架上为机器学习模型提供服务。

至此,适用于大多数场景的机器学习端到端的解决方案已经形成,除了描述的场景,还有很多特殊需求,如硬件环境的使用和控制、用户权限的管理和认证等,这些需求在Kubeflow 的Roadmap 中已有规划,部分已经在实现过程中了。