首页>科技 >内容

K8s机器学习包Kubeflow释出1.0可简化TensorFlow和PyTorch分散式训练工作

科技2021-02-14 16:01:11
最佳答案

历经超过2年的发展,机器学习工具包Kubeflow终于发布了第一个主要版本,Kubeflow是第一个针对Kubernetes,提供可移植与可扩展的机器学习解决方案,让用户利用机器学习工作管线,调度Kubernetes上执行的複杂工作流程。Kubeflow原本称为TensorFlow Extended,是Google内部用来部署TensorFlow模型到Kubernetes的方法。

Kubeflow初始专案的开发者来自Google、思科、IBM、红帽、CoreOS以及CaiCloud,在2017年底在美国Kubecon中对外开源,之后专案便蓬勃发展,现在有来自30个组织上百位的贡献者,参与Kubeflow专案的开发。

官方提到,应用Kubeflow,用户不需要学习新概念或是平台来部署应用程式,也不需要处理Ingress或是网路凭证等问题。Kubeflow的目标是要让机器学习工程师和资料科学家,能够更容易地使用云端资源,处理机器学习工作负载。

Kubeflow 1.0提供了一组稳定版本的应用程式,提高开发者在Kubernetes上进行开发、建置、训练和部署模型的效率(下图)。这些应用程式包括Kubeflow的使用者介面Central Dashboard以及Jupyter笔记本控制器,还有用于分散式训练的Tensorflow和PyTorch运算子,同时也提供管理多重使用者的配置文件管理器,和部署升级工具kfctl。

Jupyter笔记本是资料科学家重要工具,而且为了提升实验效率,Jupyter笔记本需要与Kubernetes云端运算资源整合,以使用GPU训练更大的模型,或是平行执行多个实验。Kubeflow简化了以Kubernetes管理资源的方法,每个资料科学家或团队都可以拥有自己的命名空间,执行各自的工作负载。命名空间提供了安全性与资源隔离,在使用Kubernetes资源配额时,管理员还可以限制个人或是团队使用量。

Kubeflow还让用户能够简单地进行分散式训练,官方提到,当他们启动Kubeflow这个专案时,动机之一便是要利用Kubernetes简化分散式训练。Kubeflow提供了Kubernetes自定义资源,而这些资源会让使用TensorFlow和PyTorch进行分散式训练工作变得简单,只要定义TFJob或是PyTorch资源,自定义控制器便会自动启动并且管理所有独立的程序,并且使这些程序能够互相沟通。

接下来还会有许多工具在Kubeflow中成熟,像是建置在无伺服器管理平台Knative之上的自定义资源KFServing,可帮助用户部署和管理机器学习模型,其模型可解释性功能则正在Alpha测试中,另外,可用来定义複杂机器学习工作流程的工具Pipelines;可追蹤资料集、工作和模型的Metadata;超参数调校工具Katib,这些工具都正在beta测试中,在未来的发布版本会陆续加入Kubeflow 1.0。

免责声明:本文由用户上传,如有侵权请联系删除!