中国下一代AI开源框架:国际、创新、实用和长期主义

目前国内外的AI开源框架领域,以TensorFlow、PyTorch、MindSpore等为代表,正处于一种群雄林立、七国八制的状态,但也增加了AI应用的平台移植成本,所以 TensorLayer的问世难能可贵,它基于各个主流的开源框架,提供了一个统一的AI算法模型接口,不仅稳定了AI应用层,也促进了各开源框架的良序竞争。同时令人称道的是,TensorLayer 也是AI领域为数不多的、由中国学者主导研发并获得国际认可的开源项目,它还曾经获得了ACM Multimedia 2017年度最佳开源软件奖。

 

鉴于中国AI开源框架实力,整体尚处于一种相对薄弱的状态,那么对于正蓄势待发、投身于AI 开源项目的学者或从业者们来说,TensorLayer 有哪些值得学习的经验呢?为此,我们采访了TensorLayer的项目发起人董豪以及核心开发骨干麦络。

 

中国下一代AI开源框架:国际、创新、实用和长期主义

董豪,北京大学前沿计算研究中心助理教授,英国帝国理工学院博士。研究方向是生成模型。

 

麦络,爱丁堡大学信息学院助理教授。研究方向是计算机系统,机器学习和大数据。

 

通过董豪和麦络抽丝剥茧般的独到解析,笔者发现:在AI框架领域,生态建设越来越重要,个人靠一套代码打天下的英雄主义时代已经过去,其背后是人工智能潮流正奔着技术和产业融合的方向滚滚向前;对于下一代AI开源框架,它的成功将是团队合作、国际视野、技术创新、市场落地和持之以恒的综合结果。

 

下面,是董豪和麦络在访谈中的精彩观点。

整理:智源社区 常政


一、TenorLayer:

寻找学术界和工业界AI应用的平衡点

 

智源社区:TensorLayer曾经获得了ACM Multimedia 2017年度最佳开源软件奖,截止目前为止已经有280k下载量,Star超 6k,相关官方项目Star超10k,你觉得它获得成功和公众关注的主要原因是什么?你自己如何定位它的意义和价值?

 

董豪:TensorLayer能走到现在的一个重要原因,是早在2016年我们就开始做了。当时TensorFlow并不那么好用,需要靠Keras库等来给它做一些支撑。但Keras是属于高度封装的一个库,而我们在做量化网络的时候需要对底层做一点定制化,所以完全无从下手。所以我们最后通过研发TensorLayer,做了简化,让大家在制定Layer时变得非常简单。

 

我们对自己的定位是面向学术界和工业界,学术界讲究的是更加透明化的编程方式,工业界追求简洁的编程方式,所以这里面需要找到一个平衡点。首先,在学术界的一个优势,便是不用象企业那样更新一个软件版本需要制定计划,今天突然得到一篇论文,可以很快地实现、迭代更新上面的算法模型,并分享给其他人使用;这样带来另外一个好处,便是工业界也可以通过我们的库发现他们没有的一些Layer,从而能够很好地促成学术界的新进展在工业界的使用。另外一方面,是在抽象设计上,对于定制化的东西要简单,同时写出来的代码,要方便大家容易看懂。

 

麦络:我补充两个点。我们在研发TensorLayer的时候,深度学习的开发者主要有两个选择:TensorFlow或者 Keras。

 

早期的TensorFlow提供很多底层的API(例如session和graph),足够灵活但是难以上手。另一方面,Keras提供高层次API,简单上手,但是难以对模型和训练过程做定制。非常多的像董豪和我这样的AI研发人员在寻找一个兼顾灵活性和高层次抽象的库,从而帮助我们快速实现新型AI模型。因此我们设计了TensorLayer,并将这种抽象且灵活的哲学贯穿其中。

 

此外,TensorLayer还提供了很多前沿的算法复现。比如董豪在里面实现了近一、两个月才提出来的算法复现,而Keras注重的是经典算法复现,未必很前沿,这也使得TensorLayer的第一批用户很多来自顶尖大学的PhD。这样,TensorLayer 的生态也就慢慢建立起来了。

 

中国下一代AI开源框架:国际、创新、实用和长期主义

智源社区:TensorLayer 和目前业界的主流AI框架是一种什么关系,能否做到兼容?

 

董豪:我们在这方面的思路是,使得TensorLayer在上层定义出AI模型的一套规范,也就是说AI算法上层的模型都可以拿TensorLayer的基本API定义出来。而对于底层,我们会尝试做到TensorLayer的模型定义是可以运行在MindSpore、TensorFlow和PyTorch等上面。这里面我们可以利用的一个契机是,这些主流框架现在都在尝试做出一套中间表达,比如MLIR、TBM。所以,TensorLayer可以通过在中间做好转接,让很多应用运行在不同的AI框架上面。

 

智源社区:TensorLayer 目前它的产业应用情况如何?有没有令你印象深刻的几个行业应用?

 

董豪:首先是垃圾文本,它主要应用于视频直播。TensorLayer 开发了文本垃圾分类程序,可以自动屏蔽视频中的脏话文本等。此外还有视觉识别中的人体姿态估计,影响力也很大,在TensorLayer的Github上,人体姿态估计获得了700、800个Star,而且经常收到全球各地的来信探讨商业化事宜。我们的强化学习库也有量化对冲基金团队在使用。

 

麦络:还有就是超分辨率复原有很多落地的案例,比如有某家美国上市公司用TensorLayer研发PCB复原。我们这方面的项目获得了2,000多个Star。TensorLayer的应用之所以集中在上述几个领域,其中一个原因是它在视觉和生成对抗网络方面,有很多独有或者比较好的例子。最近一年TensorLayer开始重点支持强化学习,这方面的例子也将会越来越多。

 

二、通过AI框架看人工智能:

生态建设和团队合作

 

智源社区:我看到 TensorLayer 目前的版本是2020年4月的 V2.2.2,在近几年TensorLayer的版本更新中,主要经历了哪些重要变化?TensorLayer  的下一个版本预计在什么时候发布,将有哪些新特点?

   

董豪:深度学习框架如TensorFlow、PyTorch近几年的一个主要变化往支持动态网络的方向发展。TensorLayer 也基于这个大趋势,不断更新,目前已经做了针对RL、NLP、CV及其它工业界需求的具体应用库;此外我们还出版了相关的中英文教程、书籍,包括2017年出版了一本深度学习教程,今年还会出版两本关于强化学习的书籍。

 

在北大和鹏城实验室的支持下,TensorLayer的下一个版本预计在今年年底发布,其重要特色是将会兼容华为的MindSpore框架。众所周知,华为在AI硬件领域实力雄厚,拥有AI训练芯片,也拥有嵌入式推断芯片等。如果能将华为MindSpore兼容进来,那我们就将GPU、TPU、华为昇腾系列等各类硬件都兼容了,这会使得TensorLayer 用户的代码将具有更大的兼容性。比如可以将GPU上训练出来的内容,通过同一套代码打通国内外的产品。

 

麦络:MindSpore目前AI模型的生态仍然在建立之中。因此,MindSpore本身也需要像TensorLayer这样的高层次库帮它将生态构建起来,完善强化学习,自然语言处理,生成对抗学习等相关应用。

 

智源社区:通过TensorLayer的历年升级变化,我们可以从中看到人工智能技术或产业的哪些发展趋势?

 

董豪:现在开发人工智能基础软件的门槛已经降低,很多前人的工作可以参考,但开发工作量变得越来越大,特别是生态建设要求也越来越高,所以以往那种一两个人写出一个库已经很难成功了,现在好的AI框架基本上都是由大企业来维护,以前来自高校的一些优秀框架如Caffe、Theano、Lasagne等正渐渐退出历史舞台。

 

另外一个趋势是,国内各类AI 硬件、芯片等出得越来越多,但相对以前来说,现在做AI芯片的难度不大,关键在于能否有生态的支持。所以现在AI基础软件也更加看重如何构建生态。

 

麦络:人工智能产业正在从算法井喷期,慢慢进入全面应用期。在这个期间,我们的AI基础架构会迎来很大的发展。

 

首先,在AI框架的架构方面,我们会慢慢看到基于模块化设计的AI框架的出现。计算机乃至芯片的发展也有相似的脉络。例如说,从大型机的整体设计到今天的家用机模块化设计。芯片行业从一开始的大包大揽,到如今的芯片设计和生产的分工。在AI框架的发展上,我们也能看到类似的风格。TensorFlow自上而下全部包揽设计的模式,在行业早期是非常有好处的,能快速发展。但是行业成熟以后,又会阻碍整个产业的健康发展。因此,AI框架最近在开始模块化的尝试,相关标准组织也在慢慢出现。例如说,JAX,MLIR和ONNX等。而模块化架构一旦成熟,会引领下一波AI框架的出现。

 

同时,AI技术会沉淀到我们日常使用的软件里面。非常多的传统软件(例如说办公软件,数据库,集群管理,芯片设计等)会进行重构,从而高效支持AI算法参与软件运行中的决策。另外,软件开发工具也会更好的支持AI算法。例如说设计对AI友好的编程语言,原生支持异构硬件和自动差分等。Swift和Julia等语言已经开始积极的探索。理论基础方面,2019年底,谷歌和爱丁堡大学在POPL这个*编程语言会议上首次提出了一种原生支持自动差分的编程语言。

 

最后,就是隐私保护会很大程度影响AI产业的发展。现在世界各国对数据安全非常看重。各大互联网公司的推荐系统高度依赖用户数据,而且数据保护法出现后,为了保证互联网广告和推荐系统的可持续发展,也必须要开始思考如何平衡对于数据的利用和保护。今年Google已经第一次在产品上部署基于隐私保护的联邦学习技术。Facebook和阿里巴巴也快速推进,开始了大量隐私保护的预研和产品研发。我觉得这类技术将影响下一代AI框架的研发。例如,新的框架要更好支持云-边-端的统一训练和推断,从而避免数据上传。又或者利用起来新型的加密AI芯片。

 

智源社区:从长远的角度,TensorLayer 将有哪些发展规划?

 

董豪:TensorLayer的定位是提供一个AI编程标准,再基于此来兼容不同的计算引擎和训练芯片等,不仅对工业界应用提供一些库支持,同时也支持好科学研究。短期来看,我们目前计划先支持好谷歌TensorFlow、华为MindSpore,因为这两个计算引擎覆盖了国外的GPU和TPU,以及我们华为的训练和推理AI芯片。长期来看,我们的规划主要是根据现有的资源来制定,如果将来有资金、团队等,我们也可以开发下一代商用级的底层计算引擎。这方面,请麦络来谈一下。

 

麦络:在计算引擎这块,我们作为一个开源软件团队,受限于人力和计算资源的限制,因此我们决定TensorLayer接下来会在差异性,独特性上进一步推进。如果需要做到AI框架的整体突破,就需要像华为MindSpore和英国的GraphCore公司那样做到硬件和软件两手抓,利用硬件成本和性能优势吸引使用者,并且集中大量的开发人员持续对AI框架的各个模块提出创新设计。

 

聚焦细分领域也给了TensorLayer一个很大的优势就是:我们可以集中力量做大跨步创新,做精品。特别是在“AI新型算法”和“分布式执行”这两个方面。超大NLP模型,深度强化学习,图神经网络,联邦学习正在快速崛起。这些AI算法的多样性会催生出非常多的开源AI软件。例如说,我们最近主推的强化学习方面的RLzoo和实时视觉计算的HyperPose就得到了开源社区的良好反馈和企业用户的使用。

 

另外,新型AI计算任务往往需要大量计算资源,分布式执行。而这给使用者设立了极高的门槛。我们接下来会在分布式AI软件和算法设计做出创新。例如说,我们最近在重点开发的KungFu项目,就通过在分布式训练领域做精做细,持续攻关自适应分布式训练这一个技术难题。相关的成果已经收获不少社区和学术界关注,并且吸引到头部科技公司(华为,阿里巴巴,微软和Google DeepMind)的大量资源支持和技术合作。同时,在AI趋向于全球云-端协同部署的大背景下,嵌入式AI这块企业需求也很大,我和董老师认为这一块TensorLayer也会有发挥空间。

 

三、AI开源项目的建议:

国际性、创新性、可用性、长期主义

 

智源社区:能否结合TensorLayer 社区的经验谈一谈,如何保持一个开源社区的创造性、活跃度?能否谈一下令你印象深刻的社区几个贡献者?

 

董豪:首先是社区人员的构成要多样化,背景尽可能不一样,这样才能相互学习。比如我的兴趣是深度学习,但是麦络是做AI系统的,这样我们的交流讨论就能够有更多的创新性。下面列举几个印象比较深的贡献者,他们的年龄段、专业背景等都挺多样化的。

中国下一代AI开源框架:国际、创新、实用和长期主义

董豪、麦络

中国下一代AI开源框架:国际、创新、实用和长期主义

 张敬卿、丁子涵

张敬卿,清华大学本科,后来到我们帝国理工DSI实验室读PhD,他在NLP上面的贡献比较多。

 

李国,帝国理工研究员,前伦敦Google高级工程师,他帮助解决了TensorLayer研发中的很多技术难题。

 

丁子涵,帝国理工研究生,即将攻读普林斯顿大学博士生,TensorLayer强化学习库的主要贡献者,最近我们还出版了强化学习方面的图书。

 

下面两位是我来北大工作之后认识的吴睿海和吴润迪,都是北大16级本科生。睿海是高中打信息竞赛(OI)的。润迪是北大首届图灵班,计划去哥大读博,睿海准备跟我读博士了。他们对TensorLayer 2.0升级的贡献非常大。

 

中国下一代AI开源框架:国际、创新、实用和长期主义吴睿海、吴润迪

 

国外的贡献者中,印象最深的便是Jonathon Dekthtia,他是法国的一名PhD,飞行爱好者,研究工业AI,现在去英伟达做Researcher了。他对TensorLayer早期版本,尤其是规范化开源项目管理方面的贡献很大。

中国下一代AI开源框架:国际、创新、实用和长期主义

Jonathon Dekthtia

 

智源社区:通过这几年TensorLayer 的研发和开源社区经营,对于你个人主要有哪些收获?

 

董豪:对我来说主要是能认识AI各个领域的一些朋友,包括我的第一个博士生,正是因为开发TensorLayer认识的。同时开发TensorLayer对我来说,也是一个学习过程。比如在强化学习领域,大家在做的过程中,一起来写一个库,写一本书,这对我来说也是一种学习。

 

麦络:研发TensorLayer的经历,让我们在AI开源社区具有一席之地。比如我们2018年被邀请到Google的伦敦开发者大会上做演讲,让我们在开源社区中能施加影响力,也更容易获得工业界的资源支持。同时,TensorLayer使得我们能频繁地接触前沿的AI实践者,发掘出重要的AI系统科研问题。

 

智源社区:在深度学习领域,除了TensorLayer之外,国内外有没有令你比较关注的其它开源项目?为什么?

 

董豪:除了TensorFlow、PyTorch这些众所周知的项目以外,我比较佩服一个项目的是日本的Chainer,它不仅是比PyTorch还要早的一个库,甚至PyTorch的设计也很大程度上借鉴了它。日本整个国家不大,搞AI的人可能还不如北京市多,但日本人在做事的风格上,非常专注于自己的领域、精益求精并形成一个自己的生态。Chainer的生态一度还是挺强的,在伦敦的时候还有很多人推荐,而且很多日本人发论文只用Chainer来写,并不用TensorFlow或者Pytorch。当然鉴于*家体量的局限性,Chainer无法竞争过后来出现的PyTorch,但它一直能很好地维持着自己的生态。

 

旷视、清华/腾讯、一流科技等的工作也值得关注,他们进行了非常大胆的尝试,通过一些优化来提升性能。我们也参与了鹏城实验室正在开发的新一代开源项目,敬请期待。

 

如果说国产框架翻身的希望,大概率当推华为的MindSpore,架构设计得非常好,而且能得到华为的强大支撑:长期的海量资金投入、国际化大团队、自主训练芯片、自主嵌入式芯片、华为云等等。

 

麦络:很赞同,我平时经常关注MindSpore,其所推崇的模型自动并行,算子自动生成,在云-边-端将训练和推理进行统一,都是我很感兴趣的技术点。框架以外,我也关注AI框架中的各个模块的开源项目,例如,JAX,MLIR和TensorFlow Swift。另外,发布不久的OpenMinded项目,我也很关注。他们试图在云-边-端中实现高效的隐私保护计算解决方案。

 

智源社区:在深度学习领域,中国学者或研发者要做出世界影响力的开源项目,在哪些方面比较有机会?

 

董豪:在深度学习领域,一定要做下一代的开源项目,不能总是重复别人已经做过的。所以我建议,大家首先要研究一下5年之后深度学习的软件会变成什么样,这样才有可能取得突破。

 

麦络:AI系统依然是我认为最有机会的。AI是可能开启第四次工业革命的关键钥匙。我们社会中已经投入了大量的资源和人才,并且已经看到许多良好的商业和社会应用。我相信持续的投入是该领域能持续发展的关键。与此同时,大量中国企业开始产品出海,研发也开始大量的整合世界各国的研发力量,这种国际化的氛围也会让中国的研发者们更容易做出世界级的AI开源软件项目。

 

智源社区:对于深度学习领域的中国开源工作者,能否提供一些发展建议?

董豪:我觉得分三个方面来说。

首先是项目上,开发的项目要有大幅度的创新,要有预判性。

 

其次是管理上,需要了解的是开源并不是为了盈利,需要长期维护,即使是有了生态之后,还是要持续投入下去。同时要重视的是,项目有人用才是关键。这一点中国的AI框架还是比较弱,目前我们的下载量是280K,百度 Paddle 是300K,均比TensorFlow少了很多很多。此外,还有许多其他团队开发的库,甚至总下载量都不如国外框架一个小时的下载量。总的来说,如果开源项目没有市场的话,可能刚开始的两年你会很兴奋,但如果没有人用你也坚持不了很久的。

 

第三,在讲究生态的时代,几个人搞定全部已经不现实了,而且也不可能几个人做一辈子。举个例子,比如TensorLayer,我们也不可能什么都做,我们下一个版本,对于分布式的支持,我们用的是麦络帝国理工那边的Kungfu来实现跨平台兼容,反正都在我们社区可控的范围内就行。

 

麦络:我们发现许多咱们本土的开源项目的国际化程度欠佳。我身边不少欧美的合作者会顾虑代码质量和社区文化,而不愿意使用这些项目。我们在构建开源软件中,要在文档,代码规范,集成测试,国际宣讲,社区互动和管理,等很多方向做到国际最顶尖的标准。这样,我们的开源软件才能争取大量国际用户,日后在AI软件发展中形成能覆盖全球的话语权。这一点在中美科技竞争的大背景下显得尤为重要。

 

另外,就是长期地投入也相对欠缺。一旦软件开源后,后续维护管理不足。这就形成了恶性循环:维护越不够,大家就越不敢用;越不敢用,就越没有动力维护。解决这个问题的关键是,开源软件开发者对于自身的信心,以及对于开源项目长期投入的价值认同。我和董豪在过去四年开发过程中,很多朋友都劝我们放弃,说一些功能TensorFlow已经做了,TensorLayer的没必要做了。但我们觉得Google毕竟是一家商业公司,许多设计考量并不是对于全行业最优,这反而给了很多开源项目发挥的空间。另外,TensorLayer不仅仅是一个软件,也是一个源源不断培养开源人才的社区,而这都让TensorLayer在最近几年越活越好。我相信只要认清自身项目的独特性和优势,形成良好的社区文化,很多项目坚持下去,都会最终开花。

 

董豪:是的,星星之火可以燎原,慢慢来、能一直做下去就好。


将我们设为星标⭐

就能及时收到推送啦

中国下一代AI开源框架:国际、创新、实用和长期主义

关于我们

北京智源人工智能研究院(Beijing Academy of Artificial Intelligence,简称BAAI)成立于2018年11月,是在科技部和北京市委市*的指导和支持下,由北京市科委和海淀区*推动成立的新型研发机构。

//智源研究院简介

//

学术思想 | 基础理论 | 顶尖人才 | 企业创新 | 发展政策

中国下一代AI开源框架:国际、创新、实用和长期主义