从 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 设备计算能力有所提升。
硬件设备算力提升的关键是芯片。
毕马威会计师事务所的 Alfonso Marone 认为,AI 专用芯片市场的规模已达100亿美元左右,到2025年可能达到800亿美元。
当然 AI 芯片市场的扩大,对端训练框架的作用还有待观察,但算力提升无疑会加速此类研究。不仅是算力,各载体的功能支持也可帮助完善深度学习框架部署和训练。
以 Web 端为例,如果想实现人脸跟踪、表情识别、更换人物影像背景等功能,浏览器就要具备实时获取视频流、处理复杂图形等能力,近年开始火热的一些 Web 项目使这些更易实现。如 Mozilla 在2018年年初推出 WebXR 的新标准,可将 XR(AR,VR 和 MR)内容直接集成至网络浏览器。Web Assembly 作为一种编码方式,便于其他语言在代码在 Web 前端运行,弥补 JavaScript 在处理图像、游戏运算等方面的不足。
说到这里,可能大家对于前端如何训练 AI 模型会比较感兴趣,以新鲜出炉的 Paddle.js 为例。Paddle.js 主要部分包括:模型工具链、推理前后处理、用户工具链、测试框架和推理引擎本身。
在 Web 端做深度学习训练需要使用浏览器友好的模型格式,Paddle.js 提供模型工具链,对引用的模型格式做转换和离线优化。输入输出处理部分做图像、视频流等数据的处理,Web 前端工程师可以直接调用相应的推理前后处理方法高效处理数据。最后是在线推理,包括神经网络加载、神经网络在线优化、算子分配与数据初始化、预热与执行推理计算等。
无论是开源深度学习框架,还是尝试直接做端训练,都是在降低做 AI 的门槛。
今年以来,AI 界依旧是冰火两重天。一方面,受疫情等因素影响,安防、车载等 AI 下游需求减弱,影响 AI 公司业务,外界一直以来对 AI 能力的质疑也并未减弱。另一方面,资本市场对 AI 颇为青睐,年初至今,多家 AI 公司披露数亿元融资。
如何用 AI 做更多实际应用所有开发者都在尝试解决的问题。而降低门槛,可以鼓励更多开发者参与。说不定哪次尝试,就会带来让人惊喜的结果……
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Qt4中学习使用QtCharts绘图二:声波绘制
1、实例编写环境 操作系统:Windows 10 企业版开发工具:Visual Studio 2010 旗舰版开发环境:Qt4.8.6,QtCharts编程语言:C++ 2、实例涉及的内容 本实例主要是通过获取电脑的自带音频输入设备获取声音信息,然后通过使用QtCharts对声波进行绘制。涉及主要类有:QAudioDeviceInfo、QAudioInput、QAudioFormat、QIODevice。在使用Qt库进行开发时候,大家使用频率较高的多数为Qt的界面控件类,大家也就都比较熟悉了。QAudioDeviceInfo:该类提供了查询音频设备及其功能的接口。QAudioInput:该类提供用于从音频输入设备接收音频数据的接口。QAudioFormat:该类除了包含音频流的编码信息之外,还包含了其它参数信息。这些额外的参数进一步指明了:频率、通道数量、样本大小、样本类型和字节顺序等信息。QIODevice:该类是Qt中所有IO设备的基类接口(在笔者的实际工作中很少自己主动重写QIODevice类来实现某些功能,通常Qt中已经实现QFile、QTextStream、QDataStre...
- 下一篇
如何将 Web 框架迁移到 Serverless
Serverless 通常翻译为「无服务架构」,是一种软件系统设计架构思想和方法,并不是一个开发框架或者工具。他的出现是为了让开发者更加关注业务的开发,而将繁杂的运维和部署交给云厂商。Serverless 由 Faas 和 Baas 组成,Faas 为开发者提供业务运算环境,然后与 Baas 提供的数据和存储服务,进行交互,从而提供与传统服务一致的体验。但是由于 Faas 是无状态的,并且其运行环境是有读写限制的,最重要的是它是基于事件触发的。因此如果传统 Web 服务想迁移到 Serverless 上,是需要进行相关改造和特殊处理的,为此迁移成本是必不可少的。本文将具体帮助大家剖析下,如何 Serverless 化传统的 Web 服务。 读完本文将了解到: 传统 Web 服务特点 Serverless 适用场景 Web 框架如何迁移到 Serverless 使用 Serverless Components 快速部署 Web 框架 传统 Web 服务特点 Web 服务定义: Web 服务是一种 面向服务的架构 (SOA) 的技术,通过标准的 Web 协议提供服务,目的是保证不同平台的应...
相关文章
文章评论
共有0条评论来说两句吧...