天元MegEngine正式开源 AI生产力平台到底有怎样的价值

作者:张伟 来源:原创 2020-03-27

  近日,旷视科技对外开源了自家Brain++核心深度学习框架MegEngine,旨在解决开发者、企业 AI “源力”不足这一现状。

  该框架支撑了整个旷视的科研及产品化,并助其斩获了27项全球AI竞赛冠军和MS COCO三连冠傲人成绩。而此次开源,究竟能为开发者乃至行业用户带来怎样的价值,我们先从这款产品的研发开始说起。

  MegEngine的开源之路

  旷视最早是以机器视觉、人工智能算法起家,在随后的业务中,为了将算法结合应用场景提供给客户,便推出了产品解决方案层的一系列产品。但场景拥有无限性,于是旷视提供了数据与应用方面的中台,以这样一种方式产生出更多场景解决方案。

  正如旷视联合创始人兼CTO唐文斌所说:“算法有很多种,旷视目前做过的算法就有数以百计,但在更多实际场景中,需做的算法数量还要远高于此,单凭旷视一家公司显然是做不完的,所以更需要有好的AI基础设施来帮助旷视这样的公司,也帮助行业创造出更多的算法。”

  唐文斌认为,AI的基础设施一部分在于芯片,芯片承载了AI的计算需求,但另一方面,更需拥有一个AI生产力平台。就好似编程时所需的IDE,这种集编写、分析、编译等功能于一身的集成开发环境,大幅提升了编程效率。

  但AI生产力平台较之IDE相比则更为复杂,其原因在于涉及了数据、算法与算力三方面因素,而这也是Brain++平台能够发挥出的核心能力。

  在Brain++框架之中,囊括了数据解决方案MegData、算法框架MegEngine、算力MegCompute三大维度。

  用一个具象化的案例来比喻,如果将算法喻为炒菜方式,那么数据便是食材,算力则是一把猛火,而在算法中仍需一个框架来承载这些计算,其便是MegEngine这口“锅”。

  此次开源的主角——MegEngine(中文名:天元),旷视对其的定位是“一个训练推理一体化、动静态合一的工业级深度学习框架”。

  天元框架在2014年正式启动开发,在Brain++研发之前,当时旷视使用的是Theano框架,3-5周的时间成本显然无法在满足自身复杂的场景,于是在2014年时,旷视内部开始思索,是否能自研一套更灵活强大的系统来代替Theano。

  但自研需要极大的决心和魄力,尤其在2015年时,Google开源了TensorFlow,对于和TensorFlow均师从于Theano的旷视而言,两者在接口、设计等方面有着高度的相似性。这也让旷视内部产生了激烈讨论,是否还要坚持自研。但在随后的测速中,旷视自身核心系统经过测速,比当时的TensorFlow快了10倍,这样一个结果才让其坚定了自研决心。

  一年之后,Brain++实现了旷视内部全员的部署使用,时至今日旷视所有算法,均基于的是天元MegEngine进行训练与推理。

  历经多年打磨和验证,去年起旷视开始筹划Brain++天元的开源计划。此次天元共开源了35万行代码,里面主要包含C++、CUDE、Python等Code,基于Apache License 2.0上进行发布(OpenAI、GitHub同步发布),帮助开发者能够放心的在一些商用场景下发挥自己的创造力。

  但所有程序员都知道,一个代码自己用和拿出来分享的差距有多大。因此此次发布的仅是一个Alpha版本,后续会相继推出Beta版与1.0正式版本。唐文斌期望的是,在Beta和正式版本之间,能有更多人参与进来提出建议、贡献Code,未来Bate版本或许不再是现在研发团队做出的,而是以开源形态来与程序员们进行共建。

  本次与天元一同推出的,还有深度学习工具MegStudio、预训练模型中心ModelHub等,以帮助程序员能够快速完成上手。此外,即日起Brain++也将向企业客户开放。

  训练推理一体、动静合一的天元MegEngine

  开源之前,旷视对这个框架进行了一次重大升级,从旷视给出的整体架构来看,天元MegEngine总共分为了5个层次。

  最上层计算接口层,可通过Python、C++两种语言来对整个框架进行使用与编程,进行原型系统的设计研发与训练推理。

  图表示层包含了动静态图表示功能,在其之下是个完整一体化的核心计算引擎,囊括自动求导机制、图优化、图编译等主要功能。旷视研究院高级技术总监田忠博表示,由这样一个层次便能支撑起前面动静态图与接口完整的功能。

  第四层主要负责运行时管理,把整个计算设备抽象为执行流,由调度器对这些执行流进行合理的调度,并通过一整套内存管理机制来对内存进行高级优化。

  最底层是支撑整个系统核心计算的计算内核层,在第一阶段的开源中,会率先释放X86与CUDE部分,后续陆续释放ARM、ASIC等一系列计算设备的支持。此外这部分中的高性能异构通信库,能够使计算框架得以在分布式多节点上进行大规模使用。

  正是这样一套复杂的系统,解决了旷视多年在产品研发时遇到的痛点。比如在传统深度学习研发的流程中,训练和推理框架往往是分别设计实现的,相当于两个阶段。当进行算法设计时,算法先要经过训练框架变为可训练模型,随后再将其转换为一个推理框架支持的格式,并由推理框架在不同设备上进行计算。

  在训练与推理转换过程,常会发生算子不被支持、转换中需要手动优化等问题。而当推理框架投向计算时,又会因流程过于复杂导致问题无法精确找出,致使在推向生产环节后,出现速度与精度方面的偏差。

  天元框架解决的便是这样一个问题,这个集训练与推理一体的框架,无需进行模型转换便能直接使用训练后得到的模型进行推理。凭借这一机制,让训练时观测到的速度精度能够与推理时保持一致。并在投向计算时,保障了跨设备模型在精度方面的对其。

  另一方面,据田忠博介绍,此前深度学习框架大致分为两种,一个是以TensorFlow为代表的静态深度学习框架,这个静态图框架优势便是易部署且能快速变为产品,得益于这一优点也使其颇受工业界青睐。但研究界则更青睐以PyTorch为代表的动态框架,其愿意在于PyTorch调试方便使用灵活。

  TensorFlow与PyTorch虽各有各的长处,但此前却无法很好的兼容在一起。旷视科技也在思考,有没有一种方法能够将两种框架的优点集成在一起,从而为研发起到支撑。

  田忠博表示:“天元MegEngine研发之初,便希望能够达到一种动静合一的效果,整个框架通过使用装饰器修饰过trace函数,使函数得以在动静态两种模式下进行正确计算。通过这样的方式,既可在动态过程中非常方便的进行模型研发调试,又能在生产环境中以静态的方式执行。”

  天元将对行业产生怎样的影响

  其实当下,有目共睹的是AI正改变着各行各业的日常工作方式,以互联网企业为代表,现今无论什么业务都与AI挂上了钩。之所以这类企业能够做到快速响应,其原因在于那一年间兴起的企业本身就是凭借算法突围而出的,因此在时代演进中也能更平滑的将业务迁移到AI之上。

  但AI是个没有边界的技术,其服务的不仅只有互联网企业。我们以TensorFlow开源后几个成功案例来看,如澳大利亚莫道克大学的Amanda Hodgson博士和新西兰昆士兰科技大学Frederic Maire博士领导的科学家团队,正是利用TensorFlow构建了一个可以在航拍照片中找到海牛踪迹的探测器,从而评估人类活动对它们生存状况的影响,以采取行动更好地保护这些人类的朋友。

  再比如新西兰惠灵顿维多利亚大学的博士生Victor Anton和他的研究团队,也是凭借TensorFlow训练出了一个能够别特定的鸟类呼叫并监测鸟类活动的系统,来掌握濒危鸟类位置和活动规律,并制定更完善的保护策略。但反观国内方面,TensorFlow诸如此类的案例却少之又少。

  正因如此,这一次旷视的开源,对于未来将会产生深远的意义,不仅在公益事业方面,在各行各业都将起到决定性助力,帮助行业真正做到深度学习,简单开发。