欢迎关注“创事记”的微信订阅号:sinachuangshiji
文/量子位 舒石
人工智能这个江湖,怎么可能风平浪静。
Pytorch,一个新的开源深度学习框架,昨天正式发布。Twitter上一时热议纷纷,各路人工智能专家毫不吝惜溢美之词:优雅、简洁、超强大、很酷……不过这些都是虚词,这个新出现的Pytorch到底是凭什么赢得称赞呢?
主要还是“动态”这个特性。
最近一段时间,很多“动态”深度学习库涌现出来,例如Chainer、MinPy、DyNet等。动态库的好处很明显,那就是易于调试和推导。Matroid创始人Reza Zadeh总结说,利用Pytorch这个深度学习框架,想要在神经网络中新加一层,再也不必全部推倒重来。
有人在reddit上举了一个例子,他之前一直用TensorFlow或者Keras框架构建RNN(循环神经网络),但是这样就不得不指定句子的长度,每个实例必须有相同的长度, 较短的句子必须填充。但如果使用动态库,就可以处理几乎任意长度的句子。
神经模块网络,就非常适用于Pytorch这样的动态架构。例如指定一张图片,让人工智能回答:图中小猫右边的物体是什么颜色?解决这个问题,包括几个子任务模块:首先是识别出小猫,然后找到小猫右边的物体,再识别出具体的颜色。
当然Pytorch的新特性不止于此,但这也足以让搞AI的工程师们兴奋一阵,尤其是Google旗下的深度学习框架TensorFlow,还不具备动态的特性。而且,Pytorch虽然没有大声宣扬,但大家都知道这个深度学习框架,属于Facebook。
Pytorch,能帮助Facebook挑战Google在深度学习框架领域的统治地位么?
针对上面这个疑问,云知声资深AI技术专家、NLP负责人刘升平博士对量子位表示,动态神经网络是很好的特性,但目前Pytorch在Beta阶段,缺乏一些关键特性,短期难以撼动TensorFlow的地位。但他也表示,框架的竞争还会继续下去。
继续讨论这个话题,我想还是再解释一下,什么是深度学习框架。我们谈到的人工智能、深度学习,都是依靠软件构成的系统。搭建这套系统,至少有两种途径:一是从零开始,一步步写出整个神经网络的代码;另外,就是利用成型的模块,直接进行组装。
所谓的框架,就是一套已经组装好基本部件的软件包。你可以把一个深度学习框架,想象成一套积木,工程师利用不同的积木,可以快速搭建出不同的建筑。各种框架之间的差异,可以简单理解为向用户提供的积木形状各不相同。
目前主流的深度学习框架,背后多是不同的科技巨头。对应关系如下:
TensorFlow —— Google
MXNet —— 亚马逊
paddle —— 百度
CNTK —— 微软
Torch、Caffe —— Facebook
想要在人工智能的争夺中占据主动,这些科技巨头只能在深度学习框架领域也展开激烈的竞争。而这种竞争的意义,也是显而易见的。谁家的深度学习框架能够赢得更多的用户,谁就能构建起更好的生态系统,进而获得更多的活力和更快的发展。
想象一下Android之于Google的意义。
坦白的说,目前人工智能领域,TensorFlow在深度学习框架上的优势相当明显。但各个科技巨头早已各自招募了大批人工智能精英,谁说变数一定不会发生?必须得抱有希望才行。
前两天,刚刚就任百度COO的陆奇谈到人工智能战略时,也明确表示百度在人工智能方面的投入,并不是希望自己推出什么人工智能的产品,而是希望搭建一个开放的平台,让百度的技术能够应用到不同的领域、不同的企业之中。
刘升平博士指出,深度学习平台入口和话语权的竞争将会越来越激烈,即使强如Google,也不大可能一口气吞下整块蛋糕; 对于业界来说,竞争可以避免出现一家独大。
然而变成最终承载各种人工智能应用的基础,才是这场技术争夺背后的商业目的。所以,人工智能这个江湖,怎么可能就此风平浪静。
也许很快,Pytorch的特性就会出现在TensorFlow里。
(声明:本文仅代表作者观点,不代表新浪网立场。)