从 GPU、TPU,到 Web 端、移动端,深度学习框架部署训练开始变简单

早些时候的统计显示,今年3月,深度学习框架集中爆发。5月,有人发布可以直接在 iphone11上训练神经网络的开源项目。日前,百度开源国内首个可直接运行在 Web 端的深度学习框架 Paddle.js。这些都使深度学习框架的部署和训练变得简单。 

深度学习框架提供一系列的深度学习组件,开发者选择一套框架之后,可以自定义数据集、算法、参数等,通过训练得到模型参数。就像一套供自由拼装的积木,玩家可直接搭建模型,而不用先去做木工,造方块。

3月开源的华为全场景 AI 计算框架 MindSpore;旷视深度学习框架天元 MegEngine;清华大学发布基于元算子和动态编译的深度学习框架计图 Jittor,就提供了国产 AI 训练的“积木”。

深度学习框架训练模型通常要求设备具有强大的算力,因此过去多是在 GPU 或是 TPU 上训练,之后再压缩部署到各终端设备。上述的三个框架也不例外。一些较为常见的、可以部署在 Web 端的框架也都尚未支持端训练。比如东京大学机器智能实验室的 WenDNN,只支持任务的推断阶段,不能用在训练阶段。Keras.js 只支持 Keras 生成的模型,不支持模型训练,需要准备预训练的模型。

但随着端硬件设备算力的提升,及各方向技术的发展,更多人转向研究直接在端设备上做训练,以降低延时,保护数据隐私等等。目前,谷歌的 TensorFlow.js,百度的 Paddle.js 可以做到直接在 Web 端训练。IOS 设备也被个人开发者用来训练神经网络。

2017年,TensorFlow.js 公开发布第一个 beta 版本,并使用 WebGL 在浏览器中做硬件加速,可用于在浏览器和 Node.js 训练和部署机器学习模型。用户可以直接在浏览器中提供数据,使用 TensorFlow.js 做训练。

Paddle.js 依靠 Paddle 模型库,结合工具链和在线推理库,将模型转化为 Web 可用格式,借助 GPU Backend 做硬件加速,同时参与 Web NN 标准化,在手机百度 App 提供的特殊加速支持获得更快的执行速度。 

此外,5月也有消息称,有开发者发布开源项目 MNIST-CoreML-Training,可以直接在 IOS 设备上训练神经网络,基于 IOS 系统内置的模型转换工具 Core ML 和手写数据集 MNIST 做训练。该实验被认为可以证明 IOS 设备计算能力有所提升。

硬件设备算力提升的关键是芯片。

经济学人在近期发布的    AI  及其局限:比预期更陡峭》系列中提到,对计算能力不断增长的需求推动了芯片设计和专用设备的蓬勃发展,这些设备可以高效执行 AI 中使用的计算。
 
毕马威会计师事务所的 Alfonso Marone 认为,AI 专用芯片市场的规模已达100亿美元左右,到2025年可能达到800亿美元。

当然 AI 芯片市场的扩大,对端训练框架的作用还有待观察,但算力提升无疑会加速此类研究。不仅是算力,各载体的功能支持也可帮助完善深度学习框架部署和训练。

以 Web 端为例,如果想实现人脸跟踪、表情识别、更换人物影像背景等功能,浏览器就要具备实时获取视频流、处理复杂图形等能力,近年开始火热的一些 Web 项目使这些更易实现。如 Mozilla 在2018年年初推出 WebXR 的新标准,可将 XRARVR  MR)内容直接集成至网络浏览器。Web Assembly 作为一种编码方式,便于其他语言在代码在 Web 前端运行,弥补 JavaScript 在处理图像、游戏运算等方面的不足。

说到这里,可能大家对于前端如何训练 AI 模型会比较感兴趣,以新鲜出炉的 Paddle.js 为例。Paddle.js 主要部分包括:模型工具链、推理前后处理、用户工具链、测试框架和推理引擎本身。

在 Web 端做深度学习训练需要使用浏览器友好的模型格式,Paddle.js 提供模型工具链,对引用的模型格式做转换和离线优化。输入输出处理部分做图像、视频流等数据的处理,Web 前端工程师可以直接调用相应的推理前后处理方法高效处理数据。最后是在线推理,包括神经网络加载、神经网络在线优化、算子分配与数据初始化、预热与执行推理计算等。

无论是开源深度学习框架,还是尝试直接做端训练,都是在降低做 AI 的门槛。

 今年以来,AI 界依旧是冰火两重天。一方面,受疫情等因素影响,安防、车载等 AI 下游需求减弱,影响 AI 公司业务,外界一直以来对 AI 能力的质疑也并未减弱。另一方面,资本市场对 AI 颇为青睐,年初至今,多家 AI 公司披露数亿元融资。

如何用 AI 做更多实际应用所有开发者都在尝试解决的问题。而降低门槛,可以鼓励更多开发者参与。说不定哪次尝试,就会带来让人惊喜的结果……