谷歌发布Kubeflow 0.1版本,基于Kubernetes的机器学习工具包


【编者的话】Google 发布 Kubeflow 开源工具,旨在让数据科学家充分利用在 Kubernetes 集群上运行机器学习任务的优势。

自从 Google 发布开源容器编排工具——Kubernetes 以来,我们已经见证了其以各种方式遍地开花的景象。随着 Kubernetes 越来越受欢迎,许多辅助项目也已经发展起来。现在,Google 发布了Kubeflow 开源工具 0.1 版本,该工具旨在将机器学习带入 Kubernetes 容器的世界。

虽然 Google 早已将 Kubernetes 迁移入 Cloud Native Computing Foundation ,但仍在积极参与该项目,发布 Kubeflow 就是很好的证明。该项目最初只是在去年底奥斯汀举办的 Kubecon 上宣布,但取得了不错反响。

在 Google 运营 Kubeflow 的 David Aronchick,加入Kubeflow之前,已经带领了 Kubernetes 团队两年半的时间。 他表示,该项目背后的想法是让数据科学家充分利用在 Kubernetes 集群上运行机器学习任务的优势。Kubeflow 可以让机器学习团队将现有任务轻松放到集群中运行,而无需作出太多改变。

随着今天的 0.1 版本的发布,该项目将开始推进,并将通过博客公布里程碑,将稳定性提高到一个新的水平,同时还会增加大量社区一直呼吁的新功能。其中包括为 Jupyter Hub 提供用于机器学习任务的协作和交互式训练以、Tensorflow 训练及托管支持等。

Aronchick 强调说,作为一个开源项目,你可以贡献任何你喜欢的工具,而不仅仅限于 Tensorflow,尽管早期的版本确实包含了对 Google 机器学习工具的支持。随着项目进一步发展,预计会有更多额外的工具支持。

在项目最初宣布后的 4 个月内,社区发展迅速,有 70 多个贡献者,20 多个捐助组织以及 15 个 repositoriy 中的 700 多个提交。可以期待一下,可能今年夏天的某个时候就会发布 0.2 版本。

Kubeflow 0.1 简介

Kubeflow 0.1 提供了一套最精简的软件开发包,用于开发,训练和部署 ML。只需几个命令,就可以获得:
  • Jupyter Hub:用于机器学习任务的协作和交互式训练
  • TensorFlow 训练控制器:支持原生的分布式训练
  • TensorFlow 服务:用于服务托管
  • Argo:工作流
  • SeldonCore:用于复杂推断及非 TF 模型
  • Ambassador:反向代理
  • Wiring:可以使 Kubeflow 在任意 Kubernetes 上运行


下面是入门示例:
# 为 kubeflow 开发环境创建 namespace
NAMESPACE=kubeflow
kubectl create namespace ${NAMESPACE}
VERSION=v0.1.3

#初始化 ksonnet 应用,设置 namespace 为其默认环境变量

APP_NAME=my-kubeflow
ks init ${APP_NAME}
cd ${APP_NAME}
ks env set default --namespace ${NAMESPACE}

#安装 Kubeflow 组件

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}

#为核心组件创建模板

ks generate kubeflow-core kubeflow-core

#部署 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

#下面部署模型

ks generate tf-serving ${MODEL_COMPONENT} --name=${MODEL_NAME}
ks param set ${MODEL_COMPONENT} modelPath ${MODEL_PATH}
ks apply ${ENV} -c ${MODEL_COMPONENT} 

只需要几个命令,数据科学家和软件工程师就可以创建更复杂的 ML 解决方案,并专注于他们最擅长的事情:解决核心业务问题。

原文链接:Google Kubeflow, machine learning for Kubernetes, begins to take shapeAnnouncing Kubeflow 0.1(翻译:李加庆

0 个评论

要回复文章请先登录注册