刚刚,旷视开源深度学习框架「天元」:Brain++ 内核,研发和落地都在用;孙剑:COCO 三连冠背后的秘密武器

乾明 发自 凹非寺 

量子位 报道 | 公众号 QbitAI

耗费资源打造优化 6 年,迭代到 8.0 版本,旷视技术体系的关键支柱,现在正式对外开源。

刚刚,深度学习驱动之下最早创业的中国 AI 独角兽旷视,宣布开源自研深度学习框架 MegEngine(Brain++ 核心组件之一),中文名天元——取自围棋棋盘中心点的名称。

在发布会上,旷视联合创始人、CTO 唐文斌透露,这也是向 AlphaGO 致敬。

与之前开源的“前辈”框架们不同,旷视开源的 AI 框架,是其创业、壮大和屡屡刷新业内纪录的核心驱动引擎。

所以旷视天元,因何开源?有啥目标?会给业界带来什么变化?

在介绍天元开源时,唐文斌介绍了“天元”的另一层含义:万物的基础。

他说:“我们希望能够通过天元这样一个深度学习框架,能够作为中国人工智能的一个基石,能够帮助中国人工智能做得更好。”

而聚焦到旷视本身,开源亦是其“基于算法向产业方向升级,打造 AI 基础设施”战略的延伸,近年一连串动作,都是该方向上的不断落子。

智能化时代的生产力工具

2019 年初,旷视发布 AIoT 操作系统“河图”,应用于物流场景,让更多硬件可以接入,并实现平台统一控制、调度。

与此同时,这套系统还能让更多的生态伙伴可以参与其中,开发属于自己的智能物流解决方案,创造场景的价值。

“河图”发布之后,虽然平台软件的产生得以让更多的硬件接入,让 AI+ 场景越发丰富。但旷视发现,更大的需求出现了——场景具有无限性。

他们认为,这导致了场景对算法需求的无限性,但没有任何一家企业可以创造所有算法。要解决这个矛盾,激发整个产业算法创新能力,就需要一套面向所有人开放的 AI 基础设施。

那什么是 AI 基础设施?

唐文斌在发布会上说,只有 AI 芯片平台和 AI 生产力平台能够被称为 AI 基础设施。

其中,AI 的计算需要 AI 芯片平台承载不容置疑,而 AI 生产力则需要来自于“框架”。

之前,在观察评估 AI 框架时,我们也曾有过更宏观的视角:

从人类社会生产大爆发的三大时代来审视,生产力的重点是规模化工具的重要性。农业文明时代的核心,是耕犁的使用,让耕种有了规模化发展的可能。

工业革命的关键,是蒸汽机的启用和推广,让机器真正可以规模化部署应用,替代手工作坊。而智能化时代中,如何实现数据规模化运用和处理,成为竞争力关键。

通常情况下,我们把技术作为第一生产力,但更多聚焦于技术,反而会忽略了规模化运用“技术”的工具。

如果回顾起来,就会发现这样一个规律,谁掌握时代生产工具,谁就能掌握生产力,从而有可能成为时代红利的最大受益者,在竞争中占得先机。

按照产业经济学的理论,生产效率的本质,在于减少消耗、增大产出,从而利用结余推动更进一步的发展,并在每个增长瓶颈中抓住产业变革奇点,实现范式转移和产能跃迁,从而真正穿越周期。

具体到 AI 驱动的智能化时代当下,打造人工智能算法的框架,无疑是减少消耗的工具:规模化 AI 算法落地推动产出,各行各业将进入一场新的能效变革战争。

所以在产业智能化的大势下,算法开发框架的意义也进一步凸显,更是成为数字基础设施建设、产生 AI 生产力的核心工具之一。

从这个角度来看,旷视开源天元既是为技术共同体贡献一份力量,也是其引入开放性创新、打造 Brain++ 生产力平台、角逐产业智能时代的战略所向。

唐文斌认为,就任何一个产业来说,只有引起标准化、规模化的连锁反应才能迎来真正繁荣。

这就是天元的设计理念,直接反映在框架设计的特性和能力中。

天元框架的四大特性

天元是旷视 Brain++ 的核心组件之一,主要功能:帮助开发者用户借助友好的编程接口,进行大规模深度学习模型训练和部署。

根据旷视给出的官方总结,天元具备训练推理一体化,动静合一,兼容并包和灵活高效四个特点,使其在于其他主流深度学习框架对比中,不落下风。

所谓训练推理一体化,指的是通过天元训练得到的模型和产物,可以直接进行用于产品的推理、封装。在部署时,它还能帮助开发者自动删除冗余代码,实现模型自动优化。

动静合一,是指天元集成了“静态图性能高、占用资源少且易于部署”、“动态图简单灵活、方便调试且易于上手”的优点。

在充分利用动态图模型训练优势时,开发者可以通过天元动静态一键转换功能,以静态图的形式完成生产和部署;此外,天元还支持动静态的混合编程,灵活性更强。

在发布会上,旷视研究院高级技术总监田忠博给出了一个例子。

他说:“在使用天元动态图能力的时候,大概可以在一个 32Batch 左右进行计算,如果把它转换到静态图的情况下,它就可以支持到 64Batch 的水平。”

但这不是全部。

他还介绍称:“如果大家希望在这种情况下,训练更大的 Batch,训练更大的模型,完全可以采用亚线性的自动内存优化技术,天元可以在几乎无降低计算速度前提下,达到 256Batch 训练能力。”

而且,随着你的模型变大、变深,它的效果越好。

田忠博透露,旷视内部有一些评测上,可以实现某些大模型 20 倍以上的内存节省,速度几乎不变。

兼容并包,则体现在天元的易用性上,其具备 Pythonic 的 API——习惯用 Python 进行传统机器学习的开发者,学习成本更低、易于上手。而且,天元还支持 PyTorch Module 功能,可以直接导入模型,迁移成本低且极大方便模型复现。

灵活高效,专指天元具备很强的多平台多设备适应能力,能通过类似汇编和指令重排等技术,使得天元内置算子能够在推理或生产环境中充分利用多核优势,灵活调用设备的计算力,尤其适用于大模型算法训练。

那么问题来了,天元有如此能力与特性,关键秘诀是什么?

架构设计。

天元框架的整体架构

从架构上来看,天元具体分为计算接口、图表示、优化与编译、运行时管理和计算内核五层。

在顶层的计算接口上,天元配置 C++ 和 Python 接口,用以解决框架学习接口各异,模型难以复现的问题;

在图表示层,天元内置动静态转换功能,支持开发者混合使用动态图和静态图模式进行编程;

在优化与编译层,天元构建核心计算图支持用户高效交互,进一步优化和编译 API 表达的计算,具体包括自动求导器、图优化和图编译功能;

运行时设备管理中,天元配置计算调度和内存管理两个模块,通过计算调度模块将设备抽象为执行流,并通过调度器实现智能调度。

内存优化上,天元同时采用了动态、静态内存分配并存的方式,支持自动亚线性内存优化,同时,旷视独创了自动的亚线性内存管理优化器,使天元能够得到更好的内存优化效果。

天元的底层(计算内核)拥有一个基于异构架构,内置高效计算机视觉算子的计算内核,具备 X86,CUDA 等主流硬件设备智能适配能力。

其可以通过内置算法,根据设备本身启发式地选择最优内核,也能让用户自己选择最适合的内核进行计算。

此外,天元配备了高性能异构通信库,支持用户在不同机器和计算卡之间进行高性能的通信,以实现多机多卡、大规模、分布式的算法训练。

如此框架,用到实际中效果会怎样呢?

开头就有说,旷视创业发展至今,成为全球估值最高的 AI 独角兽之一,背后离不开这个框架的强力驱动。

旷视核心中的核心

过去的 6 年中,天元框架作为旷视“真核”Brain++ 的一部分,与深度学习云计算平台(MegCompute)、以及数据管理平台(MegData)一起,支撑旷视全部业务。

旷视首席科学家、研究院院长孙剑说:“旷视 1400 名研发人员,全部使用天元框架,并将其应用到了上百个产品、几十种计算平台上。”

在孙剑看来,天元与谷歌推出的 TensorFlow、Facebook 推出的 PyTorch 有很大不同。

“AI 公司的深度学习框架和平台公司的深度学习框架,考虑的点、方位、方向上都不同。”他说,“我们的深度学习框架(天元)生长在旷视的核心业务上,我们希望能够对特定方向上的 AI 开发者带来好处,希望他们可以同时或者使用不同的框架来解决不同的问题。”

比如在主流的计算机视觉模型(ResNet 18、ResNet50、MobileNet v2 和 ShuffleNet V2)上,天元的训练速度不同于其他主流框架。

在这次开源中,围绕着天元框架,旷视还发布了一系列开发工具。

比如开箱即用的在线深度学习工具 MegStudio,能够让开发者快速体验天元的框架,训练模型。天元还上线了囊括顶尖算法的模型中心 ModelHub,其中包括旷视研究院最新的技术、研究成果。

与此同时,旷视也将分布式计算中的数据并行和模型并行方式应用到了天元中,进一步提升大规模图像数据处理和模型训练的效率。

面向更大范围、更多种类设备上的部署,天元提供了神经架构搜索、网络剪枝和构建低比特的小型神经网络等功能。

而且,天元中还集成了旷视最新的 AutoML 技术,自动化设计深度学习算法的各个关键环节,让算法来训练算法,让 AI 来创造 AI,降低上手门槛。

以上种种能力,无不证明着,天元正是旷视核心中的核心,压箱底的本领。

最直接的例子,莫过于旷视持续三年拿下 COCO 重头戏“物体检测”冠军,统治力堪比“中国乒乓球队”。在 2019 年 ICCV 夺冠后,孙剑再次感谢 Brain++,称一连串成绩的取得,离不开背后强大的 Brain++。

而承担着 Brain++ 平台生产 / 开发算法任务的天元,更是发挥着重要的作用。

但就是如此利器重器、核心中的核心,旷视现在开源了。

why?

历时 6 年打造优化,开源是“无限游戏”

对于旷视来说,直接推动开源的因素有两个:一是技术是否成熟,二是时机是否得当。

旷视联合创始人、CEO 印奇称,这直接与 AI 行业的发展有关系。

他说,当算法变成改造甚至颠覆软件行业的力量时,最后核心就是看这些 AI 的公司有没有平台化的能力,即“能够批量、高效、比竞争对手更及时地供应优质算法”。

而这种竞争的决定性因素,就在于是否掌握了核心引擎的框架。

所以,旷视在 2014 年就自主研发了“天元”框架,这比 TensorFlow 开发的时间还要早。

2015 年年中,天元框架在旷视全公司推广,其业务线上的模型全部换成了自研框架训练出来的版本。

同年 11 月份,谷歌开源 TensorFlow 后,虽然一度让旷视内部对于是否继续研发深度学习框架产生动摇。但经过大规模评测后,旷视还是走向了自研的道路——毕竟刚刚问世的 TensorFlow 效果并不理想。

行至今日,天元不断完善,Brain++ 逐步成型,旷视进一步变强,角逐的市场也正在扩大,开源更是成了其作为行业领头公司的担当。

“我们认为其实还是应该为中国整个这样一个 AI 的大的生态去贡献点力量,这个力量能多大我自己也不知道,但我觉得这是应该做的,”印奇说。

在宣布天元开源的发布会上,唐文斌也进一步透露了旷视对天元的期待,希望通过开源,能跟更多的人一起,用 AI 的力量创造更多的价值。

当然,旷视作为一家 AI 创业公司,怎么样既保证自己的核心业务不受到损害,又能够把开源的能力放到最大化?这也是外界关注天元是否开源,如何开源的核心问题。

从天元的开发路线图中,能够看出旷视对待这些问题的态度,不仅没有回避,而且颇显坦诚。

唐文斌坦言,这次开源的天元是 Alpha 版本,基于 Apache License2.0,代码大概有 35 万行,囊括了大多数应用场景。

接下来的 6 月份,旷视将发布天元的 Beta 版本,增加对 ARM 系列 CPU 支持、更多加速设备支持、量化和低比特计算支持等功能。

9 月份,旷视会发布正式 1.0 版本,全面支持主流计算设备,升级动态计算能力,优化训练推理全流程使用体验等。

唐文斌说,也希望更多人能够对我们的产品提出批评给出建议,一起来贡献 code,跟大家一起来共建更好的天元。

但不管怎样,自此之后,开发者们在选用框架打造模型算法时,多了一个不容忽视的、有保障的选择。

另外,对于整个 AI 行业而言,竞争维度也进一步提高。开源竞争已不再是某个算法、模型的单点开源,而是变成了框架之战、平台之争,生态集团比拼。

正如唐文斌所说:“AI 能够赋能的行业和场景非常多,这是一个无限游戏”。

在这个游戏里,旷视因 Brain 强大,Brain 因天元走向无处不在,AI 复兴成就了旷视——这个 AI 创业上市第一股,而旷视现在则通过天元,把自己的 AI 影响力和能力,扩散向更广阔的智能化时代。

量子位也问 CEO 印奇,天元开源,内部小目标是什么?

印奇答:中国开发者中口碑最好的框架。

现在,天元正式开门,迎接检验和评价。