Watson 首席架构师专访:IBM 深度学习平台 Fabric for Deep Learning

阅读数:300 2018 年 5 月 9 日

话题:AI

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

最近,IBM 发布了深度学习平台FfDL(Fabric for Deep Learning,简称 FfDL),它是在 Kubernetes 上基于微服务的平台,用于

  • 深度学习模型训练
  • 开放深度学习 API
  • 通用规范(Common Instrumentation)
  • 在多个云中托管深度学习

它利用 Kubernetes、Helm Charts 和微服务来实现深度学习平台中固有的不同配置,以取代不必要地暴露底层硬件(可能包含 CPU、GPU 等)的细节。

InfoQ 就 FfDL 相关问题采访了 Watson 的首席架构师Ruchir Puri

InfoQ:围绕着深度学习和 Kubernetes 平台有很多活动。能否请您描述一下深度学习和 Kubernetes 之间的整体协同作用吗?

Puri:对于分布式深度学习,可扩展性、并行性、弹性、按需调度和批处理作业的终止是底层平台所需的关键特性。Kubernetes 提供了所有这些以及更多的特性,因此,Kubernetes 上的深度学习平台纷纷崛起,如 FfDL、Kubeflow、PaddlePaddle 等等。

Kubernetes 使用设备驱动程序不断提升对英伟达 GPU 的支持是另一个因素。GPU 资源非常昂贵,对于数据科学家群体来说,拥有一个共享的 GPU 资源托管集群很有意义。即使是单独的深度学习实践者,Kubernetes 也会为他们处理调度和作业管理,让他们能够腾出手来专注于他们自己的任务。

Kubernetes 社区正致力于利用有状态集合进行持久存储,对 CSI 等等的支持也在发挥了很大作用,因为很多机器学习任务脱离不了数据。

InfoQ:机器学习平台本身是通过 Helm Chart 安装的。那么 FfDL 提供了什么附加价值?

Puri:除了 FfDL 的安装和部署是通过 Helm Chart(这会吸引熟悉 Kubernetes 工作方式的 DevOps 从业者)之外,FfDL 控制面板微服务是作为 pod 来部署的,并且我们利用 Kubernetes 来管理让机器有效工作的 GPU 和 CPU 集群,当它们崩溃时,重启微服务,并报告微服务的健康状况。我们也支持与 S3 兼容的存储,另外还支持多框架方式来进行分布式深度学习。

对于 AI 开发人员和数据科学家来说,他们使用一个平台进行深度学习训练,该平台具有集成深度学习调度、日志记录和监控指示板功能。指示板显示每一个步骤的评估指标,用框架无关的方式提供精度、熵、权重、偏差等信息。

对系统运维人员,FfDL 提供隔离 API,允许服务以模块化方式成长和演进,并随着深度学习领域快速创新的需求,允许组件不断发展。

对于深度学习框架的创新者来说,FfDL 提供了一个开发 API 协作的平台,这可以让丰富的深度学习生态系统更容易访问他们的框架。

对于那些对开发 AI 组件、工作流和应用程序感兴趣的软件工程师,FfDL 提供一个开放框架以供协作开发。被采用的 API 和组件有可能被应用于工业邪恶的 IBM AI Studio,以及通用开源 AI 生态系统。

InfoQ:您能否从开发人员和用户的角度对Kubeflow和 FfDL 进行一下对比?

Puri:FfDL 作为服务技术,是 IBM Watson Studio 深度学习的核心,我们已经把它开源,并公布在 GitHub 上,它形成 IBM 建立在 IBM Spark 技术中心之上的开源数据和 AI 技术中心的关键部分,连同资产交易模型(Model Asset eXchange,简称 MAX)和对抗健壮性工具(Adversarial Robustness Tool,简称 ART),还有更多在研发的东西,开发人员都可以在IBM Code上获得。我们相信 FfDL 具有与其他开源框架(如谷歌的 Kubeflow、百度的 PaddlePaddle 等等)互补的功能。IBM 是开源社区的领袖,贡献了范围广泛的互补技术,这些技术有实现访问 AI 民主化的潜力。

InfoQ:文档似乎表明,对象存储是在 Amazon S3 上实现的,它使云变得具体起来。您能否澄清一下,是否存在对特定云的依赖?

Puri: 任何与 S3 API 兼容的存储都行,包括 IBM 云对象存储(IBM Cloud Object Storage)。我们也在努力通过增加对 NFS 等的支持,让存储故事更通用。

此外,我们在密切监控 Kubernetes 社区对 CSI 接口的支持,以便基于标准存储故事。

InfoQ:FfDL 会如何简化机器学习或数据科学家、开发人员的日常工作,而不是通过增加额外的 Kubernetes 层使之复杂化?

Puri:训练深度神经网络,也即深度学习,现在是高度复杂的,并且计算量很大。它需要高度调谐的系统,要有软件、驱动程序、计算、内存和存储资源的正确组合。数据科学家和 AI 开发人员应该专注于他们的专长:专注于数据及其改进、在那些大型数据集上训练神经网络模型(用自动化),并创建尖端模型。

FfDL 提供了一个消除这些担忧的栈,因此,数据科学家能够在云中用他们选择的深度学习框架大规模地执行训练任务。它的构建旨在提供弹性、可扩展性、多租户及安全性,无需修改深度学习框架,并且无需对模型代码进行修改,或者只需做很小的修改。

FfDL 也将在一定程度上,让数据科学家免受快速演化的 AI 基础架构混乱的影响。他们能够期望他们的集群演化和改进,并且可以加入更高级别的功能,而不必为每一项变动重写他们的系统。

InfoQ:您能否提供更多关于如何支持其他能够集成到 FfDL 的机器学习工具包的技术细节?您是否也能讲讲社区对 FfDL 的支持?

Puri:机器学习工具包的 docker 映像,以及 FfDL 生命周期管理(FfDL Lifecycle Manage,简称 LCM)配置文件中加上的指针,能够了解到平台包含的内容。如果我们在增加对分布式训练的支持,就需要额外的代码,以确保支持机器学习引擎的分布式架构。在默认情况下,Tensorflow 喜欢用参数服务器方法进行分布式学习,而 PyTorch 喜欢 MPI 方式。

我们期望社区能根据我们产品的优点,不断优化。随着合作机会的增加,我们将与主要参与者接触。此外,IBM 和大学有很深厚的联系,会进行合作研究,如麻省理工与 IBM Watson 合作的 AI 实验室(MIT-IBM Watson AI Lab),在适当的情况下,把 FfDL 当作平台用于 AI 工程。总的来说,我们希望,开源社区能为 AI 生态系统增加的这个新东西感到高兴,并和我们一起工作,不断进化,以提供越来越大的价值。

请移步 FfDL WiKi以查看更多技术细节。

阅读英文原文:Q&A on IBM's Fabric for Deep Learning with Chief Architect of Watson


感谢冬雨对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。