专访马子雅:英特尔开源BigDL,推进AI民主化
作为 AI 民主化战略的重要实践之一,英特尔在 2016年 的最后一天,开源了基于 Apache Spark 的分布式深度学习框架 BigDL。最近,英特尔公司软件与服务事业部副总裁、系统技术和优化部门大数据技术总监马子雅女士接受了新智元的专访,畅谈了 BigDL 的特点、应用、未来的改进,以及英特尔开源这一深度学习框架的初衷和意义。正如马子雅女士所说,“BigDL的目标是大大降低普通大数据用户和数据科学家,在使用深度学习进行数据分析和构建人工智能应用的门槛”,“英特尔致力于将我们的技术提供给我们的社区,为客户和开发人员释放 AI 在 IA(英特尔架构,Intel Architecture)上的全部潜力”。
BigDL 原生地建立于 Hadoop/Spark 之上 新智元 :马女士您好。英特尔开源了基于Apache Spark 的分布式深度学习框架 BigDL。请问和其他开源框架相比,BigDL 有什么特点?
马子雅 : BigDL 的目标是大大降低普通大数据用户和数据科学家,在使用深度学习进行数据分析和构建人工智能应用的门槛。 去年12月31日我们开源了 BigDL;开源社区对 BigDL 的积极采纳令人印象非常深刻:在短短一个月内,GitHub 上已获得 229 个用户克隆 BigDL 代码(FORK)和1421个用户收藏(STAR)。今年2月波士顿举行了 Spark 峰会,在大会开幕主题演讲上,斯坦福大学教授、ApacheSpark 创建者、Databricks CTO Matei Zaharia 高度评价了 BigDL;到目前为止,包括 Databricks(Apache Spark 重要贡献者)云平台和微软 Azure HDInsight 云服务都提供了与 BigDL 的集成,方便其用户访问使用。此外,众多全球媒体包括 Infoworld,HPCwire,Datanami,HPC,infoq,InsideHPC,计算机商业评论,SiliconAngle,Oreilly 等,以及德国、日本和中国等各国媒体也对 BigDL 也进行了深入的报道。
BigDL 是一个建立在大数据平台(Hadoop/Spark)之上原生的分布式深度学习库。它提供了在 ApacheSpark 上丰富的深度学习功能(和现有框架如 Caffe 和 Torch 等功能一致),以帮助 Hadoop/Spark 成为一个统一的数据分析平台,为整个数据分析和机器学习过程(包括训练/测试数据收集,数据的管理,转特征换,传统机器学习,深度学习,模型部署和服务等)提供比现有框架更加统一和集成化的体验。BigDL 程序是作为标准的 Spark 程序编写的,并且不需要对底层 Hadoop/Spark 集群进行更改;对于拥有(或将拥有)大数据基础架构的分析客户,可以在现有 Hadoop/Spark 集群上直接运行深度学习应用,不需要设置单独的训练集群,也无需在两个集群之间拷贝多版本的数据和模型,从而减少了端到端的学习延迟,并降低了总体成本。
基于大数据平台的 BigDL 比现有的深度学习框架有更高效的横向扩展、容错性、弹性和动态资源管理;通过利用英特尔 MKL 和其他多线程优化方法,它在单节点 Xeon 上拥有极高的性能,并且可以轻松扩展到上百个节点。它还支持载入 Caffe / Torch 的预训练模型到 Spark 上,来进行特征提取、微调、预测等。
新智元 :英特尔准备如何把人们吸引到 BigDL 中来呢?
马子雅 : 我们始终相信,更好地满足用户需求的解决方案会得到更好的应用。
近年来,随着我们与许多大数据分析和AI客户合作,他们的需求有几个明显的趋势:
-客户体验和易用性:客户希望能在同一集群中、在现有的数据分析流水线上进行深度学习,以便轻松地与数据管理、特性工程、传统(非深度)机器学习集成;这样就能帮助他们消除在不同集群之间的多版本数据/模型的拷贝,降低端到端的机器学习延迟,将深度学习集成到现有的大数据分析工作流中管理,并且实现动态、弹性的机器资源管理。
-大规模深度学习:客户希望为他们的深度学习模型提供越来越多的数据,以提高训练的准确性。许多人选择在大数据(Haoop/Spark)平台之上构建深度学习功能,以便利用其水平扩展架构,分析大规模训练数据。
当为客户解决这些问题时,第一反应是将现有的深度学习框架集成到客户的大数据平台上,希望将他们的深度学习能力和 Spark / Hadoop 的可扩展性结合在一起;但是这样的整合仅仅停留在表面,而缺乏在数据处理或模型集成上的无缝集成。 这是我们引入 BigDL 的最大驱动因素。 BigDL 与现有深度学习框架的功能一致,但是 BigDL 的优点是它原生地建立在 Spark 上,并且天然地继承了 Spark 的可扩展性,并且与现有大数据处理工作流(例如 Spark ML pipeline , SparkSQL, Spark Streaming, Dataframes, Structured Streaming 等)无缝集成。所以 BigDL 特别适用于有大量数据需要管理,以及拥有(或将拥有)大数据平台( Hadoop/Spark )的分析客户。
BigDL 的应用案例和未来改进方向
新智元 :BigDL 现在主要应用于哪些领域?您是否可以介绍一两个应用的案例?
马子雅 :BigDL 的目标是大大降低普通大数据用户和数据科学家,使用深度学习进行数据分析和构建人工智能应用的门槛;所以 BigDL 可以和现有大数据分析的工作流(例如 Spark ML pipeline,SparkSQL, Spark Streaming, Dataframes, Structured Streaming 等)进行无缝集成。BigDL 虽然是在几个月前开源的,但实际上我们已经与一些早期合作者,基于以上特性成功构建了基于 BigDL 的深度学习(和人工智能)的端到端的应用案例。
第一个客户案例是在钢铁制造行业的应用。提高钢表面缺陷的识别精度对钢铁生产和质量控制非常重要;我们与一个知名的钢铁生产商合作,使用 Spark 和 BigDL 实现了端到端的深度学习流水线,用于产品缺陷图像识别。由此客户显著地提高了其缺陷识别的精度和能力。
对于金融服务公司来说,由于其广泛的产品、服务和客户互动渠道,他们面临的欺诈交易风险大大增加了。我们与一家金融服务公司合作,使用 Spark 和 BigDL 实 施了端到端的学习流水线,即时分析大量数据,为此显著地提高了欺诈交易检测率。
新智元 :BigDL 之后会在哪些方面做出改进?比如,是否会提供 Python API ?是否会允许更多的其他框架训练好的模型载入?
马子雅 :Jason Dai 是我们大数据技术全球 CTO,他在 BigDL 的架构构建和工程开发方面发挥了重要的领导作用。在开源后 BigDL 项目得到了全世界许多开源社区用户的积极参与:例如在 BigDL 开源不到两个月后,InfoWorld 就在其对深度学习趋势的预测中,将 BigDL 与 TensorFlow、Caffe 等一起并列为目前最流行的深度学习框架;Jason 和他在上海及硅谷的团队,基于全世界 BigDL 社区用户提供的反馈,以及和我们全球的客户/合作伙伴的密切合作,为 BigDL 项目制定了将来的路线图(包括新功能、可用性、可扩展性等方面)。 我们的下一个版本将在第一季度末左右发布,主要更新包括:增加对 PythonAPI 的支持,提供更好的可视化体验(利用 Notebook 和 TensorBoard ),增加对 macOS 的支持,提供更丰富的 RNN 支持(如对 LSTM 、 GRU 等算法的支持)等等。
Intel-analytics 的其他开源库及对各类深度学习任务的支持
新智元 :除了 BigDL,我们知道 Intel-analytics 下面还有另外的开源库:比如 SparseML 等;您是否可以比较一下,这些开源库分别有什么特点?应用于哪些场景?
马子雅 :BigDL 能为那些拥有大量数据、以及已建(或将建)大数据集群的用户,提供构建基于深度学习(和人工智能)的大数据分析的最优服务。BigDL 天生就可以运行在现有标准的大数据平台(Hadoop/Spark)之上,利用公共的数据基础架构,在数据采集、特征提取、传统机器学习和深度学习工作负载等方面,为客户提供统一的和无缝集成的完整体验。它支持大规模的深度学习和机器学习,并提供自动容错和自动动态弹性资源管理。
对于具有极高模型维度和大量非常稀疏数据(例如,百亿到千亿级别的训练样本,十亿级甚至百亿级别特征)的用户,SparseML 可以显著地为他们提高机器学习的可扩展性。许多互联网公司需要从大量的极度稀疏数据中学习模型,他们面临的挑战是现有的机器学习解决方案无法处理大量数据或高维度模型;通过利用数据稀疏性,对分布式机器学习数据结构、网络通信和算术运算的优化,SparseML 可以比现有开源的机器学习算法(例如Spark Mllib)提供更高的可扩展性。
新智元 :可以看出,Intel-analytics 在努力形成一个支撑各种应用场景的完整生态。那么,请允许我问一个比较具体的问题:如果我希望进行深度学习的图像分类,应该如何从英特尔的产品组合中选择呢?或者我要处理的数据里面既包括图像又包括音频,又该如何选择呢?
马子雅 :我们的目标是为机器学习用户和开发人员提供从硬件到软件的最简便、最完整和最高效的体验。
为了选择最合适的解决方案栈,您需要评估一些事情:(1)您是否已有了现有的基础架构,并希望利用它来构建图像分类?(2)您最大的需求是什么:从现有的分布式文件系统/存储中直接访问数据存储,以实现快速的机器学习实验周期(turn-around time)?是与您现有的分析工作流程或平台轻松集成?还是可扩展性(处理大量训练样本或高维特征的能力),高资源利用率,低总拥有成本,训练性能等等?根据您对这些问题的回答,您可以选择不同的解决方案。
在硬件层面,我们有各种产品可供选择,例如:Xeon,Xeon phi,FPGA。将来我们还会有LakeCrest(Nervana silicon);您可以挑选最适合您的需要的产品。
在深度学习框架层面,我们正在推动 Neon 并将英特尔优化的 MKL 应用于深度学习框架,比如 Caffe,TensorFlow,Theano 和 Torch 等。如果您喜欢使用这些优化的框架,您可以直接使用它们或通过英特尔深度学习 SDK 来使用它们。
如果您已经有了大数据(Hadoop/Spark)集群或大数据分析工作流,那么您很可能更倾向在现有的大数据基础架构中来进行深度学习。我们正在推动以 Spark /Hadoop 为数据分析和人工智能的统一平台,来支持端到端的学习工作流,包括从数据管理,特征管理,特征工程,模型训练到最后的结果评估;那么,BigDL 将会极大地适合你的需求。
从开源到 AI 民主化
新智元 :英特尔在人工智能领域所提供的产品组合已经非常丰富了,其中包括了许多我们今天提到的开源项目,那么请问马女士,在英特尔人工智能的产业布局中,是如何认识“开源”这件事的意义呢?未来是否会有计划推出更多的开源项目呢?
马子雅 :开源项目有很多原因:
1.建立一个更大的开发社区,可以检验我们的设计和解决方案(好不好?哪里好?哪里不好?……)。好的开发人员喜欢与好的开发人员合作,与好的项目合作。如果我们的项目流行得足以吸引到外部人员来贡献力量,那么我们就相当于创建了一个倍增的开发人员社区,帮助我们工作得更快更好;
2.加速客户使用:随着我们的项目开源,它帮助更多的用户和客户从我们的工作中受益;他们的成功反过来会影响其他客户和用户使用这些解决方案。来自这些快速扩张的用户群的反馈也可以反过来影响我们的路线图和设计,以更好地服务用户的需求;
3.开源项目也是我们为行业和社区支持 AI 的承诺做出的最好的展示。
随着我们与行业客户和合作伙伴的继续合作,确定新的需求领域,我们将继续推动新的项目开源,就像我们这次为 BigDL 所做的。英特尔致力于开源协作,确保我们的客户和合作伙伴在英特尔硬件上拥有最佳、最简便、最完整的 AI 体验。
新智元 :在英特尔的人工智能战略中,Democratize AI 是一个非常重要的组成部分。请问英特尔是如何定义自己在人工智能领域的“ democratize ”的?准备采取什么举措来服务企业级用户和开发者?同时,又准备如何更好地服务已经习惯使用 CPU 来做深度学习项目的用户,比如高校、研究机构中的研究人员?
马子雅 : 英特尔致力于将我们的技术提供给我们的社区,为客户和开发人员释放 AI 在 IA 上的全部潜力。
我们将与开源社区广泛合作,以便让更广泛的受众可以利用我们的工作。在DL框架级别,我们推动开源 Neon,并将英特尔优化的 MKL 应用于开源框架例如 Caffe,Tensorflow,Theano,Torch 等(一个例子是英特尔和谷歌去年宣布战略联盟,以加速机器学习的应用,例如加速英特尔处理器上的 TensorFlow 性能,将高性能库如 Math Kernel Library (MKL) 集成到 TensorFlow)。我们还开源基于大数据和 Spark 的深度学习框架比如 BigDL。英特尔深度学习 SDK 让客户和开发人员易于使用和访问这些框架,以便客户能够更好地专注于真正增值的机器学习工作。
英特尔也传播AI知识。在英特尔 NervanaAI 学院,在英特尔开发区 (Intel developer zone),我们提供了大量的 AI 知识共享、框架优化信息、工具和库。我们还有英特尔学生开发项目为学生提供培训,针对不同的大学我们还有学生大使和推广计划。我们还提供线上和线下的研讨会,开发人员和开源社区用户的 meetup 等。英特尔还与 Coursera 合作制作在线 AI 课程。去年底英特尔,MobileODT 和 kaggle 推出数据科学竞赛,关注宫颈癌的诊治。我们继续与业界合作伙伴和客户合作,帮助他们解决业务或现实生活中的问题。
对于已经使用 CPU 进行深度学习的客户,我们一直在改进我们的新一代 CPU 以提高我们的训练性能和成本效益。这些客户可以随时利用英特尔 MKL 在英特尔硬件上实现最佳训练性能。除了这些客户,大数据客户今天也在 CPU 上运行他们的数据平台。随着大数据和 AI 的紧密、无缝集成,这些客户不仅能享受 AI 功能,而且通过使用大数据平台,可以在例如可扩展性、容错性、易用性和动态弹性资源管理等方面受益。
编辑: 彭志强