速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

旷视研究院田忠博:中国缺少重量级的开源项目,国产开源需要更加自信 | 开源创新 30 人

  • 2020-10-05
  • 本文字数:4895 字

    阅读完需:约 16 分钟

旷视研究院田忠博:中国缺少重量级的开源项目,国产开源需要更加自信 |  开源创新30人

InfoQ 特别面向新一代信息技术领域技术中坚群体正式推出的「中国技术力量」之「开源创新 30 人」栏目持续进行中,本期嘉宾是旷视研究院高级技术总监,深度学习框架天元(MegEngine)项目负责人田忠博。更多「开源创新 30 人」报道,点击这里查看。也欢迎申请免费采访报道名额:>> [开源创新30 人]

开源对旷视来说是非常需要勇气的事

今年 3 月,旷视科技正式宣布开源 AI 生产力平台 Brain++ 的核心组件——深度学习框架天元(MegEngine),并发布了天元 Alpha 版本。


随后的半年时间里,天元已历经 8 次迭代。今年 6 月,旷视推出了天元 Beta 版本;9 月 18 日,旷视发布了天元 1.0 预览版,意味着天元已经迭代成为一个完备的深度学习框架。


天元是目前旷视内部最大的开源技术项目,也是这家 AI 独角兽第一次大规模地开源动作。


在此之前,旷视通常凭借论文对外阐述其技术理念,如今伴随着天元开源路线图的演进,旷视已形成从研究成果到研究成果报告论文再到研究成果的基础设施的整体开源。这也是旷视向学术界、产业界开放共享自己的研究成果的整体计划和方式中的一部分。


“我觉得开源对于旷视来说是一件非常需要勇气的事,因为像天元这样的基础设施,是旷视非常核心的技术能力”,旷视研究院高级技术总监,天元框架负责人田忠博在接受 InfoQ 采访时表示。


田忠博算得上是一个“开源老兵”了,他从高中就开始接触开源的世界,工作经历中也多次参与开源项目,使用过很多开源技术。二十多年间,他深刻地感受到,开源技术在 IT 界已具有超高的使用率和渗透率,它们基本支撑了几乎所有的大中型公司、小型公司的基础设施、基础架构、商业模式、技术产品。


“我之前和一位法国同事在语言沟通上有点障碍,但我俩写的代码互相都能看懂”。在田忠博眼中,代码是一种工程师间交流的自然语言。“开源本身就是一种自我表达和技术交流,无论代码写的好不好,技术强不强,都有被人看到、相互交流、理解的必要。”


旷视开源的初衷也正基于此。旷视希望通过开源,分享对行业技术的理解,并向世界发声。另一方面,旷视的技术研发过程从开源中受益匪浅,因此也想将技术拿出来回馈开源领域;此外,天元代表了旷视最新的研究和算法,其开源能够让行业接受并更好的使用旷视的技术。

旷视开源战略的核心 — 天元(MegEngine)框架

在旷视内部,开源已经形成了一种共识。这种共识正是天元框架开源的关键推动性力量。


统筹好一个大型技术软件项目的开源是极富挑战的,它要求团队不断打磨自己的技术能力,与此同时还要随时倾听用户的声音并给出反馈,更需要统筹核心技术算法。凡此种种,无不需要付出大量人力和精力。


天元的开源就是这样一项规模庞大的系统性工程。这项系统性工程从 2014 年天元诞生就已开始,并一直以内部大型协作的方式向前推进。


6 年来,旷视 1400 多名研发人员全员使用天元 MegEngine,旷视所有算法均通过天元进行训练和推理。天元的技术成熟度不断提升,开源已是水到渠成。


据了解,旷视决定开源这款深度学习框架主要有两个原因,一是天元框架意味着从算法起家的旷视在本质上又回到了探索算法的层面,旨在解决算法的无限性。另一个重要原因则是基于市场需求的考量,现在越来越多的企业增加了 AI 转型的需求,但部署 AI 的门槛又相对较高,不少企业缺乏 AI 能力,天元开源后便可将旷视所积累的 AI 能力赋能给传统产业和中小企业以及高校师生等 AI 开发者。


田忠博介绍,相比之前的版本,天元 1.0 预览版实现了 5 项重要的技术升级。


首先提供了全新的 Imperative Runtime。天元通过重写动态执行引擎,打破过去几个版本中动态图的限制,将整体的动态图和动态训练能力提升到了新的阶段,能够以更高的自由度来进行算法和模型训练。


开发集成了一套基于 MLIR 的 JIT 引擎,则是另一项关键的升级,天元尝试利用 MLIR 方案进行计算图的进一步融合、优化以整体提升深度学习训练和推理的速度。这可以看作是深度学习框架走向编译器化的第一步,也是天元技术架构演进的新的阶段。


天元 1.0 预览版本还增加了很多实用的功能升级,包括自动代码裁剪功能,支持用户全自动地针对自身网络使用的算子进行代码裁剪,不用手工配置就能最小化推理时的代码体积,提升端侧推理的竞争力。此外,天元进行了 10 余项推理侧性能优化,进一步提升了端侧推理性能;支持对一些主流的国产硬件进行接入,可以使国产 NPU 芯片进行推理工作更加便捷。


天元具有训练推理一体、动静结合的训练能力,全平台高效支持三大核心优势。为了实现上述技术能力,天元在研发过程中克服了重重挑战。


“训推一体”是目前业内最先进且重要的理念。但要想在一个架构内实现两个架构能做成的事难点重重,需要兼顾、平衡与取舍。


为了解决传统模型开发的一系列痛点,天元支持多种硬件上的推理框架与其无缝衔接,开发者不再为了模型转换而头疼,经过用户实际验证结果表明,使用天元开发模型,可以将从训练到推理的交付时长缩短至传统方案的十分之一以下,做到了天级甚至小时级交付。


“动静合一”也是一项难度颇高的功能点。天元框架要面向产业界,融合动态和静态方案是必要的能力,但鱼和熊掌难以兼得。目前业内几乎所有的深度学习框架都没有很好地解决这个问题。


本质上看,动态的使用范式和静态的使用范式不同,动态图使用范式多在模型内的场景,对深度学习算法友好,它要求少束缚、高性能,但并不适合部署应用端。而应用端强调很高的自动化程度与极致的性能,灵活性高,用静态图训练可以让训练的精度、内存消耗和训练速度达到最优。


为了兼得动态图训练和静态图训练的优势,旷视团队提出一项开创性的思路以解决这个问题。团队通过动静结合支持快速模型设计:动态模式下,天元可以方便的排查模型问题,在遇到错误后及时停下,便于分析模型结构上的异常问题。通过添加一行 trace,模型可被直接转换为静态图模式,获得静态图所独有的图优化,既可以更好的对显存进行复用,提高显存利用率,又可以优化计算顺序,提升模型的训练性能。


此外,在开源合规性方面,旷视团队做了大量的工作。田忠博介绍,从 Alpha 版本的 30 万行代码,到 1.0 预览版的 50 万行代码,天元团队进行了多遍、逐人逐行的审核和扫描,以确保在开源范式上做到合规。

行业最大的壁垒在于对技术的掌握能力,而非技术本身

与业内其他框架相比,天元最大的差异化特质是其具备强大的技术与业务整合能力。


与谷歌、Facebook 等巨头不同,旷视是一家 100% 的 AI 公司,天元框架与旷视的核心业务高度结合,使它天然带有实践的基因。从解决实际问题出发是旷视自研这款深度学习框架的初衷,天元一步步成长、一次次迭代过程中,消化吸收了很多旷视深度学习、人工智能技术落地的实际应用问题。


“在算法的掌控上有更高的能力要求,是旷视能够做更好商业的本质。旷视现在的算法和技术能力的核心点在于对技术和场景有深入的理解,不仅‘know what’,更‘know how’,知道在什么样的场景下应该使用何种技术,并能够基于对算法和数据的洞察力,通过对场景的理解提出更好的解决方案”。


深度学习有很多预处理和后处理工作,这些处理与业务场景高度相关,但传统方法无法放在应用于深度学习框架里。而使用天元与使用其他框架相比,天元在使用中的体验有着上本质上的不同点在于,天元能够创造性的地把很多预处理和后处理的部分工作整合到框架中,让框架能够一体化完成,使其达成 “training once ,run everywhere”的体验。在一个 GPU 上进行训练,就可以用同样的模型部署到多种终端上,这是一个革命性的体验。


作为一家商业公司,在创业成长期就将公司最核心的代码开放出去,无疑是一个非常冒险的决定。田忠博告诉 InfoQ,在决定开源初期,团队也曾有过顾虑,将核心能力开源可能会对公司的商业化带来一定影响,但经过综合权衡之后,团队将视野投向更远大的未来,天元开源并不会以商业利益作为核心考量指标。


“到现在为止,整个行业最大的壁垒在于对技术的掌握能力,而不在于技术本身”,田忠博表示。综合来看,开源对于旷视是非常有帮助的,在输出技术见解、提升技术影响力的同时,开源可以帮助公司发现自身的不足,以促进技术和产品持续打磨。


9 月 17 日,旷视对外正式发布了 AI 生产力平台 Brain++ 商业版。集成了天元框架的 Brain++商业版,已陆续与合作伙伴开启商业合作。旷视发现,能够借助天元的能力以及在 Brain++体系内长期的积累,为合作伙伴带来新价值。


作为 Brain++开源开放的大计划中的一个重要组成部分,天元开源所带来的正面效应正在显现。


天元开源后,不少积极的开发者将其他模型适配到天元上。一些芯片和加速设备厂商与天元框架进行了结合和集成,利于天元进一步引入和扩大技术选型范围。这些来自于开发者群体的反馈和创新探索增强了旷视开源生态的价值,助力其拓宽商业体系。

国产开源还不够自信

天元的开源为国产原创深度学习框架开源生态带来了一股新生力量。


一直以来,国内开发者对 TensorFlow 、PyTorch 等国外框架有着较高的依赖。尽管最近几年,为实现技术自立,国内一些科技大厂加快了自研深度学习框架的步伐,但目前尚无一款脱颖而出,成为国内通用的主流学习框架。此前,旷视曾表示与巨头不存在竞争关系,但也曾流露出希望跻身国内主流框架的野心。


早在今年 3 月,清华大学的计图深度学习框架与旷视的天元几乎同时发布,而三天后,华为紧接着宣布开源了全场景 AI 计算框架 MindSpore。加上此前百度开源的 PaddlePaddle,国产深度学习框架开源阵营实力已不容小觑。


近些年国内开源领域发展迅速。在 GitHub 上,中国开发者数量占比高达 70%;在 Apache、CNCF 等顶级开源组织中,随处可见中国公司的身影,Apache 顶级项目里有很多由国内公司或者个人发起。


“但我觉得,总体来看,我们还有很多地方可以再继续进步,国内开源实力与现在 70%GitHub 开源开发者数量相比,并不十分匹配。实际上,中国缺少重量级的开源项目。国外的重量级开源项目特别多,但中国像安卓这样级别的重量型开源项目真是少而又少。虽然这些年情形有所好转,但大家在开源社区包括在开源的心态上,相对来说还是有些保守。”


这种“保守”更多源于骨子里的不自信。


在参与很多开源项目时,田忠博发现,很多时候大家“羞于”把自己的代码或意见表现出来。尤其在一些英语的技术讨论社区,中国人先天有些难以融入,更别说参与讨论了。


也正因此,田忠博内心希望天元能够成为一款对国内开发者友好的框架,能够让大家不要羞于表达自己的意见,无论对错,一起交流和分享自己的技术想法。


现在国外的开源体系已经形成了一整套体系。2003 年-2004 年,那时国外开源社区刚刚兴起,很多人弄不明白其中的“玩法”,也不甚了解应该如何建立组织生态,如何增进交流、互动和促进共同进步。


田忠博坦言,现在国内开源领域的现状正与那时国外的情形非常相似。“中国不缺少好的工程师,不缺少渴望分享的人,但如何把大家汇集起来,让大家一起贡献、协作,做成最好的事,这是国内开源不擅长的”。


相较之下,国外各基金会赞助的开源项目,不论是以人为主还是以企业为主,都有很好的开源治理模式,完善的组织架构和组织体系。田忠博认为,国内缺少好的组织、“抓手”和好的想法,这是必须要解决的问题。但国外的经验也未必 100%适配我国国情,促进国内开源生态发展的方法需要各方参与者一起寻找,这需要共识、勇气、时间和行动。


目前国内科技界正在受到来自美国的压力,一些技术软件在海外市场甚至遭遇被封杀的境遇。有业内分析人士认为,开源或是解决之道。田忠博对此表示认同,他表示,的确有很多很多人尤其是异见者希望通过某些手段阻止不同技术间的相互使用、相互协作,对抗和回击封锁最好的办法反而是开放,与其他人一起更自由地沟通和协作。


他相信,在未来,开源会越来越成为所有技术的核心驱动力,尤其在触及基础设施方面。因为当技术越来越复杂、门类越来越多,技术不断地在细化,且应用在快速发展的情况下,已经没有一个人或者一个组织可以完全独立的,在不和其他人交流、交互的情况下去研发技术。


“在这种情况下,大家形成知识上的共同体、技术上的共同体,是促进和保障未来最关键的一件事,尤其在当下科技环境充满不确定性和挑战的情况下,开源是非常重要,甚至是最重要的一件事”。


2020-10-05 13:536863
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 539.1 次阅读, 收获喜欢 1977 次。

关注

评论 1 条评论

发布
用户头像
只有tidb算得上重量级
2020-10-13 09:22
回复
没有更多了
发现更多内容

ThreadPoolExecutor 线程销毁源码分析

new life

ThreadPoolExecutor

程序员这样准备面试,拿到Offer的概率准会上升。

android 程序员 移动开发

约束布局(ConstraintLayout)1

android 程序员 移动开发

线程池基本参数解析

android 程序员 移动开发

瞬息万变的技术圈与焦虑的技术人,进阶Android需要掌握的那几个关键技术!

android 程序员 移动开发

秀一波多线程的操作技巧,又能Get新知识点了

android 程序员 移动开发

《Kubernetes in action读书笔记》:运维架构演进

后台技术汇

Kubernetes 11月日更 运维架构

程序员的中年危机该怎么度过,只能靠纯技术?

android 程序员 移动开发

移动-App-已经趋近饱和,那么-Android-开发凉了吗?

android 程序员 移动开发

第五章:paging使用

android 程序员 移动开发

神奇宝贝 眼前一亮的 Jetpack + MVVM 极简实战

android 程序员 移动开发

站在巨人肩上操作CAS(三):原子操作类的正确使用实战

android 程序员 移动开发

站在巨人肩上操作CAS(一):CAS的原理

android 程序员 移动开发

简单易用!快速改善用户界面的10个技巧!

android 程序员 移动开发

算法----字符串

android 程序员 移动开发

程序员毕业十年,我是如何从月薪2800涨到税后年薪30W+的?

android 程序员 移动开发

程序员的中年危机,这道坎到底是什么?

android 程序员 移动开发

程序员还不会这6个面试技巧,活该你拿不到offer和高薪?

android 程序员 移动开发

程序员非要去大一线城市不可吗?小三线的我有话说

android 程序员 移动开发

Vue进阶(幺陆捌):应用 vw/vh 实现自定义布局

No Silver Bullet

Vue 11月日更

简易弹球游戏 (2)(1)

android 程序员 移动开发

算法太TM重要了!刷完这些题,我拿到了梦寐以求的字节跳动和腾讯双offer!

android 程序员 移动开发

光的进化曲:电力承载网的升级之路

脑极体

程序员中年危机:该如何打破35岁的魔咒优雅度过中年?

android 程序员 移动开发

程序员真的有35岁危机这样的年龄危机吗?有些程序员是如何悄无声息渡过中年危机的?

android 程序员 移动开发

简易弹球游戏 (2)

android 程序员 移动开发

模块八作业

Geek_fc100d

「架构实战营」

程序员与架构师之间的差距很大吗?

android 程序员 移动开发

程序员的专属幽默段子

android 程序员 移动开发

什么是碳交易?

石云升

碳中和 11月日更 碳交易

第一次面大厂就拿到了腾讯的 offer ,同事笑着骂我是搞 Android 的“狗托”

android 程序员 移动开发

旷视研究院田忠博:中国缺少重量级的开源项目,国产开源需要更加自信 |  开源创新30人_AI&大模型_刘燕_InfoQ精选文章