谢谢您的订阅!
当新的内容发布后您将开始接收邮件。您也可以点击邮件内的链接随时取消订阅。关闭Close

解开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管道,你可以:

如何体验Kubeflow?

要在Windows、macOS或者Ubuntu上部署Kubeflow,可参考:

  1. 阅读教程
  2. 观看Youtube视频

This blog series is part of the joint collaboration between Canonical and Manceps.
Visit our AI consulting and delivery services page to know more.

订阅博客文章

订阅您感兴趣的主题

在提交此表格的同时,我确认已阅读和同意的隐私声明隐私政策。

查看更多内容

大型语言模型(LLM):定义、普及原因、训练方式

大型语言模型(LLM)是专门用于理解自然语言的机器学习模型。生成式 AI 在世界范围内被广泛采用之后,大型语言模型便广为人知,但它们的应用范围不止于聊天机器人。LLM 适合生成翻译或内容摘要。本篇博客将介绍大型语言模型 (LLM),包括其优点、挑战、出名的项目和未来发展趋势。 大型语言模型(LLM)是机器学习模型。它们通常包含深度学习的最新进展。这些模型可以执行与语言相关的任务,不只是文本生成。它们采用非常大的非结构化数据集进行训练,以学习模式并识别文本中的关系。文本可以有条件地加以提示,从而简化自然语言或代码中的有用任务。 语言模型的复杂程度各不相同。通常,LLM 指的是使用深度学习技术捕获复杂模式以生成文本的模型。它们具有大量的参数,通常使用自监督学习进行训练。大型语 […]

新吉祥物加冕礼:Noble Numbat

无论是通过民众投票、天意还是湖中仙女赐予王者之剑,登上王位的往往是声名显赫或出身高贵的人。在我们 20 周年前夕,很高兴向大家展示 Ubuntu 24.04 LTS 的吉祥物—— Noble Numbat(尊贵的袋食蚁兽)。  低微出身  说到 “尊贵”,人们可能很难首先想到来自澳大利亚的神秘有袋类动物——袋食蚁兽。不过它们的外表非常具有欺骗性。这些不可思议的濒危物种实际上是口袋大小的食蚁兽,它们完全以蚂蚁为食,依靠身体三分之一长的舌头捕捉蚂蚁。它们的背部有着黑白相间的条纹,像极了王袍,因而被选为西澳大利亚州的象征动物。袋食蚁兽象征着出身低微也能享誉世界的人。 至高成就 同样,Ubuntu 也从构建更加人性化的 Linux 这样一个初出茅庐的梦想发展成为一个备受信赖的平台 […]

基于 MicroK8s 和 Ubuntu 实时内核支持的 Intel FlexRAN 组件自动扩展

RAN 随着每一代移动通信技术的发展而不断演变,从而在用户设备和核心网络之间实现更快的数据传输。内部互连设备数量的增多使得数据量比以往任何时候都要多。至于现有的网络架构,其挑战在于处理不断增加的工作负载,以及更快地处理、分析和传输数据的能力。而对于 5G 生态系统,则需要实现 RAN 的虚拟化。第五代移动网络需要具备更大的灵活性以适应需求,具备可扩展性以满足运行时的网络条件,以及需要自动化以进行远程管理,而这些只能通过虚拟 RAN 来实现。  Intel FlexRAN 解决了传统 RAN 架构所面临的挑战。它能够从核心网络功能中将底层硬件抽象化,以实现最佳的资源利用。FlexRAN 是 O-RAN (OpenRAN) 的改进和参考实现,具有在不同供应商设备之间进行互操作 […]