kubeflow_Kubeflow简介
kubeflow
模型构建和训练只是支持机器学习(ML)工作流的一小部分。 您需要解决的其他问题包括将数据移植到可访问的格式和位置; 数据清理和特征工程; 分析您训练有素的模型; 管理模型版本控制; 可伸缩地为您训练有素的模型服务; 并避免训练/服务偏斜。 当工作流需要可移植且始终如一地可重复并且需要集成许多活动部件时,尤其如此。
此外,大多数这些活动会在多个工作流中重复发生,也许只是使用不同的参数设置。 通常,您正在运行一组需要以可审核和可重复的方式执行的实验。 有时,部分或全部ML工作流需要在本地运行,但是在其他情况下,使用托管云服务可能会更有效率,这使得分发和扩展工作流步骤以及并行运行多个实验变得容易。 对于“突发”工作负载,它们也往往更经济。
kubeflow_ml-model-training.png
模型训练只是典型的ML工作流程的一小部分。 (摘自机器学习系统中的隐藏技术债务 。经许可使用。)
Kubeflow帮助解决这些问题。 它是Kubernetes的开源本地平台,用于开发,协调,部署和运行可伸缩和便携式ML工作负载。 它有助于支持ML工作流生命周期中的可重复性和协作,从而允许您管理ML管道的端到端编排, 在多个或混合环境中运行您的工作流 (例如,根据上下文在本地和云构建块之间进行交换) ),并帮助您在不同的工作流程中重复使用构建基块。 Kubeflow还为ML工作流程中的可视化和协作提供支持。
Kubeflow管道是Kubeflow的新添加的组件,可以帮助您组成,部署和管理端到端(可选)混合ML工作流。 因为管道是Kubeflow的一部分,所以从原型过渡到生产时没有任何锁定。 Kubeflow Pipelines支持快速可靠的实验,其界面使在Jupyter笔记本电脑中轻松开发变得容易,因此您可以尝试许多ML技术来确定最适合您的应用程序的技术。
利用Kubernetes
在Kubernetes之上构建ML堆栈有很多优点。 无需重新实现此类集群所需的基础,例如对复制,运行状况检查和监视的支持。 Kubernetes支持生成健壮的声明性规范并构建为ML量身定制的自定义资源定义 (CRD)的能力。 例如,Kubeflow的TFJob是一个自定义资源,可轻松在Kubernetes上运行分布式TensorFlow培训作业。
Kubernetes提供了支持一致运行的ML流和实验所需的可伸缩性,可移植性和可再现性。 它有助于构建和组合可重用的工作流程步骤和ML构建块,并使得当从原型过渡到生产或从本地群集过渡到云时,可以轻松地在不同群集上运行相同的工作流程。
Kubeflow版本0.3
Kubeflow已达到0.3版 。 以下是其一些值得注意的功能:
- 支持多种机器学习框架:
与NVIDIA合作,支持NVIDIA TensorRT Inference Server ,后者支持顶级AI框架。
基于Apache Beam的批处理推断,包括对GPU的支持。 使用Apache Beam,可以轻松编写在各种执行引擎上运行的批处理和流数据处理作业。
JupyterHub安装,笔记本安装中包含许多常用的库和小部件。
声明式和可扩展的部署:一个新的命令行部署实用程序kfctl.sh以及一个基于Web的启动器 (在Alpha中,当前用于在Google Cloud Platform上进行部署)。
Kubebench ,思科的框架,用于在Kubeflow上对ML工作负载进行基准测试。
Kubeflow管道 ,将在下面详细讨论。
TFX支持
TensorFlow Extended (TFX)是基于TensorFlow的平台,用于生产中的高性能机器学习,最初设计用于Google内部使用,但现在主要是开源的。 您可以在“ TFX:基于TensorFlow的生产规模机器学习平台 ”中找到概述。 几个Kubeflow管道示例包含TFX组件作为构建块,包括使用TensorFlow转换 , TensorFlow模型分析 , TF数据验证和TensorFlow服务 。 TFX库也与Kubeflow的JupyterHub安装捆绑在一起。
建立和运行Kubeflow管道
Kubeflow Pipelines为Kubeflow添加了对构建和管理ML工作流的支持。 使用SDK可以轻松地通过Python代码定义管道,并可以从Jupyter笔记本构建管道。
指定管道后,您可以将其用作多个实验的基础,每个实验都可以进行多个(可能是预定的) 运行 。 您可以利用已经定义的管道步骤(组件)和管道,也可以构建自己的管道。
从Kubeflow仪表板访问的Pipelines UI,使您可以轻松地指定,部署和监视管道和实验,并检查运行输出。
kubeflow_pipeline-configuration.png
检查管道步骤的配置。
kubeflow_pipeline-logs.png
检查管道步骤的日志。
kubeflow_launching-tensorboard.png
管道用户界面集成了对启动TensorBoard的支持,以监视步骤的输出。
kubeflow_tensorboard-dashboard.png
Tensorboard仪表板示例。
从Jupyter笔记本构建和使用管道
Pipelines SDK包括从Jupyter笔记本构建和运行管道的支持-包括直接从指定其功能的Python代码构建和编译管道的能力,而无需离开笔记本。 有关更多详细信息,请参见此示例笔记本 。
下一步是什么
Kubeflow的下一个主要版本0.4将于2018年底发布。这是我们正在致力于的一些关键领域:
易于使用:为了使数据科学家更容易使用 Kubeflow,我们希望无需学习Kubernetes就可以执行常见的ML任务。 在0.4中,我们计划提供更多工具,以使数据科学家可以轻松地完全从笔记本电脑训练和部署模型。
模型跟踪:跟踪实验是数据科学家和ML工程师辛劳的主要来源。 在0.4中,我们计划通过提供用于跟踪模型的简单API和数据库来简化跟踪模型。
生产准备就绪:使用0.4时,我们将通过将PyTorch和TFJob运算符升级为beta来继续将Kubeflow推向生产就绪状态。
学到更多
以下是一些用于了解更多信息并获得帮助的资源:
- Kubeflow的入门指南和文档
- Kubeflow示例
- Kubeflow的Slack频道
- Kubeflow讨论电子邮件列表
- Kubeflow的Twitter帐户
- Kubeflow的每周社区会议 (请加入我们!)
- Kubeflow Pipelines入门与随附示例
- 如何创建和部署Kubeflow机器学习管道
- 更多Kubeflow管道示例
- Kubeflow管道文档
如果您要在12月参加西雅图KubeCon ,请不要错过以下课程:
- 研讨会:Kubeflow端到端: Amy Unruh和Michelle Casbon撰写的GitHub问题总结
- Jeremy Lewi和Hamel Husain 使用Kubeflow使用GitHub进行自然语言代码搜索
- 环保的机器学习:Kubeflow生态系统如何自我引导作者:Peter McKinnon
- 深潜: Jeremy Lewi和David Aronchick的Kubeflow BoF
- Jay Smith将机器学习作为代码
Amy Unruh和Michelle Casbon将于12月10日至13日在西雅图的KubeCon + CloudNativeCon North America 上端到端展示Kubeflow:GitHub问题总结 。
翻译自: https://opensource.com/article/18/12/introduction-kubeflow
kubeflow