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

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

微信图片_20211202023502.jpg

旷视自研人工智能算法平台示意图


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

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


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


通过旷视从 2014 年开始自研深度学习框架,到现如今构建了一整套围绕 AI 开发的整体系统,似乎以上这些问题可以得到一个解答。
Brain++:旷视自研人工智能算法平台
很多人会误以为这仅仅只是旷视的一个深度学习框架,或者是企业内部开发的云计算平台。而事实上,Brain++在旷视内部已成为了支撑算法研究和开发的整体基础底层平台。


微信图片_20211202023506.jpg

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. 基于计算图的深度学习框架


微信图片_20211202023510.jpg

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 进行了对比。


微信图片_20211202023513.png

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


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


4. 并行计算支持
值得一提的是,MegEngine 为了提升大规模图像数据进行处理和模型训练的效率,在分布式计算方面下足了功夫。分布式计算中的数据并行和模型并行方式都被用在了 MegEngine 中,极大提升了模型训练效率。 在模型并行方面,MegEngine 提供原语级别的支持,方便用户进行模型并行设置和执行。最终,模型并行可以和数据并行模式混合使用。有了深度学习框架天生对分布式计算的支持,MegEngine 在训练和推理效率上达到了很高的水平。
5. 原生 AutoML 支持
MegEngine 还集成了旷视最新的 AutoML 技术,对深度学习算法的各个关键环节进行自动化的设计、搜索和优化。这项技术以 One-Shot 方法为核心,通过一次训练完成自动化过程,将计算代价减小至传统 AutoML 方法的万分之一,在可控的时间内搜索出高性能、易部署的模型结构。


微信图片_20211202023517.jpg

旷视 AutoML 技术图示。


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


  • 计算代价小。传统的 AutoML 技术常常需要多次训练模型甚至会遍历部分模型空间,计算代价巨大。旷视的 AutoML 技术只需训练一次即可得到整个模型空间的刻画,大大减小了计算代价,只是平常训练代价的 1-3 倍。
  • 应用范围广。旷视 AutoML 技术提供了一套完整的解决方案,覆盖了大部分业务,包括活体检测、人脸识别、物体检测、语义分割等。
  • 部署方便。旷视 AutoML 技术涵盖了数据处理、模型训练、模型压缩、模型量化等流程,自动处理从数据到落地。
  • 精度高。旷视 AutoML 技术在诸多视觉任务上,超过人类手工设计,达到了业界最优。


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


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


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


微信图片_20211202023521.jpg

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)数据安全。

 

微信图片_20211202023526.jpg

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


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


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


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


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


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

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
14天前
|
机器学习/深度学习 人工智能 搜索推荐
人工智能与未来医疗:AI技术如何重塑医疗健康领域###
【10月更文挑战第21天】 一场由AI驱动的医疗革命正在悄然发生,它以前所未有的速度和深度改变着我们对于疾病预防、诊断、治疗及健康管理的认知。本文探讨了AI在医疗领域的多维度应用,包括精准医疗、药物研发加速、远程医疗普及以及患者个性化治疗体验的提升,揭示了这场技术变革背后的深远意义与挑战。 ###
44 6
|
15天前
|
人工智能 自动驾驶 数据安全/隐私保护
人工智能的伦理困境:我们如何确保AI的道德发展?
【10月更文挑战第21天】随着人工智能(AI)技术的飞速发展,其在各行各业的应用日益广泛,从而引发了关于AI伦理和道德问题的讨论。本文将探讨AI伦理的核心问题,分析当前面临的挑战,并提出确保AI道德发展的建议措施。
|
15天前
|
人工智能 搜索推荐 安全
人工智能与未来社会:探索AI在教育领域的革命性影响
本文深入探讨了人工智能(AI)技术在教育领域的潜在影响和变革。通过分析AI如何个性化学习路径、提高教学效率以及促进教育资源的公平分配,我们揭示了AI技术对教育模式的重塑力量。文章还讨论了实施AI教育所面临的挑战,包括数据隐私、伦理问题及技术普及障碍,并提出了相应的解决策略。通过具体案例分析,本文旨在启发读者思考AI如何助力构建更加智能、高效和包容的教育生态系统。
|
22天前
|
机器学习/深度学习 人工智能 算法
"拥抱AI规模化浪潮:从数据到算法,解锁未来无限可能,你准备好迎接这场技术革命了吗?"
【10月更文挑战第14天】本文探讨了AI规模化的重要性和挑战,涵盖数据、算法、算力和应用场景等方面。通过使用Python和TensorFlow的示例代码,展示了如何训练并应用一个基本的AI模型进行图像分类,强调了AI规模化在各行业的广泛应用前景。
27 5
|
7天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云AI服务器价格表_GPU服务器租赁费用_AI人工智能高性能计算推理
阿里云AI服务器提供多种配置选项,包括CPU+GPU、CPU+FPGA等组合,支持高性能计算需求。本文汇总了阿里云GPU服务器的价格信息,涵盖NVIDIA A10、V100、T4、P4、P100等多款GPU卡,适用于人工智能、机器学习和深度学习等场景。详细价格表和实例规格见文内图表。
|
1月前
|
人工智能 算法 安全
人工智能伦理与监管:构建负责任的AI未来
【10月更文挑战第3天】随着人工智能(AI)技术的快速发展,其在社会各领域的应用日益广泛。然而,AI的广泛应用也带来了一系列伦理和监管挑战。本文旨在探讨AI的伦理问题,分析现有的监管框架,并提出构建负责任AI未来的建议。同时,本文将提供代码示例,展示如何在实践中应用这些原则。
215 1
|
1月前
|
机器学习/深度学习 人工智能 开发框架
【AI系统】AI 学习方法与算法现状
在人工智能的历史长河中,我们见证了从规则驱动系统到现代机器学习模型的转变。AI的学习方法基于深度神经网络,通过前向传播、反向传播和梯度更新不断优化权重,实现从训练到推理的过程。当前,AI算法如CNN、RNN、GNN和GAN等在各自领域取得突破,推动技术进步的同时也带来了更大的挑战,要求算法工程师与系统设计师紧密合作,共同拓展AI技术的边界。
70 1
|
24天前
|
人工智能 算法 前端开发
无界批发零售定义及无界AI算法,打破传统壁垒,累积数据流量
“无界批发与零售”是一种结合了批发与零售的商业模式,通过后端逻辑、数据库设计和前端用户界面实现。该模式支持用户注册、登录、商品管理、订单处理、批发与零售功能,并根据用户行为计算信用等级,确保交易安全与高效。
|
24天前
|
人工智能 算法 JavaScript
无界SaaS与AI算力算法,链接裂变万企万商万物互联
本文介绍了一种基于无界SaaS与AI算力算法的商业模式的技术实现方案,涵盖前端、后端、数据库及AI算法等关键部分。通过React.js构建用户界面,Node.js与Express搭建后端服务,MongoDB存储数据,TensorFlow实现AI功能。提供了项目结构、代码示例及部署建议,强调了安全性、可扩展性和性能优化的重要性。
|
24天前
|
机器学习/深度学习 人工智能 数据可视化
深度学习之可解释人工智能(Explainable AI,XAI)
可解释人工智能(XAI)是一个旨在使AI决策过程透明和可理解的研究领域。随着AI和机器学习技术在多个行业中的应用变得越来越广泛,其决策过程的透明度和可解释性变得极其重要。
43 0

热门文章

最新文章

下一篇
无影云桌面