本文转载自新智元微信公众号
【导读】 刚刚,中国AI独角兽旷视宣布开源其深度学习框架旷视天元(MegEngine),力图为中国AI应用打造一个新基石。6年前3名实习生从第一行代码写起,艰难创业中在全球AI竞赛斩获27项冠军,今日天元开源,敢与TensorFlow等全球主流深度学习框架争雄。这个绝密武器又解决了开发者哪些痛点?「新智元急聘主笔、高级主任编辑,添加HR微信(Dr-wly)或扫描文末二维码了解详情。」
刚刚,中国AI领军企业旷视举办了一场令业界震撼的线上发布会,向全球开发者开源其AI生产力平台Brain++的核心组件—— 天元(MegEngine) 。天元也成为首个由中国AI公司研发的国产深度学习框架。
天元项目负责人兼旷视研究院高级技术总监田忠博指出,这次开源的天元是一套训练推理一体化、动静态合一的工业级深度学习框架,采用训练与推理在同一个框架、同一个体系内完整支持的设计,让开发者真正体验到“训得好”、“训得动”、“训得快”。
旷视研究院高级技术总监田忠博
过去几年,旷视在研发过程中遇到了很多痛点,这些痛点也是行业共通的痛点,而这些痛点天元都可以解决。
旷视天元架构上具体分为计算接口、图表示、优化与编译、运行时管理和计算内核五层。在顶层的计算接口上,天元配置了C++和Python接口,解决框架学习接口各异,模型难以复现的问题;在图表示层,天元内置动静态转换功能,支持开发者混合使用动态图和静态图模式进行编程。
旷视为MegEngine起中文名字的时候有过很多思考。田忠博介绍:最后选定的“天元”有很多的寓意,首先”天元“在围棋中,是棋盘的正中心,一方面我们希望用这种方式,来表达出MegEngine不仅是旷视技术战略大图的最核心的“布局”,也是说明深度学习框架这样的AI底层基础设施对整个人工智能产业来说都是非常关键而重要的点;其次,在古代数学的概念中,”天元“代表一元方程式,是复杂方程的基础;而在古代天文学中,“天元”的地位与“太一”一样指代北极星,是万物本源和开始。总之,将MegEngine命名为”天元“是希望这个系统真正成为大家共同的基石,成为AI系统中重要的组成部分,能够促进各个领域能够更好的应用和落地AI。
本着“ 深度学习、简单开发 ”的理念,天元有四大优势:
1. 训练推理一体化
旷视天元既可支持研究员进行算法训练,同时训练得到的模型和产物是可以直接进行用于产品的推理、封装。省去模型转换不仅极大简化算法开发流程,更实现了速度和精度的无损迁移,即使是模型的跨设备部署,天元依然能够做到精度的对齐。在部署时,天元还可以帮助开发者自动删除冗余代码,实现模型自动优化。
2. 动静合一
静态图性能高、占用资源少且易于部署;动态图简单灵活、方便调试且易于上手。旷视天元整合了动态图与静态图各自的优势,在充分利用动态图模型训练优势时,通过动静态一键转换功能,以静态图的形式完成生产和部署;此外,天元还支持动静态的混合编程,灵活性更强。
3. 兼容并包
旷视天元具备Pythonic的API,这对习惯用Python进行传统机器学习的开发者来说非常友好,学习成本更低、易于上手,同时天元还支持PyTorch Module功能,可以直接导入模型,迁移成本低且极大方便模型复现;天元内置高性能计算机视觉算子和算法,可为计算机视觉相关模型训练和应用实现深度优化。
4. 灵活高效
旷视天元具备很强的多平台多设备适应能力,可通过类似汇编和指令重排等技术,使得天元内置算子能够在推理或生产环境中充分利用多核优势,灵活调用设备的计算力,尤其适用于大模型算法训练。
孙剑:旷视1400+名研发人员全员使用,天元就像我们的孩子
旷视首席科学家、研究院院长孙剑介绍了如何使用旷视天元做更好的研究。
旷视有1400多名研发人员,全员使用旷视天元引擎,在上百个产品、几十种计算平台上用。孙剑亲切的将天元比做他们的“孩子”,并介绍了这个“孩子”的三大特色优点:
优点一,框架与算法的协同。 当前计算平台差异非常大,很难只设计一种网络,能够满足所有的需求。旷视以天元框架成为中间桥梁,根据不同设备的计算特性,协同设计网络结构和框架算子,从而获得最好的性能。而ShuffleNet就是协同设计的成果,最近几年的在端上运行非常高效的一个神经网络的设计,效果优异。
优点二,高效训练系统。 在COCO物体检测和识别挑战赛上,旷视取得了2017年、2018年、2019三连冠的佳绩。其中一个非常关键的优势,就是旷视天元这样一个训得快的系统。从第一次从框架上引入Synced BN技术,它能支持非常大的Mini-Batch训练,以至于旷视可以非常高速的训练一个系统。
优点三,大规模能力。 孙剑表示这与旷视数据大规模有关,并发布了最新版的Objects365V2版本。这是世界上最大或者更大的物体检测数据集,这个数据集有365种常见物体,超过200万张图象,超过2800万个人工标志的框。
来自AI业务的深度学习框架
从2012年到2013年, AlexNet写了一套东西,那时候也不叫框架,而是一套软件,可以在扩大的NV的GPU上跑。后来贾扬清博士在伯克利做了一套Caffe的开源系统,这个系统成为第一代广泛使用的深度学习框架。
MegEngine算是第二代深度学习框架的训练演进,是基于计算图理念开发的。这种方式非常灵活,让很多的计算求导完全自动,使整个编程容易很多。
2014年旷视基本完成了MegEngine的开发,也借鉴了之前的开源软件。直到2015年TensorFlow宣布开源,才发现大家殊途同归,都是基于计算图的方式来做。但当时TensorFlow刚发出来的开源软件很不完善,旷视内部也和它做了比较,发现自己做的好处更大,所以就一版一版坚持做下来了。到现在,旷视内部的版本已经迭代到8.0了。旷视的框架结合了很多在实际应用时的深度学习、人工智能落地的问题。从实际问题出发,也是旷视做这个框架的初衷。
与Google、Facebook这些大平台公司开发的深度学习框架不同,旷视是一家100%的AI公司,旷视的深度学习框架是生长在自身的核心业务上的,所以AI公司的深度学习框架和平台公司的深度学习框架,在考虑的点、方位、方向上都是不同的。旷视希望从这个方向能够对AI特定化的方向给开发者提供实用的平台和便利工具。
目前主流框架的开源时间、开发主体和框架特性
除了旷视新开源的 天元 ,当前全世界主流深度学习框架包括蒙特利尔理工学院2007年推出的 Theano 、加州大学伯克利2013年推出的 Caffe 、谷歌大脑2015年开源 TensorFlow 、谷歌的人工智能研究员François Chollet 2015年推出的 Keras 、Amazon 2015年底开源的 MXNet 、Facebook 2016年开源的 PyTorch 、微软2016年开源的 CNTK 、百度2016年开源的 飞桨 等。
其中,TensorFlow和PyTorch是两个极端,PyTorch采取动态图灵活方便好调试适合学术科研,而TensorFlow采用静态图利于部署,更适合工业界使用,旷视希望能够为开发者找到一个又要好调试,又要好部署的方案。
这次旷视天元开源,可以说为国产深度学习框架打了一针强心剂。相比市面主流深度学习框架,旷视天元上手更快,学习成本和迁移成本都更低。作为一家将AI成功落地的企业,实践是旷视最宝贵的经验。相比已经实现开源的框架,旷视开源框架最大的差异性,就是 旷视是唯一一家AI本业的企业 ,旷视本身就是做AI Solution的, 旷视的框架最能从AI实践解决方案出发 。
天元是怎么诞生的?
众所周知,旷视是中国领军的AI企业之一。近年来横扫全球各大CV竞赛,获得27 项全球 AI 竞赛冠军。旷视数据、算法和算力三个核心组件都集成在Brain++体系里。作为一套伴随旷视自身6年AI产业实战经验的框架,天元不仅能够在AI竞赛擂台赛为旷视打怪升级加Buff,更撑起了旷视工程化、产品化的半边天。2020年,疫情当前,旷视为何突然选择把镇宅之宝公开,把绝密武器分享给业界呢?这还要从天元的起源说起。
天元诞生——清华宿舍里研发人脸算法,3名实习生写下框架第一行代码
旷视成立于2011年,由三位清华“姚班”学霸创立。早期,旷视使用传统论文方法进行算法研发。2013 年中深度学习刚刚兴起,旷视研究院开始尝试使用深度学习检测器,清华宿舍中一名实习生埋首两周,研发出一套人脸识别检测算法,即便在暗光条件下也能精准检测人脸,前所未有的算法性能技惊四座,于是旷视正式走上了神经网络(NN)解一切的道路。
当时旷视条件艰苦,服务器、主板、显卡等设备都需要人肉从美国一件件背回,第一台用来训练神经网络的机器,是手拼组装而成的4卡游戏台式机。起初,旷视用Theano框架写模型代码,训练神经网络,跑一次训练要编译好几个小时,随着网络越训越大,越来越复杂,低效耗时的框架不仅令人崩溃,更限制了旷视中一些顶尖人才的创造力,旷视中的一些大牛开始摩拳擦掌尝试各种方式,比如在Theano等早期开源框架上简单包一层代码,解决代码冗长的问题,以期“炼丹工作更快捷一点”,但训练效率仍旧满足不了旷视发展需求,一套炼丹程序成不成可能需要3-5周才能得到验证。
2013年底,旷视当时的研发负责人曹志敏提出打造一套能够打通数据、训练和业务的自动化算法研发系统Cycle++,不需要投入过多人力和时间就可以实现算法从研发到应用的自循环体系(旷视Brain++的早期设想)。于是,2014年初,旷视研究院3名实习生(贾开,李百恩,魏铭)第一行代码写起,不到半年的时间,正式诞生了旷视自研的初版深度学习框架——MegEngine。接下来为了追赶旷视发展的进度,研究院不断与业务深入沟通了解一线需求,并复现业务所需神经网络,又用了半年时间,在2015年年中完成了自研框架与旷视内部所有业务的接轨,旷视业务线上的模型全部换成了自研框架训练出来的版本。
2015年11月9日,Google正式发布并开源TensorFlow。而旷视研究院的几名实习生坐不住了,因为他们惊奇地发现,TensorFlow接口、理念等设计思路上竟惊奇地一致。TensorFlow的开源给旷视的自研框架造成了一个巨大的冲击,那就是留存问题。既然大厂都开源了,旷视是否仍然有必要坚持做自己的框架?对此旷视内部分成了两派并进行了一场旷日持久的大讨论,最终决定通过科学的方式来进行决策,经过一次大规模评测,旷视研究员发现刚刚开源的TensorFlow性能并不理想,竟比旷视自研框架要慢10倍。这个结果让旷视更加坚定地走上自研道路。
27 项全球 AI 竞赛冠军背后,旷视绝密武器是“三位一体”Brain++
随着旷视业务的加速扩张,旷视自研框架在业务实践中的优势已经凸显,算法训练周期从两三周缩减至3-5天。彼时TensorFlow还没有解决多卡扩展性问题,一张卡和八张卡的计算效率没有太大差别。但旷视的自研框架效率已经接近线性的加速比,于是开始疯狂购入八卡机。当时旷视环境艰苦,炎夏时节框架研发小组为了保障服务器能够稳定运行,甚至请制冰公司每天放置冰块进行物理降温,但高速运行的服务器太过于吃电,仍被大厦物业视为“定时炸弹”而反复警告。
旷视从研发到业务全面向自有深度学习框架和自有计算集群的迁移,标志着旷视数据、算法和算力三个核心组件正式完成“大一统”,自此旷视AI生产力平台Brain++雏形初现。
2017-2019年间,依托旷视Brain++大规模分布式训练能力,以及业界领先的分布式计算技术训练出的超大规模深度学习模型,旷视累计斩获 27 项全球 AI 竞赛冠军,并开发出大量部署于云端、移动端、边缘端全计算平台的先进深度神经网络,为个人物联网、城市物联网、供应链物联网三大垂直场景赋能提供强有力的支撑。
为了推动AI技术加速落地,让更多的开发者和企业用户使用 AI “源力”,旷视于2019年开始筹备将Brain++最核心的深度学习框架开源,并为 MegEngine 起了一个中文名字——天元。这期间框架研发团队可以说是经历了一场浴火重生,需要把原来封装好的代码分解再重组,以适应广大开源用户的使用体验。
授人以鱼不如授人以渔。旷视开源深度学习框架的原因很简单,就是希望把自己用着好的东西拿出来分享给大家,让有志于学习 AI、用 AI 改变世界的开发者们,可以更加简单高效地用 AI 去创造,实现AI+产业降本增效释放生产力,另一方面,框架代码开源意味着接受群众检验的同时,也能够激发出更多的技术贡献者让它变得更好用。目前,为了进一步提高研究员在训练上的便捷性,旷视天元(MegEngine)正从传统的静态图计算模式向动态的方向转变,未来随着天元的开源,Brain++各项能力会逐步向外开源开放。
深度学习简单,为普通开发者打造AI界的“炼丹炉”
旷视认为要想解决无限场景中层出不穷的新问题,就需要无限的算法。而要获得无限的算法就要先建设AI的基础设施,在旷视眼中,只有两样东西能够被称为AI基础设施:AI芯片和AI底层的平台级产品。
AI芯片大家都很清楚是AI的计算平台,而对于AI底层的平台级产品,旷视联合创始人兼CTO唐文斌给出了一个具体的定义:AI生产力平台。在旷视内部,已经有了这样一个生产力平台——Brain++。
Brain++是集数据、算法和算力为一体的大平台概念,核心能力包括数据的处理、清洗和管理能力,算力的共享、调度和分布式能力,算法的训练、推理及部署能力,可覆盖从 AI 生产(输出算法模型)到应用(实现算法工程化封装)各环节。
简单来说,Brain++就是旷视为AI打造的一套Visual Studio,是一个开发工具集,目的是有效解决 AI 研发门槛高、成本高和效率低的问题,为产学研各界提供一站式、全流程的人工智能专业解决方案。旷视在发布会中提到,将通过开源和开放的形式逐步将Brain++的能力与业界共享。
业内喜欢用“炼丹”来比喻算法研究,那么数据就是金木水火土等各种矿物或自然元素,而框架就是用来炼丹的炉子,算力就是炼丹炉下的火。元素全不全,炉子好不好,火旺不旺决定了AI开发者能不能练出一颗的AI的灵丹妙药。
从旷视的开源发布会可以看出,旷视的院里已经有了一套设施完备的炼丹房——Brain++,而今天,他们打算把他们的炼丹炉开源,免费给大家使用,至于炼丹的原材料和柴火可以根据用户需求合作使用。
开源不意味着完美。旷视研究院高级技术总监田忠博表示,此次开源所发布的是天元Alpha版本,并计划在6月份的时候提供第一个里程碑版本Beta版本,在这个过程中旷视号召更多人能够对天元提出批评、给出建议、贡献code,唐文斌指出:“也许下一代天元并不是由旷视的研发团队做出来的,而是与你一起共创出来的Beta和正式版本,所以我们也希望跟大家一起来共建更好的深度学习框架。”
所有深度学习框架的存在都是为了方便开发者,天元站在前人的肩膀上是青出于蓝而胜于蓝,拓展了深度学习开源框架的新版图,也为开发者们提供了新的选择。
天元开源地址和交流社区入口
那么旷视的这个炼丹炉究竟好不好用?
发布会上,旷视公布了天元在GitHub和OpenI的代码托管地址,同时发布了一个叫做MegStudio的在线深度学习工具和一个模型中心ModelHub,支持开发者开箱即用。其中,ModelHub汇聚了全球顶尖算法的一些预训练的模型,和旷视研究院一些最新的技术、研发成果。旷视表示,更多 SOTA 的模型正在增加中。
想尽快上手一试?
天元 MegEngine 深度学习框架官方网站:https://megengine.org.cn/
GitHub 开源地址:https://github.com/MegEngine/MegEngine