文|赵赛坡
深度学习俨然已经是人工智能的代名词,也是各家巨头们争夺的重点领域。自 2015 年开始,包括 Google、百度、Facebook 等巨头公司先后开源了旗下的深度学习框架,旨在吸引更多开发者,从而抢占深度学习生态的话语权。
上周,阿里巴巴也加入这个赛道。根据媒体的报道,阿里旗下的阿里妈妈正式开源了其深度学习算法框架 X-Deep Learning(下文简称为 XDL)。在其官方宣传语里,提及了两个「首次」:阿里巴巴首次公开的深度学习框架以及业界首个面向超大规模高维稀疏数据场景的深度学习开源框架。
前一个「首次」不难理解,这也的确是阿里巴巴的首个深度学习开源项目,而后一个「首次」连同两个关键描述「超大规模高维稀疏数据场景」和「深度学习框架」,多少有些争议。
此「首次」非彼「首次」
正如上文所言,各大公司从 2015 年开始陆续开源了自家的深度学习框架。从时间上看,有几个典型代表,其一,2015 年 11 月, Google 开源了 TensorFlow 深度学习框架,过去三年间,TensorFlow 在开发者社区享有盛誉,已成为最为常用的深度学习框架之一。
其二,2016 年,百度开源了自研的深度学习平台 PaddlePaddle,也成为国内首个深度学习开源框架。
其三,2017 年初,Facebook 在 Torch 的基础上,针对 Python 语言发布了全新的机器学习框架 PyTorch。
如果以这个时间线来看,XDL 的确也无法称之为国内首个深度学习开源框架。
其次,此次 XDL 特别提到了「超大规模高维稀疏数据」,这里有必要稍微展开一下。
从定义上看,稀疏数据是指数据库二维表中含有大量空值的数据,但稀疏数据绝对不是无用数据,只不过是信息不完全的数据。
互联网拥有大量处理稀疏数据的应用场景,比如在线广告、搜索引擎以及智能推荐等等。作为阿里体系下的大数据处理子公司,阿里妈妈的确拥有这样的处理需求,但这个项目也绝不是所谓的业界「首次」。
稀疏数据的挑战也广泛存在于全球互联网巨头之中。比如,在线广告是 Google、Facebook 的重要收入来源,而搜索业务也是 Google、百度的核心业务,这些公司恰恰也是当下深度学习领域的代表公司,因而也具备应对大规模稀疏数据的能力。
以目前百度重点发力的信息流业务为例,其序列特性更强,也需要更多考虑历史信息,数据的特征空间变得更大,参数规模可达到千亿甚至万亿,模型大小达到TB 级别。这些超高维度的稀疏数据,给训练和在线部署都带来了极大挑战。
在今年 7 月的百度 AI 开发者大会上,随着 PaddlePaddle 3.0 的发布,百度也进一步展示了该框架对于大规模稀疏数据分布式模型训练的支持和优化。其新一代核心框架 Fluid 1.1的更新日志里明确写道:「支持千亿规模稀疏参数服务器,用于大规模多机异步训练,适用于推荐、广告等领域的点击率预估模型。」
因此,不管是正式发布时间还是具体应用的时间,XDL 都不具备「首次」的定义,如此这般的宣传实在有点误导公众。
此「框架」非彼「框架」
更进一步去看,XDL 对于「框架」的自我定位也多少有点问题。
深度学习框架的流行,既是因为各家巨头为了抢夺生态有利地位,也源自深度神经网络技术特点的必然趋势,这是因为,神经网络模型在基本结构单元、训练模式有很多通用的地方,利用封装的框架,可以有效减少处理神经模型的错误以及时间,能够大幅提升效率。
不管是 TensorFlow、Pytorch还是 PaddlePaddle,这些深度学习框架都有几个基本特点,主要包括如下几点:
- 建模能力:框架将神经网络的定义、计算和迭代训练抽象化;
- 训练能力:尤其是是否支持并行训练能力;
- 部署能力:尤其在当下边缘计算热火朝天的背景下,如何训练成果部署到设备中,也变得尤为重要。
当然,上述三点还是以比较粗线条的形式勾勒了一个深度学习框架的基本能力,不过值得注意的是,此次发布 的 XDL 似乎并不能真正满足上述基本要求。
根据目前公开的资料,XDL 并没有提及建模能力,这也意味着其需要依托其他的深度学习框架。其官方介绍也提到,「支持 TensorFlow 与 MxNet 作为其单节点计算后端。这种桥接的架构,使得 XDL 跟业界的开源社区无缝对接。此外,对于已经在使用其它开源框架的企业或者个人用户,也可以在原有系统基础上轻松进行扩展。」
虽然强调在工业级的大规模分布式训练的支持能力,但这也是着力于如何分布式运行其他框架。当然,XDL 在部署上的确有一些自己的想法,这是基于阿里妈妈核心业务所提炼出的算法模型,有一定的参考价值。
但不管怎么说,XDL 都更像是某个深度学习框架的一部分,而非真正的框架。
事实上,过去几年行业的确有类似的尝试。在国外, Keras 颇受欢迎,其基于 Python,后端接入多个深度学习开源框架 TensorFlow、CNTK和Theano,因此拥有丰富的周边生态,但它依然只是一个「高级封装起来的 API」。
在国内,腾讯优图在去年开源了面向移动端的 NCNN,只包含前向计算,因此无法进行训练,需要导入其他框架训练好的模型参数。
今年 8 月,小米也开源了自研的移动端深度学习引擎 MACE(全称为 Mobile AI Compute Engine),这是一个专门为移动端异构计算平台优化的神经网络引擎。支持 TensorFlow 和 Caffe 框架,提供转换工具,可以将训练好的模型转换成专有的模型数据文件。
从这个角度去看,XDL 与 Keras、NCNN、MACE 类似,都是基于某种(或某几种)深度学习框架,在此基础上提供更便于调用的算法模型或参数,这些引擎各自也有应用的场景,满足了科研、开发的不同层次需求,但的确算不上业界所定义的深度学习框架。
深度学习之路任重道远
人工智能寄托着人类征服自己的伟大梦想,过去的五六年,深度学习又一次成为工业界、学术界以及媒体关注的焦点,由此也出现了深度学习的炒作热潮。
但必须看到一个事实,深度学习之路还非常漫长,需要企业、学术以及普通开发者共同努力,更需要从底层技术到算法部署的整体框架。
这对中国的深度学习从业者尤其重要,长期借助国外深度学习开源平台,将会严重限制我国在人工智能芯片、行业标准、人才培养、应用落地等领域的发展,然而,深度学习平台却也不是一天就能建成的,它需要时间、需要人力财力的投入、更需要实战的检验,一如百度 PaddlePaddle「五年磨一剑」后的初露锋芒。
这当然也是中国互联网公司的机会,BAT 以及小米等公司也从不同角度切入到深度学习领域。只是,在迈向人工智能的伟大征程里,我们还是希望这些公司能少一些套路和误导性的口号,真正做一些有益于中国深度学习开发者的事情。
根据《网络安全法》实名制要求,请绑定手机号后发表评论