30

Kaldi 之父加盟后的小米开发者大会:亮眼 AI 开源项目逐一盘点

 4 years ago
source link: https://www.leiphone.com/news/201911/33upWlhi91pGAgNM.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
uMbeE3M.png!web

语音播放文章内容

由深声科技提供技术支持

您的浏览器不支持 audio 元素。

雷锋网 (公众号:雷锋网) AI 开发者: 2019 年 11 月 19 日,小米开发者大会(MIDC,MI Developer Conference)在北京举行,1 场主论坛+12 场分论坛,将呈现 AIoT+5G 等主题为「智能新时代」的多个领域最新技术;同时,这也是一场开源盛会。

大会现场,小米集团副总裁、技术委员会主席崔宝秋不仅正式发布了支持更丰富的异构计算算子、降低跨设备运行性能损失的自研移动端深度学习框架 MACE 0.12.0 升级版;也发布了小米自用 NLP 技术 MiNLP 1.2;还宣布了 Pegasus 1.12 已在 GitHub 上线的消息。因此,雷锋网 AI 开发者将开源内容整理编辑如下。

eEb63yr.png!web

更丰富算子,更低性能损失

据了解,MACE 是专门为移动设备优化的深度学习模型预测框架,MACE 提供工具和文档,帮助用户将深度学习模型部署到移动电话、平板电脑、个人电脑和物联网设备上。

通过这一框架,小米可在移动端布局各类深度学习应用和算法,包括计算机视觉、语音识别等。据小米不完全统计,MACE 每天被调用 5000 万次。

3A3aieE.png!web

MACE 从设计之初,便针对移动设备的特点进行了专门的优化,例如:

  • 速度在框架底层,针对 ARM CPU 进行了 NEON 指令级优化,针对移动端 GPU,实现了高效的 OpenCL 内核代码。针对高通 DSP,集成了 nnlib 计算库进行 HVX 加速。同时在算法层面,采用 Winograd 算法对卷积进行加速,从而契合在移动端进行计算的模型整体所需的预测延迟高要求。

  • 功耗框架针对 ARM 处理器的 big.LITTLE 架构,提供了高性能,低功耗等多种组合配置。针对 Adreno GPU,提供了不同的功耗性能选项,使得开发者能够对性能和功耗进行灵活的调整,从而解决移动端对功耗非常敏感这一问题。

  • 系统响应对于 GPU 计算模式,框架底层对 OpenCL 内核自适应的进行分拆调度,保证 GPU 渲染任务能够更好的进行抢占调度,从而保证系统的流畅度。

  • 内存占用通过对模型的算子进行依赖分析,引入内存复用技术,大大减少内存的占用。

更多详细可参考《小米开源自研移动端深度学习框架MACE》:

https://www.leiphone.com/news/201806/5PYJx9sVJDURvwpj.html

IvAFNv7.png!web

MACE 计算框架的整体结构

而现在,MACE 支持的应用场景大大增多,包括:AI 单摄、图片风格化、场景识别、图像超分辨率、翻译以及语音等。它针对移动芯片特性进行了大量优化,目前在小米手机上的人像模式、场景识别功能中已广泛应用。

yaEjqmf.png!web

用 MACE Model Zoo 中的 fast style transfer 模型在手机端生成的风格化图片

这次的升级,MACE 0.12.0 主要从以下四个方面入手,使其在实际应用中有了更大优势:

  • 更丰富的异构计算算子

  • 降低跨设备运行性能损失

  • 新增 Kaldi 语音识别算子支持

  • 新增 CMake 支持

fErEJf2.png!web

其中,框架已支持的语音识别系统 Kaldi 是由 Daniel Povey(日前刚出任小米集团语音首席科学家)主导开发的开源语音识别系统,在众多语音识别测试和应用中有广泛的使用。

据介绍,MACE 已经支持大部分 Kaldi 系统内组件,以及 ONNX 形式的的 Kaldi 模型。此外,项目还提供了 Kaldi-onnx 转换工具。

值得注意的是,小米也在大会上公布了 MACE 近期(未来一两个月)的规划:

  • 一是即将开源 MACE-Kit(人脸检测、人脸识别、语音识别、目标检测端到端 SDK);

  • 二是新增微控制器支持(全面支持手机与 IoT 设备超低功耗推理场景);

Un2qyyz.png!web

崔宝秋也表示,在未来小米将继续加大在 Kaldi 上的投入,帮助打造一个国际化的开源社区,进一步引领开源的语音识别技术。

Github 地址:

https://github.com/XiaoMi/mace

文档地址:

https://mace.readthedocs.io/en/latest/

MACE Model Zoo 项目地址:

https://github.com/XiaoMi/mace-models

aIJfumm.png!web

其它开源内容

MiNLP 1.2

今年年初,小米 MiNLP1.0 正式发布,该平台是小米基于声学自主深耕平台,在小米开发者大会上,崔宝秋表示小米 MiNLP 平台每天调用次数达到 60 亿次,然后正式发布 MiNLP 1.2。

nUVvmyM.png!web

新版 MiNLP 1.2 平台相较之前主要有两个重大更新:

  • 调用模式从本地调用到支持云端、本地、移动端三端调用;

  • 分析功能从词法分析拓展到句法和语义分析;

另外,新版平台也可以吸收和集成当前的前沿进展,并进行技术创新;同时,新版平台所支持的业务也进行了全面拓展,目前可支持公司的多项业务。

neMFbmJ.png!web

Pegasus 1.12 

Pegasus 是一个分布式 Key-Value 存储系统,最初是用于弥补 HBase 在可用性和性能上的不足。

Pegasus 系统的 Server 端完全采用 C++ 语言开发,从而避免了使用 Java 所带来的 GC 影响和虚拟机开销;同时,它也使用了 PacificA 协议支持强一致性,使用了 RocksDB 作为单机存储引擎。由于不依赖外部文件系统,Pegasus 的 IO 路径更短,延迟通常更加稳定可控。

Iriemay.png!web

模型设计上,Pegasus 则采用了哈希分片进行数据的拆分,分片(Partition)是系统内部数据迁移的最小单元,每一分片内的数据有序存储,各个分片之间数据隔离,每个分片对应一个单独的 RocksDB 实例。

它也可看做是 HBase 和 Redis 的结合体,保证了高的可用度,也具有好的伸缩性。如果业务对性能的要求不是太高(譬如 P99 要求在 1 毫秒以内),那么 Pegasus 将是个不错的选择。

对于升级后的 Pegasus 1.12,其性能变化主要有三点,包括:

  • 提供 HTTP 接口,以获取集群元信息;

  • 提供更好的多租户支持能力;

  • 支持接入 Prometheus 监控系统; 

imaEby6.png!web

目前,Pegasus 1.12 则在提供一系列丰富的功能支持,如:快照冷备份、表的软删除、表级写限流等的基础上,有了更完善的高可用、高性能、强一致、易伸缩等性能。

Pegasus 1.12 Github 地址:

https://github.com/XiaoMi/pegasus

更多关于 Pegasus

https://pegasus-kv.github.io/overview/

雷锋网 AI 开发者

雷锋网年度评选—— 寻找19大行业的最佳AI落地实践

创立于2017年的「AI最佳掘金案例年度榜单」,是业内首个人工智能商业案例评选活动。雷锋网从商用维度出发,寻找人工智能在各个行业的最佳落地实践。

第三届评选已正式启动,关注微信公众号“雷锋网”,回复关键词“榜单”参与报名。详情可咨询微信号:xqxq_xq

YB7NjiA.jpg!web

雷锋网原创文章,未经授权禁止转载。详情见 转载须知

b6Zvmyn.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK