机器学习工程师会喜欢的5个Kubeflow 1.3新功能 - thenewstack


Google 的Kubeflow 1.3是最流行的 Kubernetes 开源机器学习平台的最新版本。它具有许多新功能和增强功能,使机器学习操作 ( MLOps ) 变得简单易用。
Kubeflow 1.3 的五个特性使平台变得更好:
1. 简化安装
与之前的版本相比,最新版本的 Kubeflow 使安装变得极其简单明了。
如果您的 Kubernetes 集群具有支持动态配置的默认存储类以及 Kustomize 工具,则安装 Kubeflow 就像运行单个命令一样简单。

git clone https://github.com/kubeflow/manifests.git
while ! kustomize build example | kubectl apply -f -; do echo
"Retrying to apply resources"; sleep 10; done

几分钟后,然后运行以下命令将 Istio 的 Ingress-Gateway 端口转发到本地端口。
kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80

您应该能够访问仪表板。
 
2. 支持多种开发环境
使用 Kubeflow 1.3,您可以启动运行JupyterVisual Studio CodeRStudio的 Notebook Server 。这为数据科学家和 ML 开发人员提供了 IDE 的选择。
Kubeflow Notebook Server 实例转换为在 Kubernetes 中运行的 StatefulSet。您可以自定义用于部署 NoteBook Server 的映像。使用特定于 IDE 环境的基础映像,您可以使用开发所需的库和模块创建 Dockerfile。然后,基于自定义映像,您可以启动具有数据科学实验所需的完整环境和工具的 Notebook Server。
 
3. 来自 Web UI 的 Kubernetes 卷管理
存储和卷管理是 MLOps 的重要组成部分。共享持久卷 (RWX) 和专用卷 (RWO) 使数据科学家能够在 MLOps 管道的多个阶段轻松共享数据集和模型。
 
4. TensorBoard 与 Kubeflow 的集成
Kubeflow 1.3 内置了对TensorBoard 的支持,这是 TensorFlow 的指标可视化工具。例如,在训练模型时,只需添加%tensorboard --logdir logs/fit到 Notebook 即可将指标保存到 PVC 内的目录中。
要可视化指标,请创建一个新的 TensorBoard 并将其指向 Notebook 中训练代码中使用的同一目录。也可以将指标存储在对象存储桶中。在MinIO 中创建的存储桶,开源的、符合 S3 API 的对象存储软件,可用于此目的。
 
5. KFServing 的多模型服务
KFServing 是 Kubeflow 的模型服务组件,针对同时服务多个模型进行了优化。在之前的版本中,KFServing为每个模型创建了一个微服务,每个副本至少消耗 0.5 个 CPU 和 0.5G 内存资源。这种方式随着请求数量的增加,会迅速消耗可用的集群资源。
使用多模型服务,一个 InferenceService 可以加载多个模型,那么每个模型的平均开销是 0.1 CPU 和 0.1GB 内存。然而,基于 GPU 的模型所需的 GPU 数量随着模型数量的增长而线性增长,这不是最佳的。
KFServing 现在支持Nvidia Triton 推理服务器,可以与多个模型共享相同的 GPU。
多模型服务功能有助于克服 Kubernetes 限制,例如每个节点的最大 Pod 数和每个集群的最大 IP 地址数。此外,它通过新的模型调度器和控制器最大化集群资源。