AI当自强:独家揭秘旷视自研人工智能算法平台Brain++

2019 年 10 月 21 日 机器之心

机器之心原创





作者:一鸣

随着深度学习逐渐从实验室走向工业应用,各大企业都在探索构建算法架构、实现模型的工具和平台。和使用 TensorFlow 或 PyTorch 等开源框架的公司不同,旷视走向了一条自主研制的道路,建立了从算法研发到部署应用的全流程、一站式人工智能算法平台 Brain++。在 Brain++投入使用 5 年之际,机器之心在此为读者揭开 Brain++的神秘面纱。
 
旷视自研人工智能算法平台示意图


如果说算法模型是果实,那么开发它的环境和框架就是培育果树的土壤。尽管平时在开发中,框架和底层环境没有那么引人瞩目,但没有这些底层技术的支持,优秀的思路和创意也就无从实现。当前,深度学习社区基本上被 TensorFlow 和 PyTorch 两大框架垄断。开源框架固然具有很高的人气和易用性,但是在国际环境变幻莫测的大背景下,是否依赖这些框架就足够保险呢?同时,如果企业有新的想法和业务需求,开源框架能否完美实现?是否能够无缝嵌入业务之中?这些都是 AI 企业需要思考的问题。

近日,旷视自主研发的人工智能算法平台 Brain++荣获第六届世界互联网大会「世界互联网领先科技成果」。


旷视联合创始人兼 CTO 唐文斌在大会上表示,「2014 年我们开始研发 Brain++,它是一套端到端的 AI 算法平台,目标是让研发人员获得从数据到算法产业化的一揽子技术能力,不用重复造轮子也可以推进 AI 快速落地。 我们的 Brain++还引入了 AutoML 技术,可以让算法来训练算法,让 AI 来创造 AI。


通过旷视从 2014 年开始自研深度学习框架,到现如今构建了一整套围绕 AI 开发的整体系统,似乎以上这些问题可以得到一个解答。

Brain++:旷视自研人工智能算法平台

很多人会误以为这仅仅只是旷视的一个深度学习框架,或者是企业内部开发的云计算平台。而事实上,Brain++在旷视内部已成为了支撑算法研究和开发的整体基础底层平台。


Brain++涵盖了深度学习算法开发的整个流程。


具体而言,Brain++涵盖了深度学习算法开发的所有环节。从数据的获取、清洗、预处理、标注和存储开始,到研究人员设计算法架构、设计实验环节、搭建训练环境、训练、加速、调参、模型效果评估和产生模型,到最终的模型分发和部署应用,Brain++为旷视的研发人员提供了一站式全流程的 AI 工程解决方案。
 
总体架构上,Brain++可以大体分为三部分,包括作为主体的深度学习算法开发框架 MegEngine、提供算力支持的 MegCompute、以及用于提供数据服务和支持的 MegData。

据旷视方面透露,Brain++ 其实是国内很早就开始研发构建的深度学习系统之一。 早在 2014 年,Brain++ 就已经开发出来,在当时作为算法框架在公司内部开始使用。 其中,旷视在 2017 年拿下 3 项 COCO 冠军,2018年拿下 4 项 COCO 冠军,以及今年发布的全新的通用物体检测数据集 Objects365,都与 Brain++ 的功劳密不可分。

人工智能平台 Brain++这一系统内部是什么样的?机器之心接下来会按照组成模块进行解读。

三大支柱模块成就 Brain++
 
旷视原创自研的新一代人工智能算法平台 Brain++由三大支柱构成,分别是深度学习框架 MegEngine、深度学习云计算平台 MegCompute 和数据管理平台 MegData。

MegEngine: 极致性能


MegEngine 是 Brain++的核心组件,是为开发者和研究人员提供开发的深度学习框架。这一框架主要用于旷视内部进行计算机视觉领域的算法开发工作,包括大规模的人脸识别、图像分割、姿态识别等。


1. 基于计算图的深度学习框架

MegEngine 的整体架构。


从架构来说,MegEngine 分为四个层,包括计算引擎、运行时管理、编译和优化以及编程和表示。计算引擎以 MegDNN 为核心,发挥计算作用。MegDNN 是一个基于异构架构,有着统一的交互方法的内核,可以根据设备本身启发式地选择最优内核,也可以让用户自己选择最适合的内核进行计算。


在运行时管理层中包括两个模块,分别是内核调度和内存管理和优化两大模块。在内存管理和优化模块中,MegEngine 采用了动态、静态内存分配并存的方式。


在编译层和优化层,MegEngine 使用了基于计算图的编译和优化方法。编程和表示层进行用户交互,能够使用高级编程语言(如 Python)执行用户的命令。


2. 框架优势

旷视的深度学习框架 MegEngine 有着多种多样的优势,相比于开源的大部分深度学习框架,MegEngine 具有:
 
  • 运算速度快:MegEngine 动态、静态结合的内存优化机制,因此速度比 TensorFlow 更快;

  • 内存占用少:通过分析整个执行方案的内存使用情况,MegEngine 充分优化内存,特别是亚线性内存优化,可以支持复杂的网络结构,自动利用部分冗余计算缩减内存占用,可达两个数量级,从而支持更大规模的模型训练;

  • 易用性好:MegEngine 封装了平台细节,易于新人用户快速上手;

  • 支持多种硬件平台和异构计算:MegEngine 支持通用 CPU、GPU、FPGA 以及其他移动设备端硬件,可多卡多机进行训练;

  • 训练部署一体化:整个框架既可用于训练又同时支持推理,实现模型一次训练,多设备部署,避免复杂的转换过程造成的性能下降和精度损失。


3. 和主流深度学习框架对比

MegEngine 之所以能够成为的核心算法框架,主要依靠其底层几大技术。


首先,MegEngine 基于 C++开发,可帮助用户借助编程语言进行高性能的运算执行。在框架内部,使用了目前流行的计算图方式。和其他框架不同,MegEngine 使用的是异构架构,方便使用框架进行分布式计算。


此外,MegEngine 内部的计算以算子的形式进行,它支持多种算子节点和变量算子,包括常用的卷积、全连接、ReLU 和用户可定制的算子,甚至可以计算二阶梯度,从而进行更多底层和灵活的运算。可以说,MegEngine 在尽全力提升深度学习计算性能的基础上,为用户提供了灵活易用的模型构建工具,极大地提升了开发效率。


根据旷视提供的资料,MegEngine 和当前开源的主流深度学习框架——TensorFlow、PyTorch 进行了对比。


MegEngine和 TensorFlow、PyTorch 框架的性能对比。


从图上可以看出,在主流的计算机视觉模型(Resnet50 和 ShuffleNet V1)上,MegEngine 在训练上可以和主流框架媲美。


4. 并行计算支持

值得一提的是,MegEngine 为了提升大规模图像数据进行处理和模型训练的效率,在分布式计算方面下足了功夫。分布式计算中的数据并行和模型并行方式都被用在了 MegEngine 中,极大提升了模型训练效率。
 
在模型并行方面,MegEngine 提供原语级别的支持,方便用户进行模型并行设置和执行。最终,模型并行可以和数据并行模式混合使用。有了深度学习框架天生对分布式计算的支持,MegEngine 在训练和推理效率上达到了很高的水平。

5. 原生 AutoML 支持

 MegEngine 还集成了旷视最新的 AutoML 技术,对深度学习算法的各个关键环节进行自动化的设计、搜索和优化。这项技术以 One-Shot 方法为核心,通过一次训练完成自动化过程,将计算代价减小至传统 AutoML 方法的万分之一,在可控的时间内搜索出高性能、易部署的模型结构。


 旷视 AutoML 技术图示。


相比于市场上的 AutoML 技术,旷视的 AutoML 技术有以下优势:


  • 计算代价小。传统的 AutoML 技术常常需要多次训练模型甚至会遍历部分模型空间,计算代价巨大。旷视的 AutoML 技术只需训练一次即可得到整个模型空间的刻画,大大减小了计算代价,只是平常训练代价的 1-3 倍。

  • 应用范围广。旷视 AutoML 技术提供了一套完整的解决方案,覆盖了大部分业务,包括活体检测、人脸识别、物体检测、语义分割等。

  • 部署方便。旷视 AutoML 技术涵盖了数据处理、模型训练、模型压缩、模型量化等流程,自动处理从数据到落地。

  • 精度高。旷视 AutoML 技术在诸多视觉任务上,超过人类手工设计,达到了业界最优。


除了支持深度学习框架中所有的基本功能,MegEngine 还有很多高级功能,如支持神经架构搜索、网络剪枝和构建低比特的小型神经网络(基于旷视提出的 DoReFaNet)等。

MegCompute:高效灵活


有了性能极佳的深度学习框架和全面的数据平台支持,Brain++也需要强大的算力支撑才能发挥完全的能力。深度学习框架的基础之上,旷视开发出了支撑整个平台计算的系统,称为 MegCompute。


这是一个包括了硬件基础设施、数据存储和计算调度的平台。用于协助研究人员部署训练环境、设计训练流程、提供算力和资源分配服务、监控实验进程、提供可视化效果展示、管理用户权限、存储数据等。


 MegCompute 平台的整体架构。


MegCompute 的总体架构可以概括为「三驾马车」,分别为基础设施、数据存储和计算。基础设施方面,通过高性能硬件支持深度学习计算和大规模数据传输。在数据存储方面,考虑到计算机视觉数据普遍为海量小文件,数据存储平台采用了分布式对象存储系统,具有大容量可弹性扩展的存储能力。此外,在云计算方面,使用精细的算力管理方式,给用户灵活分配计算资源,同时避免算力浪费。


MegCompute会为每个用户会分配若干台虚拟机做开发,这称之为 Workspace, 其中自带了 JupyterLab 方便研究员使用;旷视还通过开发可分享的插件,方便研究员将 JupyterLab 中的内容分享给指定的同事。为杜绝浪费,Workspace 中不带 GPU,那训练程序需要 GPU 怎么办呢?

MegCompute 提供了一种新颖的动态分配使用 GPU 的方式,当需要使用 GPU 运行程序时,可使用 rlaunch 命令将程序直接分配到若干台 GPU 运行,并可以在终端的标准输出获取到远程命令执行的结果。这种方式跟任务提交相比,可以做到无缝执行,不需要将程序打包成镜像进行分发,因为 rlaunch 可以做到跟本地拥有 GPU 类似的使用体验,而广受研究员欢迎。

此外,计算平台提供任务的优先级机制,让集群资源能够高效的利用。同时,通过 GPU 拓扑和网络拓扑感知功能,让大规模多机训练的网络更加快速和稳定,达到更高效的训练效率。


总体而言,MegCompute 从功能上,真正将旷视自研的深度学习框架扩展到了企业级别的系统服务平台,通过连接硬件、数据和深度学习框架,将构建深度学习模型的所有环节串联了起来。MegCompute 有以下几大特点:


  • 性能强大:MegCompute 有丰富的 GPU 计算资源,同时也支持各类硬件,可灵活高效地分配计算任务。

  • 全流程覆盖:MegCompute 支持模型构建的全部流程环节,让研究人员能够实现一站式的业务应用服务,满足工业级的 AI 能力研发测试、部署上线和业务生产方面的工作。

  • 弹性部署:MegCompute 采用了 Docker 容器技术,可以让用户弹性化地构建部署训练环境,在不需要使用的时候直接销毁,使得资源可以及时释放给其他用户,具有非常弹性的特点。

  • 用户友好:用户使用过程中,通过可视化界面进行环境搭建和训练设计方面的工作,也可以通过可视化的方式查看模型测试的结果,不需要关注太多的底层技术细节,使用非常方便。

  • 支持多种深度学习框架:除了和 MegEngine 自研深度学习框架紧密结合外,MegCompute 也支持使用 TensorFlow 和 PyTorch。


MegData:数据综合处理


在构建模型的时候,也需要大量的数据支持。Brain++中的 MegData 是负责提供数据方面的服务,主要有四个方面:1)数据管理;2)数据标注;3)数据处理;4)数据安全。

 

旷视 Brain++的核心组件 MegData。


旷视在研发过程中需要使用大量的图像数据,因此需要一个综合平台提供管理、标注、处理和存储安全相关的服务。根据旷视介绍,MegData 可以提供完整的数据服务,为用户提供了全流程的解决方案。


在标注方面,MegData 提供了数据标注相关的服务,将人工标注和辅助算法相结合,提升标注效率。经过多次的业务打磨,MegData 平台现已拥有全生命周期的项目管理平台,进一步实现 AI 助力,解放人工。另外,MegData 还将旷视原创算法引入标注平台中,利用数据辅助算法实现标注效率的大幅提升。这些标注算法都是基于云的,可以伸缩和扩展。
 
在自动标注上,旷视采用了很多算法。比如,使用聚类算法,旷视可以使某项标注任务的成本下降为原有的 10%。一些标注任务通过算法辅助验收,效率提升 150% 以上。
 
相比于其他同类平台,MegData 在数据层面为 AI 模型研究提供了安全、高效的数据存储和处理方式。同时,由于它是基于云的,具有很高的灵活性。最后,MegData 补全了 AI 算法研发中数据处理的缺失环节,使研发人员不需要花太多精力在数据层面,很大程度上提升了效率,节省了时间和研发成本。


总体而言,虽然不似其他两个 Brain++模块那样引人关注,MegData 在系统中发挥着重要的功能,负责完成了深度学习训练前很大一部分的数据管理、处理、标注和安全的工作。这些都是整个流程环节必不可少的。

自研平台驱动整体技术发展


Brain++系统凸显了旷视在技术开发上的三个趋势。首先,Brain++完全是自主研发的深度学习系统,涵盖了 AI 业务的整体流程。这说明旷视能够完全掌握核心的研发工具和平台。旷视 Brain++是为计算机视觉场景而专门研发的,这是一个以业务为导向的专业 AI 服务系统,因此旷视可以拿出很多精力,针对业务中的需求提出专门的解决方案,而新方法可以快速在实际应用中得到测试和验证,通过业务驱动框架的发展。


最后,由于旷视对 Brain++本身具有完整的掌握能力,并且通过计算机视觉相关场景驱动 Brain++的发展,它的迭代速度非常快。当前,新算法层出不穷,企业急需要能够快速实现算法的人工智能平台,能够迅速将新方法投入实际的生产中。Brain++能够快速根据新的变化进行调整,能够为旷视在新技术的研发和应用上抢占先机,使企业牢牢占领技术高地,保持技术能力常新常青。

文为机器之心原创,转载请联系本公众号获得授权
✄------------------------------------------------
加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com
投稿或寻求报道:content@jiqizhixin.com
广告 & 商务合作:bd@jiqizhixin.com


登录查看更多
1

相关内容

Brain++是旷视自主研发的新一代AI生产力平台,包括深度学习框架MegEngine(旷视天元)、深度学习云计算平台MegCompute以及数据管理平台MegData,将算法、算力和数据能力融为一体。依托于Brain++,旷视可针对不同垂直领域的碎片化需求定制丰富且不断增长的算法组合,向客户提供包括算法、平台及应用软件、硬件设备和技术服务在内的全栈式人工智能解决方案。
华为发布《自动驾驶网络解决方案白皮书》
专知会员服务
125+阅读 · 2020年5月22日
专知会员服务
123+阅读 · 2020年3月26日
【大数据白皮书 2019】中国信息通信研究院
专知会员服务
137+阅读 · 2019年12月12日
招聘 | 平安人寿人工智能研发团队北京研发中心
PaperWeekly
11+阅读 · 2019年6月14日
抖音和头条背后,字节跳动的AI实力有多强?
大伽「趣」说AI:腾讯云在多个场景中的AI落地实践
人工智能头条
4+阅读 · 2018年8月1日
BAT内部薪资、等级大揭秘(史上最全)
九章算法
12+阅读 · 2018年6月25日
全球最大AI独角兽诞生中国,商汤科技凭什么?
商业周刊中文版
5+阅读 · 2018年4月9日
别人女生节送花?商汤女生节送“AI”!
商汤科技
4+阅读 · 2018年3月8日
京东与斯坦福达成战略合作 携手推进AI研究
京东大数据
3+阅读 · 2017年11月28日
【人工智能架构】深度解密京东登月平台基础架构
产业智能官
11+阅读 · 2017年9月26日
Arxiv
6+阅读 · 2018年8月27日
VIP会员
相关VIP内容
华为发布《自动驾驶网络解决方案白皮书》
专知会员服务
125+阅读 · 2020年5月22日
专知会员服务
123+阅读 · 2020年3月26日
【大数据白皮书 2019】中国信息通信研究院
专知会员服务
137+阅读 · 2019年12月12日
相关资讯
招聘 | 平安人寿人工智能研发团队北京研发中心
PaperWeekly
11+阅读 · 2019年6月14日
抖音和头条背后,字节跳动的AI实力有多强?
大伽「趣」说AI:腾讯云在多个场景中的AI落地实践
人工智能头条
4+阅读 · 2018年8月1日
BAT内部薪资、等级大揭秘(史上最全)
九章算法
12+阅读 · 2018年6月25日
全球最大AI独角兽诞生中国,商汤科技凭什么?
商业周刊中文版
5+阅读 · 2018年4月9日
别人女生节送花?商汤女生节送“AI”!
商汤科技
4+阅读 · 2018年3月8日
京东与斯坦福达成战略合作 携手推进AI研究
京东大数据
3+阅读 · 2017年11月28日
【人工智能架构】深度解密京东登月平台基础架构
产业智能官
11+阅读 · 2017年9月26日
Top
微信扫码咨询专知VIP会员