GMTC全球大前端技术大会(北京站)门票9折特惠截至本周五,点击立减¥480 了解详情
写点什么

刚刚,旷视重磅开源深度学习框架天元 MegEngine

2020 年 3 月 25 日

刚刚,旷视重磅开源深度学习框架天元MegEngine

北京时间 2020 年 3 月 25 日,AI 独角兽旷视科技宣布开源其 AI 生产力平台 Brain++的核心组件 — 深度学习框架天元(MegEngine)。InfoQ 有幸对旷视研究院院长孙剑、旷视云服务业务资深副总裁赵立威、旷视研究院高级技术总监田忠博等专家进行了采访,技术细节、关键特性、开源信息…有关天元的一切,本文一“网”打尽。


MegEngine 开源,四大特性实现“简单开发”

据了解,MegEngine 的中文名有多重寓意,“天元”在围棋中指棋盘的正中心,在古代天文学中指代北极星,是万物本源和开始,因此,命名“天元”既代表 MegEngine 是旷视技术战略大图的最核心的布局,又表达了成为开发者基石的希望。


发布会上,天元项目的负责人,旷视研究院高级技术总监田忠博对天元 MegEngine 深度学习框架作了详细介绍。


天元是一套训练推理一体化、动静态合一的工业级深度学习框架,架构上具体包括 5 层:


如下图所示:



最上层是计算接口层,它向外暴露了 Python 和 C++接口,可通过这两种语言对整个框架进行使用和编程,进行原型系统的设计和研发、进行训练和推理。下面一层是图的表示层,包含了动态图和静态图的表示功能。再下面是一个完整的、一体化的核心计算图,它包括一个自动的求导机制、做图优化和图编译整个功能,由这一个层次就可以支撑起动态图、静态图 和接口的完整的功能。


在这个层次之下,它有两个主要的部分,一个部分是运行时的管理。运行时的管理:旷视会把整个计算设备抽象为执行流,由调度器对这些执行流进行合理的调度;同时旷视还有一整套的内存管理机制,包括静态内存的管理和动态内存管理。这个模块里内置了许多关于内存的高级优化,其中值得一提的是,在里面实现了静态的亚线性内存的优化器,它能够使得整个内存管理效率得到非常高的提升。


在最底层是支撑整个系统核心的计算内核层,在这里面有一个高性能的算子库,支持常见的一系列计算设备,比如 X86、CUDA、ARM 以及专业计算芯片等。在第一阶段开源中,会首先把 X86 和 CUDA 的部分释放出来,后续会逐步把其他计算设备的支持一步步释放出来。同时在这个层次中,还包含一个高性能的异构通信库,能够使得整个计算框架可以在分布式多结点上进行大规模的使用,来支撑更大规模的训练。


天元框架具备四大特性,这些特性主要针对解决现实研发过程中遇到的痛点而设计。


一、训练推理一体化:

瞄准痛点:从研究到生产,流程复杂,精度难以对齐


天元(MegEngine) 支持多种硬件平台( CPU,GPU,ARM )。不同硬件上的推理框架和 MegEngine 的训练框架无缝衔接。部署时无需做额外的模型转换,速度/精度和训练保持一致,有效解决 AI 落地中“部署环境和训练环境不同,部署难”的问题。



二、动静合一:

瞄准痛点:静态图好部署,动态图易调试,但两者难以兼得


动态图易调试,静态图好部署。鱼和熊掌如何兼得,是现代深度学习框架的核心诉求。天元(MegEngine)在静态图的基础上,逐渐加入支持完整动态图的功能。在动态模式下加速研发过程,无需改变模型代码一键切换至静态模式下的部署,为科研和算法工程师同时提供便利。



三、兼容并包

瞄准痛点:框架学习接口各异,模型复现困难,学习成本高


天元(MegEngine) 的顶层 API 基于 Python,采取了类似于 PyTorch 的风格。简单直接,易于上手,便于现有项目进行移植或整合。为更好地帮助学习实践,天元(MegEngine)同时提供了“开箱即用”的在线深度学习工具 MegStudio ,和汇聚了顶尖算法和模型的预训练模型集合 Model Hub 。



四、灵活高效:

瞄准痛点:生产环境计算设备繁多,缺乏优秀性能


天元(MegEngine)底层的高性能算子库对于不同的硬件架构进行了深度适配和优化,并提供高效的亚线性内存优化策略,支持自动 Sublinear 内存优化。对于生产环境繁多的计算设备提供了极致的性能保证。高效易用的分布式训练实能有效支持富有弹性的大规模训练。



天元最大的特点是能做到“简单开发”,帮助开发者解决行业共通的研发痛点,并让他们切实体验到,“训得好”、“训得动”、“训得快”。


田忠博介绍了天元(MegEngine) 的开源路线图:3 月份发布开源的第一个版本 Alpha 版本,该版本包括团队前期整理的很多代码和一些关键步骤。他表示,在这个过程中,希望开发者能够对天元提出批评、给出建议、贡献 code。


“也许下一代天元并不是由旷视的研发团队做出来的,而是与你一起共创出来的 Beta 和正式版本,所以我们也希望跟大家一起来共建更好的深度学习框架”,旷视联合创始人、CTO 唐文斌表示。


按照计划,旷视将在 6 月发布程碑版本 Beta 版本,该版本将全面提供关于 ARM 系列 CPU 的支持能力,引入更多加速设备支持,提供量化和低比特计算支持功能,使大家能基于天元框架,进行先进的嵌入式研发。


正式版本预计将在 9 月份发布,它将提供更加全面的主流设备支持,优化训练推理全流程使用体验,并进行动态计算能力升级,在核心功能和关键部件架构上都能达到稳定运作状态。



3 月 25 日,天元(MegEngine)会在 GitHub 和国内新一代人工智能开源开放平台 OpenI 上同步开源。这次开源的代码约 35 万行左右,使用的编程语言包括 C++、CUDA、Python 等。


发布会上,旷视公布了天元在 GitHub 的代码托管地址 :https://github.com/MegEngine/MegEngine


现在进入天元官网 http://megengine.org.cn/ 可直接上手体验天元框架。


天元开源之后,Brain++能力也将逐步开放

旷视的天元(MegEngine)深度学习框架已经经过了 6 年的打磨。


2014 年初,旷视研究院的三位实习生花了半年时间基本完成了第一代深度学习框架天元(MegEngine)的研发,紧接着利用半年时间完成了自研框架与公司内部所有业务的接轨。


2015 年 11 月,Google 发布并开源 TensorFlow 的消息在技术圈引发轰动。旷视技术人员惊奇的发现,TensorFlow 与天元(MegEngine)的设计思路竟是一样的,都是基于计算图的方式做的。TensorFlow 领先一步开源已博得巨大关注度,天元(MegEngine)很可能就没有继续存在的必要了。


在与 TensorFlow 进行评测对比后,旷视研究人员发现,TensorFlow 性能并不十分理想,刚发出来的开源软件还很不完善,且在计算效率上,天元(MegEngine)要优于 TensorFlow。因此,旷视决定继续走自研框架的路线。


现阶段,旷视有 1400 多研发人员,全员使用这个框架训练和部署算法,在上百个产品、几十种计算平台上使用,这个框架对于新手开发者也很容易上手。


到目前为止,天元(MegEngine)的版本已经迭代到了 8.0 阶段,技术成熟度较高,开源也水到渠成提上日程表。这次为了开源,旷视从 2019 年开始做了大量的准备工作,包括对框架增加新特性等针对性的全面升级。


旷视副总裁谢忆楠表示,开源天元(MegEngine)主要有 2 个原因,内因是,旷视最开始做 Face++,从算法起家,并往行业性的解决方案深耕,现在开源框架本质上又回到了探索算法层面。


另一方面,旷视看到了 2 个无限性,一是场景的无限性,二是算法的无限性,开源框架是实施这个长期战略的一个关键过程,去年初旷视发布了河图 AIoT 操作系统,布局智慧供应链,旨在解决场景无限性,而现在天元(MegEngine)开源则对应算法的无限性。


“现在开源是一个非常好的时机”,旷视云服务业务资深副总裁赵立威强调旷视天元(MegEngine)开源的另一个重要原因是为满足市场需求。


旷视看到,现在很多企业进行 AI+转型或者希望 AI 为自己赋能,AI 正在变成一种新的生产力,但部署 AI 的门槛很高,很多企业并没有很强的 AI 技术积累和能力,实操过程中还会遇到很多挑战。天元(MegEngine)经过多年参与业务实践打磨,其所具备的 AI 能力正是这些企业和开发者所需要的,因此,旷视决定将其开源出来,为高校师生、传统产业和中小企业的 AI 开发者提供服务。


算法生产需要一个大平台,除了需要框架进行算法的训练和推理,还要有算力和数据的支持。在与企业进行合作时,旷视将为企业提供数据、算法和算力的全面支持。即“三位一体”的人工智能算法平台,它包括核心组件 MegEngine,可实现从数据的抽取、清洗、标注、管理全流程管理数据管理平台 MegData,以及分布式、弹性的算力共享平台 MegCompute。


Brain++ 被旷视定义为 AI 生产力平台,它的角色类似一个“算法工厂”,规模化、流程化生产 AI 算法,不仅提升算法生产效率,也让算法更靠谱、更精准,有能力为场景产生真正的价值,覆盖到从 AI 生产到应用各环节去。


据悉,旷视希望通过开源、开放的方式逐步将 AI 生产力平台 Brain++ 的能力传递给业界广大开发者。发布会上,旷视云服务业务资深副总裁赵立威向业界展示了 Brain++ 商业化的全景。“我们不仅将把深度学习框架开源使用,也将开放数据能力、算力能力给企业级种子用户,至少能够先让一部分企业实现 AI+。”据了解,天元已接到了一些来自制造、电信、金融行业的需求。


欲跻身主流框架,底气在哪里?

业界现有的主流深度学习框架多来自国外大厂,最受瞩目的莫过于谷歌出品的 TensorFlow 和 Facebook 出品的 PyTorch,另外还有亚马逊的官方深度学习框架 MXNet,加州大学伯克利分校的深度学习框架 Caffe 等。


一直以来比较尴尬的问题是,中国的开发者对国外框架的依赖程度较高。去年 7 月,IDC 的一项调研显示,国内有 87%的企业和开发者使用开源深度学习框架,他们所使用的深度学习框架中,谷歌和 Facebook 占据了很大的市场份额。


为实现技术自立,国内一些科技大厂推出了一些自研的深度学习框架,如百度 PaddlePaddle,华为的 MindSpore,阿里的 XDL 等,但目前还没有哪一款进阶成为国内通用的主流学习框架。


天元(MegEngine)开源后,国产原创深度学习框架开源阵营又增一“强将”。


很多开发者关心的一个问题是,与已经被开发者广泛使用的 TensorFlow 、PyTorch 等主流框架相比,天元(MegEngine)的差异化特质是什么?


旷视首席科学家、旷视研究院院长旷视孙剑博士对这个问题作出了解答。“与谷歌、Facebook 等大厂不同,旷视是一家 100%的 AI 公司,我们的深度学习框架是‘生长’在旷视的核心业务上的,因此它天然具有实践的基因,从实际问题出发,是我们自己做这个框架的初衷,天元框架结合了很多旷视在实际应用时的深度学习、人工智能落地的问题”。


这几年,深度学习框架呈现群雄逐鹿状态,竞争也日趋白热化,TensorFlow 和 PyTorch 就经常“神仙打架”,争当王者。但是这两个框架又是不同的根据地,TensorFlow 是工业界的名流,它采用静态图利于部署,更适合工业界使用;PyTorch 是学术界的翘楚 PyTorch,它采取动态图灵活方便好调试适合学术研究。


天元深度学习框架则希望在工业界和学术界找到一个平衡点。天元主张兼容并包,希望为开发者提供既好调试、又好部署的方案。


天元(MegEngine)是为了工业级、研究院规模的研发机构设计的算法研发基础的组件,它的一些核心特点设计希望兼顾算法研发和算法工程化的效率。如训练推理一体化能将繁杂的模型生产流程简化到一步、两步,从而快速实现原型并进一步变成产品,它也能帮助开发者缩短缩短算法研发和部署时间、简化流程。


为了方便开发者迁移,旷视团队还对天元框架做了全面升级,在整个框架接口设计、接口命令方面,尊重开发者在 PyTorch 机器学习和数学计算的使用习惯,以让开发者更易上手学习使用。整体而言,与市面主流深度学习框架相比,天元框架上手更快,学习和迁移成本更低。


其实,当下深度学习框架的论资排辈也不必太过较真,对于开发者来说,深度学习框架并不是非此即彼的关系,毕竟,好用、切实解决问题,才是最关键的。


2020 年 3 月 25 日 15:354859
用户头像
刘燕 InfoQ记者

发布了 595 篇内容, 共 189.3 次阅读, 收获喜欢 1158 次。

关注

评论 1 条评论

发布
用户头像
深度学习框架都是根据学术界最新的理论成果研发的,这些公司的顶级科学家都关注着最前沿,因此总体设计思路都差不多,就看跟各自业务结合的情况,毕竟工业界产品还是落地于公司的业务场景
2020 年 04 月 04 日 16:17
回复
没有更多了
发现更多内容

面对大促DevOps怎么做?这里有一份京东11.11 DevOps备战指南

京东科技开发者

云计算 DevOps 运维自动化

熔断原理与实现Golang版

Kevin Wan

go microservice

架构师训练营第一期 - 第八周学习总结

卖猪肉的大叔

极客大学架构师训练营

京东11.11完美收官!京东智联云以技术服务助力实体经济

京东科技开发者

云计算 大数据 云安全

线程池 ThreadPoolExecutor 原理及源码笔记

程序员小航

Java 源码 jdk 线程池 并发

极客大学 - 架构师训练营 第九周作业

9527

极客大学 - 架构师训练营 第九周

9527

浅谈软件研发管理体系建设

大黄蜂

面试重灾区——Synchronized深度解析

执墨

并发编程 synchronized 内存布局 CAS 锁升级

不可思议,竟然还有人不会查看GC垃圾回收日志?

田维常

垃圾回收 GC

《Java程序员修炼之道》.pdf

田维常

架构师训练营第 1 期第 8 周作业

du tiezheng

极客大学架构师训练营

将减少阻力的香蕉法则,运用在软件开发上会产生什么效果?

Philips

敏捷开发 快速开发 企业应用

分布式集群如何实现高效的数据分布

vivo互联网技术

分布式 DHT hash 数据存储

找出两个链表中合并的元素

互联网应用架构目标及技术方案

第八周作业

SpringBoot中的响应式web应用

程序那些事

spring WebFlux 程序那些事 响应式系统 spring 5

BATJTMD,大厂招聘,都招什么样Java程序员?

小傅哥

Java 互联网 面试 小傅哥 简历

关于mysqldump,这个参数你可能还不知道

Simon

MySQL timestamp

第八周总结

数字信封加密

莫问

虽然世界给我们变化,但让我们的人生更向幸福靠近一点点,而入门票就是自学这回事

叶小鍵

charles的使用方法

Yolanda_trying

HTTP 前世今生

大导演

HTTP 前端进阶训练营

【架构师训练营 1 期】第八周作业

诺乐

【架构师训练营 1 期】第八周学习总结

诺乐

详解快速开发平台与工作流通用组件的设计规范

Philips

敏捷开发 快速开发 企业应用

springboot+java+redis 简单实用的搜索栏热搜,个人历史记录,文字过滤

灰尘子

一个数据中台如何算成功了?

薄荷点点

数据中台

直播预告 | 云原生在CloudQuery中的应用与实践

CloudQuery社区

数据库 sql 容器 云原生 工具软件

刚刚,旷视重磅开源深度学习框架天元MegEngine-InfoQ