开源技术 * IBM 微讲堂:Kubeflow 系列(观看回放 | 下载讲义) 了解详情

在 Kubernetes 上部署并使用多框架深度学习平台

摘要

作为深度学习从业人员,您希望获得可靠性和可扩展性的同时统筹安排自己的训练作业。此外,您还希望以相同的方式在多个库中实现此目的。借助 Kubernetes 上的 Fabric for Deep Learning (FfDL),您可以通过使用支持用户以灵活方式轻而易举地利用云端的 Caffe、Torch 和 TensorFlow 等深度学习库,从而实现此目标。该平台使用分配层和编排层,促进以合理的时间量从多个计算节点上的大量数据中进行学习。资源配置层支持对异构资源进行灵活的作业管理,比如基础架构即服务 (IaaS) 云中的图形处理器 (GPU) 和中央处理器 (CPU)。

概览

训练深度神经网络又名深度学习(属于机器学习方法),既十分复杂又计算量庞大。机器学习的典型用户没有必要了解底层硬件和软件基础架构的详细信息,包括配置昂贵的 GPU 机器、安装深度学习库,以及在执行期间管理作业以处理故障和恢复。虽然用户可从 IaaS 云中轻松获取硬件并且按小时付费,但是仍然需要管理这些机器,安装所需的库,确保深度学习训练作业的灾备能力。

这就是深度学习即服务发挥作用的大好时机。在本 Code Pattern 中,我们会向您展示如何在 Kubernetes 上部署深度学习平台Fabric for Deep Learning。通过使用 Kubernetes、微服务、Helm 图表以及对象存储等云原生架构工件,我们会向您展示如何部署和使用深度学习平台 Fabric for Deep Learning。这种深度学习平台 Fabric for Deep Learning 跨越多种深度学习引擎,比如 TensorFlow、Caffe 和 PyTorch。它将云服务的灵活性、易用性以及经济性与深度学习的力量结合起来。您会发现它使用起来非常简单,通过使用 REST API,您可以根据用户需求或预算使用不同资源定制训练情况。用户由此能够关注深度学习和应用,而不是关注故障。

流程

flow

  1. FfDL 部署人员将 FfDL 代码库部署到 Kubernetes 集群上。将 Kubernetes 集群配置为使用 GPU 或 CPU 或同时适用于二者,并且能够访问可与 S3 兼容的对象存储。如果未指定,就会创建本地模拟的 S3 Pod。
  2. 部署之后,数据科学家将模型训练数据上传到可与 S3 兼容的对象存储。FfDL 假设数据已经采用不同深度学习框架规定的所需格式。
  3. 用户创建 FfDL 模型清单文件。该清单文件包含不同的字段,这些字段描述 FfDL 模型、其对象存储信息、其资源需求以及在训练和测试期间执行模型所需的多个参数(包括超参数)。然后,用户使用 CLI/SDK 或 UI 与 FfDL 互动,通过模型定义文件部署 FfDL 模型清单文件。用户启动训练作业,并监控其进程。
  4. 训练作业完成后,用户下载训练模型和相关日志。

操作说明

可在 README 中找到本 Code Pattern 的详细步骤。这些步骤将展示如何:

  1. 编译、编码和构建 Docker 镜像。
  2. 使用 Helm 安装来安装 FfDL 组件。
  3. 运行脚本为监控 FfDL 配置 Grafana。
  4. 获取 Grafana、FfDL Web UI 以及 FfDL REST API 端点。
  5. 通过使用 TensorFlow 和 Caffe,运行某些简单作业以训练卷积网络模型。

本文翻译自:Deploy and use a multi-framework deep learning platform on Kubernetes(2019-03-28)