AI开发面临碎片化 深度学习框架要统一

学习
  • 中关村在线
  • 2018-12-19 20:37

1921001979.jpg

AI开发面临碎片化 深度学习框架要统一(图片来自FactorDaily)

人工智能繁荣发展的背后是各大厂商暗战的开始,大家都在为了争抢开发者推出各自的深度学习开发框架,而随着应用在不同场景下的关联性越来越强,碎片化的框架也对开发人员造成了困扰,开发框架需要统一。

深度学习的优势在于,利用非监督式或半监督式的特征学习、分层特征提取高效算法去替代传统的人工获取特征。为此,微软、谷歌、亚马逊等IT巨头都在围绕深度学习投资项目、开发框架工具,CNTK、TensorFlow、MXNet背后均有着这些企业的力挺。除此之外,Caffe、Torch、Theano也是比较流行的开发框架。

对于开发人员来说,使用这些框架的特性和功能各有不同,应用场景也可能是算机视觉、语音识别、自然语言处理与生物信息学等等。以TensorFlow来说,使用者不再需要通过反向传播求解梯度,这点和Theano类似,而且在设计神经网络结构时,也不用耗费过多精力去写C++或者CUDA代码。

在使用过程中,C++在线上部署的复杂度方面有所降低,而且让手机、平板、穿戴设备等对处理资源占用密集的终端可以运行更为复杂的模型,要知道相比之下Python的资源损耗还处在相对较高的水平。借此,开发者就能在硬件性能相对足够的机器中,即使是用Python也可以获得在低延迟状态下、嵌入式环境中使用C++的能力。当然TensorFlow也有其问题,比如异类设备之间的通信优化仍需完善。

Theano可以说是最古老的同类库之一,也是最初深度学习的主导标准之一,其流行程度可以让用户在上面找到各种常见问题,包括如何去存储、运行训练模型,在单GPU方面执行效率也算是还不错的水平。而且基于Theano,也衍生出了大量的深度学习库,像Keras对神经网络的抽象就可以对执行后端随意切换。

不过考虑到Theano缺乏底层C++的接口,导致部署起来并不方便,在工业生产环境的应用几乎鲜有。因此,很多人都是将其视为研究工具,而不是最终的产品,在CPU上的低性能也有这方面的阻碍。所以这种框架更像是一个原始语言,如果直接用其设计神经网络,或者去读它的输出信息,对开发者是毕竟痛苦的事情。

此外,Caffe、Deeplearning4J等也有着各自的问题,这里就不一一赘述了。由此也引申出了开发者到底该如何选择深度学习的开发平台?这里列出了几个考察点:首先,多数公司的AI架构不是从0起步,对既有编程平台的整合难度不能忽视;其次,对机器学习软件包和数据处理的难度也要寻求兼容;再有,二次开发能力同样关键,有了分布式、多GPU的优化能力,如何在其他平台上发挥作用,这是要思考的事情。

通过对比主流的几款深度学习开发框架,可以看到底层语言用C++(Caffe、MXNet、CNTK、TensorFlow)和C(Torch)的占有大多数,这也是当前来看最有效率的,像Python则是有望成为下一代的平台语言,这也是像微软在CNTK 2.0中所努力的方向。

从生态的角度来看,各家的框架多少还存在着分战队的情况。开发者需要在各自的平台上做各自的开发,而且这些框架在更新时并不是统一的,也就是说开发者在一个框架上开发的神经网络模型,并不能直接在另一个框架上用。要想让二者实现兼容,开发者需要花费很大的精力去自行解决。

为了解决这一问题,需要微软、谷歌这样掌握开发者“主权”的企业站出来,借助兼容框架去统一开发者的使用体验,ONNX(开放神经网络交换)就是在这个思路下成立的,这是由微软共同发起的一个项目,参与者有Facebook、AWS这样的软件厂商,也有AMD、ARM、华为、IBM、英特尔、高通这样的产业参与者。比如说有了ONNX,开发者可以把在PyTorch训练的模型直接放到Caffe2上推理。

几乎每隔2-4个月就会有ONNX的升级,例如其中会新增一些运算符帮助用户创建新的模型。事实上,现在微软的主流产品Bing、广告和Office,还有视觉服务,基本上后台都在用ONNX。在此基础之上,微软还发布了ONNX Runtime,插件式的执行者界面意味着ONNX Runtime可以快速适应软件和硬件的改进。执行者界面是硬件加速器向ONNX Runtime报告其性能的标准方式。英特尔、英伟达都在将ONNX Runtime整合到他们的硬件加速器中,目前,英特尔的MKL-DNN、nGraph编译器以及英伟达优化的TensorRT推理引擎都已完成整合。

就在ONNX吸纳更多开源框架的过程中,也并不是所有厂商的态度都那么趋同,像TensorFlow对ONNX的兴趣就没有那么明朗。事实上,微软也写了从TensorFlow到ONNX的转化器,通过这样的一种转化的功能,可以实际上将很多TensorFlow下面的这些模型转移到ONNX来。除此之外,ONNX还支持一些非常高级别、或者说特别的运算符,比如LSTM,这些运算符主要是用来支持一些语音和语言方面的功能。

如果想在AI领域当中获得成功,就必须将硬件和软件都结合起来,因此需要ONNX这样的桥梁,过去不同的接口和界面为开发者带来了很大的困惑,而ONNX这可以使硬件和应用有机结合起来,在云端、本地、边缘等任意一个环境实现部署。由此来看AI开发框架统一势在必行。


来源:中关村在线

作者:摘编

编辑:jinpeng

图片来源:

本文链接: https://www.aiust.com/article/20181219/921.html

  • 深度学习
  • AI
声明:除非注明,本站文章均为AIUST.Com原创或编译,转载时请注明文章作者和“来源:AIUST.Com”,AIUST.Com尊重行业规范,每篇文章都标有明确的作者和来源。文章为作者观点,不代表AIUST.Com立场。部份图片来自网络,如有侵权,请联系我们删除!

相关文章

资讯

原创

荐读

  • 5G+AR加持 晨星机器人掀起“智能化+人机交互”制造新趋势 5G+AR加持 晨星机器人掀起“智能化+人机交互”制造新趋势

    2021世界制造业大会于11月22日在合肥落下帷幕。为期四天的大会中,作为向世界展示智能制造全面能力的窗口,联想展示了一系列让人惊喜的创新产品。现场展示的ThinkPad X1 Fold整体重量仅有1公斤,折叠起来之后的厚度大约为24毫米。当保持半开状态时,可以像拿本书一样握住,并且能同时运行两个应用程序。使用固定在中间的键盘之后,瞬间变...

  • 智能手机竞争中失败,日本在联网汽车领域举步维艰 智能手机竞争中失败,日本在联网汽车领域举步维艰

    据外媒报道,在制造带有数字联网服务的汽车的竞争中,丰田汽车和日产汽车面临着被本土市场拖累的风险。与美国和欧洲的汽车消费者不同的是,日本消费者不愿意为这些联网功能和服务买单。结果就是:日本只有10%的汽车...

  • 2020年河南省将推广应用3万台工业机器人 2020年河南省将推广应用3万台工业机器人

    到2020年,推广应用3万台工业机器人,建设1000条智能生产线、300个智能车间、150个智能工厂……4月16日,在2018两岸智能装备制造郑州论坛上,河南省工信委发布了《2017年河南省智能制造白皮书》,河南智能制造的2020...

热门标签