解开Kubeflow管道的神秘面纱第一部分:Kubernetes上的数据科学工作流程
by liam zheng on 3 September 2020
Kubeflow管道(Pipeline)是构建可移植、可扩展的机器学习工作流程最好的方式,也是更大的Kubeflow生态的一部分,旨在减少大规模训练和部署机器学习模型的复杂性和时间。
在这个系列的博客文章中,我们将介绍Kubeflow pipelines和展示了这种方法来产生可重用和可再现的数据科学。 🚀
我们将探讨为什么Kubeflow为数据科学工作流程带来了正确的标准化,然后说明了如何通过Kubeflow管道实现这一目标。
在第二部分种,我们将开始上手实践。我们也会利用Fashion MNIST数据集和基础Tensorflow示例,采用逐步方法将示例模型转换为Kubeflow管道,以便你可以执行此操作。
为什么要用Kubeflow
机器学习工作流程可能涉及许多步骤,并且如要保存所有这些步骤到笔记本或脚本中将会变得难以维护,共享和协作,这导致大量“机器学习系统中隐藏的技术债务”。
另外,这些步骤通常在不同的系统上运行。在实验的初始阶段,数据科学家将在工作站或本地训练平台上工作,大规模训练通常会在云环境(私有,混合或公有云)中进行,而推理和分布式训练则经常发生在边缘端。

容器提供了正确的封装,避免了每次开发者改变执行环境时调试的需求,且Kubernetes将容器的调度和编排带到了基础设施中。
然而,管理Kubernetes顶端的机器学习工作流程仍然是一项专门的运营工作,这也是我们不想给数据科学家添加的工作。Kubeflow弥补了在AI工作负载和Kubernetes间的间隔,使得机器学习运营更好管理。
什么是Kubeflow管道?
Kubeflow管道是Kubeflow最重要的功能之一,有望使您的AI实验具有可重复性,可组合性。例如,可互换的组件,可扩展,并且易于共享。
管道是机器学习工作流程的统一表示形式,类似于第一幅图中描述的步骤序列,其中包括工作流程的组件及其各自的依存关系。具体地说,管道是有向无环图(DAG),每个节点上都有一个容器化过程,该过程在Argo之上运行。

每个管道组件,呈现为一个区块,是一个独立的代码,通常打包为Docker镜像。它包含输入(参数),输出和管道中执行的一步。在上面管道示例中,transform_data步骤需要作为extract_data和generate_schema步骤的输出产生的参数,并且其输出是train_model的依赖项。
你的机器学习代码是被包入组件中的,你可以对组件进行:
- 指定参数——在每次运行时在仪表中可进行编辑,配置。
- 挂载持久卷——如我们的笔记本无故终止,不能添加持久卷的话,我们会丢失全部的数据。
- 指定要生成的工程文件——如方便地存储在Kubeflow仪表板内的Artifact Store中的图形,表格,选择的图片,模型。
最后,当你运行管道,根据Kubernetes调度,现在将在整个集群中执行每个容器,同时考虑到相关性。

容器化的编排使得其可简单复用,分享或随着工作流程的变化而更换组件,这种情况很常见。
在运行管道后,你能在管道接口上研究结果,调试,调整参数和通过不同参数或数据源执行的管道来进行实验。

通过这样的实验,你保存和比较运行结果,保持最佳性能的模型和工作流程的版本控制。
扩展阅读
要持续学习和实验Kubeflow和Kubeflow管道,你可以:
- 观看我们举办的研讨会
- 尝试运行Github上的Kubeflow示例
- 阅读文章Kubernetes for data science: meet Kubeflow
- 访问ubuntu.com/kubeflow
如何体验Kubeflow?
要在Windows、macOS或者Ubuntu上部署Kubeflow,可参考:
This blog series is part of the joint collaboration between Canonical and Manceps.
Visit our AI consulting and delivery services page to know more.
订阅博客文章
查看更多内容
利用开源机器学习基础架构加速 AI 发展
人工智能技术在迅速发展,对稳健强大且可扩展的基础架构具有迫切需求。为应对这些挑战,我们精心打造了一套全面的参考架构(RA),充分利用了开源工具与尖端硬件的强大功能与性能。这套架构基于 Canonical 的 MicroK8s 和 Charmed Kubeflow 构建,运行于 Dell PowerEdge R7525 服务器之上,并借助NVIDIA NIM 微服务实现加速,为部署和管理机器学习工作负载提供了一个简便高效的途径。 为数据科学家与工程师赋能 该解决方案旨在为数据科学家和机器学习工程师赋能,使其能够实现更快迭代、无缝扩展以及强有力的安全保障。对于基础架构构建者、解决方案架构师、DevOps 工程师以及首席技术官(CTO)而言,这套参考架构提供了一条畅通无阻的途径 […]
Canonical 通过 NVIDIA 企业级 AI 工厂认证
Canonical 通过 NVIDIA 企业级 AI 工厂认证设计交付 Kubernetes 平台与开源安全解决方案 参考架构加速智能代理 AI 项目上市进程 为简化企业 AI 应用路径,加速 AI 洞察向商业价值的转化,NVIDIA 近日发布 NVIDIA 企业 AI 工厂验证设计,该方案作为集成式解决方案生态,可实现与企业系统、数据源及安全基础设施的无缝连接。NVIDIA 软硬件设计模板专为现代 AI 项目定制,涵盖物理 AI 与 HPC,重点关注智能代理 AI 工作负载。 Canonical 荣膺 NVIDIA 企业级 AI 工厂验证设计生态伙伴Canonical Kubernetes 容器编排方案,支持在高性能基础设施上高效构建、部署及管理多样化且持续演进的 A […]
誏容器镜像在 “源头” 就得到安全维
软件供应链安全已成为开发者、DevOps 工程师与 IT 领导者的首要痛点。高曝光数据泄露与依赖链渗透已证实,开源组件若未经严格审计与持续维护,可能构成安全威胁。尽管容器化技术已在现代开发部署体系中普及,但其在可复现性与安全防护方面仍存在固有缺陷。 容器构建方案亟需满足以下核心要求:部署简易性、运行安全性、构建可复现性,并能长期维护以应对新型威胁——这正是 Canonical 推出容器构建服务的根本动因。 开源安全挑战 开源软件(OSS)在企业环境中的应用正变得愈发普及。分析表明,开源软件约占所有在用软件的 70%,它已然不再是一种补充性组件,而实为现代应用程序的基石。更值得关注的是,据报告显示,97% 的商业代码库已集成某些开源软件组件,这足以彰显其实际地位之关键,已 […]