本文已发布一年以上。较旧的文章可能包含过时的内容。请检查页面中的信息自发布以来是否已变为不正确。
宣布 Kubeflow 0.1 版本
自上次见面以来
自从在上次 KubeCon+CloudNativeCon 上首次宣布 Kubeflow 以来,我们对在 Kubernetes 上构建出色的 ML 堆栈的热情感到惊讶和高兴。短短五个多月,Kubeflow 项目 现在拥有
- 70 多位贡献者
- 20 多个贡献组织
- 15 个存储库
- 3100 多个 GitHub 星标
- 700 多次提交
并且已经跻身 有史以来 GitHub 项目的前 2%。
人们也很乐于讨论 Kubeflow! Kubeflow 社区还在世界各地举办了数千人参加的见面会、演讲和公开会议。在所有这些帮助下,我们已经开始在 ML 的每一步都取得实质性进展,从构建您的第一个模型一直到构建可用于生产、可大规模部署的模型。最终,我们的使命保持不变:我们希望通过为数据科学家和软件工程师提供易于使用、可移植且可扩展的 ML 堆栈,让他们专注于自己擅长的事情。
Kubeflow 0.1 介绍
今天,我们很自豪地宣布 Kubeflow 0.1 的发布,它提供了一组最基本的软件包,可以开始开发、训练和部署 ML。只需几个命令,您就可以获得
- Jupyter Hub - 用于协作和交互式训练
- 具有本机分布式训练的 TensorFlow 训练控制器
- 用于托管的 TensorFlow Serving
- 用于工作流的 Argo
- 用于复杂推理和非 TF 模型的 SeldonCore
- 用于反向代理的 Ambassador
- 使其可以在任何地方的任何 Kubernetes 上运行的连接
要开始使用,它和以前一样简单
# Create a namespace for kubeflow deployment
NAMESPACE=kubeflow
kubectl create namespace ${NAMESPACE}
VERSION=v0.1.3
# Initialize a ksonnet app. Set the namespace for its default environment.
APP_NAME=my-kubeflow
ks init ${APP_NAME}
cd ${APP_NAME}
ks env set default --namespace ${NAMESPACE}
# Install Kubeflow components
ks registry add kubeflow github.com/kubeflow/kubeflow/tree/${VERSION}/kubeflow
ks pkg install kubeflow/core@${VERSION}
ks pkg install kubeflow/tf-serving@${VERSION}
ks pkg install kubeflow/tf-job@${VERSION}
# Create templates for core components
ks generate kubeflow-core kubeflow-core
# Deploy Kubeflow
ks apply default -c kubeflow-core
就是这样! JupyterHub 已部署,因此我们现在可以使用 Jupyter 开始开发模型。一旦我们有了构建模型的 Python 代码,我们就可以构建 Docker 镜像,并通过运行以下命令,使用我们的 TFJob 运算符来训练我们的模型
ks generate tf-job my-tf-job --name=my-tf-job --image=gcr.io/my/image:latest
ks apply default -c my-tf-job
We could then deploy the model by doing
ks generate tf-serving ${MODEL_COMPONENT} --name=${MODEL_NAME}
ks param set ${MODEL_COMPONENT} modelPath ${MODEL_PATH}
ks apply ${ENV} -c ${MODEL_COMPONENT}
只需几个命令,数据科学家和软件工程师现在就可以创建更复杂的 ML 解决方案,并专注于他们最擅长的事情:回答业务关键问题。
社区贡献
如果没有社区中每个人的巨大帮助,我们不可能走到今天这一步。我们要强调的一些具体贡献包括
- Argo 用于管理 ML 工作流
- Caffe2 运算符 用于运行 Caffe2 作业
- Horovod & OpenMPI 用于改进 TensorFlow 的分布式训练性能
- 身份感知代理,它支持使用身份而不是 VPN 和防火墙来保护您的服务
- Katib 用于超参数调整
- Kubernetes 卷控制器,它使用 Kubernetes 集群中的卷和卷源提供基本的卷和数据管理。
- Kubebench 用于 HW 和 ML 堆栈的基准测试
- Pachyderm 用于管理复杂的数据管道
- PyTorch 运算符 用于运行 PyTorch 作业
- Seldon Core 用于运行复杂的模型部署和非 TensorFlow 服务
社区为所有这些项目(以及更多项目)的实现提供了多大的帮助,怎么强调都不为过。一些贡献公司包括:阿里巴巴云、蚂蚁金服、才云、Canonical、思科、Datawire、戴尔、GitHub、Google、Heptio、华为、英特尔、微软、Momenta、One Convergence、Pachyderm、Project Jupyter、Red Hat、Seldon、Uber 和 Weaveworks。
了解更多
如果您想试用 Kubeflow,我们为您提供了许多选项
- 您可以使用 Katacoda 上托管的示例演练
- 您可以按照 示例存储库中现有模型的指导教程进行操作。其中包括GitHub 问题摘要、MNIST 和 使用代理的强化学习。
- 您可以在您自己的集群上启动并尝试您自己的模型。任何 Kubernetes 一致性集群都将支持 Kubeflow,包括来自贡献者 才云、Canonical、Google、Heptio、Mesosphere、Microsoft、IBM、Red Hat/Openshift 和 Weaveworks 的集群。
在 KubeCon + CloudNativeCon EU 2018 上也有一些关于 Kubeflow 的会议。以下是演讲的链接;相关视频将在未来几天发布。
5 月 2 日星期三
5 月 3 日星期四
5 月 4 日星期五
下一步是什么?
我们的下一个主要版本是今年夏天发布的 0.2。在此版本中,我们期望实现以下新功能
- 通过引导容器简化设置
- 改进的加速器集成
- 支持更多的 ML 框架,例如 Spark ML、XGBoost、sklearn
- 自动缩放的 TF Serving
- 程序化数据转换,例如 tf.transform
但最重要的功能是我们尚未听到的。请告诉我们!以下是一些让您发出声音的选项
- Kubeflow Slack 频道
- Kubeflow-discuss 邮件列表
- Kubeflow Twitter 帐户
- 我们的每周社区会议
- 请下载并运行 kubeflow,并提交错误!