![Kubeflow:云计算和机器学习的桥梁](https://wfqqreader-1252317822.image.myqcloud.com/cover/793/33114793/b_33114793.jpg)
4.3 Kubeflow 端到端的用户案例
上一节我们讲解了Kubeflow 的用户故事,本节我们运行一个Kubeflow 端到端的用户案例,并且讲解Kubeflow 中的关键组件。
需要特别说明的是,本节的目标只是使读者对Kubeflow 端到端的用户案例和关键组件有一个大致的了解,一些概念将在后面的章节详细讲解。运行Kubeflow 端到端的用户案例的步骤如下。
第一步,使用Jupyter Notebook 定义一个端到端的机器学习案例。
本节为了展示方便,只定义了超参调优、模型训练、服务发布共3 个主要环节。创建Jupyter Notebook 可以分为3 步,具体如下。
(1)安装并导入所需的Python 库。
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_19.jpg?sign=1739265197-scoBjCv4yo49pTF4I0WnvysibZjdl4I4-0-38f46badfb25837eec477bf55fe2ce4c)
(2)定义Pipelines,分为3 步,代码如下:
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_20.jpg?sign=1739265197-SKFUAPMs9pBlMUWnBtNWWdWSSeggnGfO-0-d3d26cd02d0a0df6c499a291facb1489)
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_21.jpg?sign=1739265197-5iUizmVe76tRCGYNxK6Ud1wDwBGZ2hVl-0-a7b520b994adada3582ac85518f19321)
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_22.jpg?sign=1739265197-oXZmgVgqqdJ8l16ICHHzvdx1Z7ito0o9-0-56c2457a3a4f6dbe08165368557ba860)
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_23.jpg?sign=1739265197-FlOROCrQdLjZkOhgOpQuH31gWGkN3l4X-0-971004af777a6c4e67ffda85b5f341b6)
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_24.jpg?sign=1739265197-pjUBTpw3J9DExcDhFcRyaqeq9ikaJKP2-0-f76dee54b7c0dea02e7f874a119cce94)
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_25.jpg?sign=1739265197-TXYXn4JPIy5Fq3mlnC4NZJuM2iMGKtIC-0-7f78a088e90ba3c473769842c6e83ff4)
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_26.jpg?sign=1739265197-PoiyntDTJbK05vTjf2gL96f7GCd8yfiU-0-66be4679c92a5556ac023331884c0843)
(3)将Pipelines 提交到Kubernetes 集群中运行。
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_27.jpg?sign=1739265197-jM9x0nrRPcfUiyqhDOnxtfGqYQubGiQP-0-e87fdf7646f9fa375c8827f1708f3f7f)
第二步,通过浏览器访问Kubeflow 用户界面,如图4-2 所示。
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_28.jpg?sign=1739265197-rpyFVdK3LaeuHnQ6iPeLx2ZNAbCkcLFY-0-6ca3dc9157b8b48125736b4fc64d5c01)
图4-2 Kubeflow 用户界面
第三步,使用Notebook Servers Tab 创建一个Jupyter Notebook Server(在本案例中,Notebook 的镜像是gcr.io/kubeflow-images-public/tensorflow-1.14.0-notebook-cpu:v0.7.0),如图4-3 所示。
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_29.jpg?sign=1739265197-UoDi0h7qi8EwtgkR9l40xQS7yelIfuSr-0-8dae65e4d19c29b3cef071ec821c5118)
图4-3 创建Jupyter Notebook Server
第四步,访问并下载GitHub 的kubeflow/pipelines/samples/contrib/e2e-mnist/目录下的Notebook File 和测试图像,并且将Notebook File 上传到Kubeflow Jupyter Notebook Server上,如图4-4 所示。
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_30.jpg?sign=1739265197-Qk748KHQZRk9t9IF6uM0hHjYaCVKQ3AJ-0-09be96fb931cec35fba77c057246d322)
图4-4 上传Notebook File
第五步,运行Notebook File,创建一个端到端的MNIST Pipelines,该Pipelines 包括使用Katib 进行超参调优,使用TFJob 进行模型训练,以及使用KFServing 发布服务等。
第六步,在运行Pipelines 时,可以通过单击run link 超链接查看Pipelines 的运行状态,如图4-5 所示。
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_31.jpg?sign=1739265197-P1EGYAQJEcen7xyjPdT5mGzjt4EgUJcA-0-2d1d7044b1f6f8fcd2443d7426affc8f)
图4-5 Pipelines 的运行状态
第七步,在Pipelines 运行完成后,在所有步骤中都会有一个绿色的图标。在Kubeflow Dashboard 中选择Katib → HP → Monitor tab 命令,可以查看使用Katib 进行超参调优的结果,如图4-6 所示。
![img](https://epubservercos.yuewen.com/A22F05/17725770306722806/epubprivate/OEBPS/Images/txt006_32.jpg?sign=1739265197-JfeM1XW9vbxtuUDk7GHW6t35Ty6yJABJ-0-6fd5328759e28496f48216377f059941)
图4-6 使用Katib 进行超参调优的结果