TensorLayer 框架开源开发者董豪老师解密人工智能开发工具的过去与未来
人工智能的发展是目前科技研究中最热门的方向之一,也是越来越多的开发者和技术团队非常关心的重点,而高效的开发工具能够让开发这件事情变得事半功倍。斯坦福的专家就曾在人工智能报告中提到,“越来越强大的人工智能应用,可能会对我们的社会和经济产生深远的积极影响,这将出现在从现在到 2030 年的时间段里。”
因此,继上期由 OpenI 启智社区运营中心主任余跃老师用“AI开源创新的发展与探索”揭开《人工智能开源录|对话 OpenI 启智社区》直播栏目的序幕后,顺着人工智能的藤蔓,OpenI 启智社区特邀了年轻有为的鹏城实验室双聘成员、北京大学计算机学院助理教授、AI 开源框架 TensorLayer 的开源开发者董豪老师做客本期的直播栏目。
董豪老师目前的研究方向主要在于人工智能,以及围绕泛化性与高层级的决策研究机器人,他在栏目中为大家揭秘了人工智能开源工具的过去、现在与未来,也首次对外公开 TensorLayer 的升级版本 TensorLayer X 即将带着更强的兼容性与中立性问世。
人工智能开发工具的过去与现在
董老师回顾深度学习并未开始盛行的十多年以前,那时的开发者们普遍在使用机器学习方面一款叫做 scikit-learn 的工具,以及 SVM、KNN 等普通的算法。
从 2012 年开始,深度学习有了一些显著的发展,如加拿大的 Mila 研究所开发了专门针对深度学习的框架 Theano。之后的一两年,在加州大学伯克利读博的贾扬清博士创建了针对视觉的深度模型框架 Caffe。随着深度学习在业界越来越重要,谷歌开发的 TensorFlow,脸书开发的 PyTorch 也相继问世并成为主流。
近几年,国内不少大型科技公司基于自身某些战略需求也开发了针对深度学习的人工智能开发框架。开发工具的整体发展历程从普通的机器学习开始,到近十年来,从以高校为主导到后来由大企业进行主导开发的框架中,很多都是围绕深度学习。
而各行各业的工具之所以持续不断的发展,基本都是因为需求而推动的。Mila 实验室当时的主要负责人 Bengio 是一位深度学习的图灵奖获得者,他们之所以开发 Theano 是因为当时并没有一款理想的工具能很好的用 GPU 来加速深度学习的训练,如果使用 CPU 进行训练将耗费大量时间,这个研究需求推动了他们开发 Theano。
后来,由国内外的大公司主导的一些开发框架,很大程度是基于公司内部的研发需求或是跻身 AI 领域的发展战略而开发。而近几年,国内也涌现一部分公司,为了打破英伟达 GPU 的垄断与建设自己的生态,不得不开发了自己的框架。总体来说,这些工具都是通过需求而推动产生的。
TensorLayer 和 X 版本的过去与现在
提起 TensorLayer 这个很多开发者使用过且被认为是比较好用的开发框架,作为开源开发者的董老师回顾,那是自己在 2015 年读博期间,尽管当时有 Theano,TensorFlow,以及后来被 TensorFlow 收编的 Keras 等主流框架,但都无法满足自己的算法研究。为了科研与发论文,董老师开始尝试去开发一套基于 TensorFlow 的工具,后来不断有同学和朋友们加入一起完善,最终诞生了最初版本的 TensorLayer。
尽管当初在做同样事情的人也不少,但 TensorLayer 从一开始被开发的时候,就已经被赋予了更高的使命,那便是在未来要让更多的开发者去使用。因此,团队在最初的代码质量和开发文档上都投入了不少精力。
董老师从技术层面揭露,其实 TensorLayer 最初的版本和 Keras 很相似,但 Keras 当时兼容多框架,而 TensorLayer 当初只支持 TensorFlow 一个框架。但随着近几年国内的开发框架和 AI 芯片厂商的发展,不论从软件层还从芯片层的生态圈,都出现了割裂分散的形势。基于这个背景,团队希望打造一套通用的与平台无关的一种开发框架,即正在开发中的 TensorLayer 升级版本 TensorLayer X。
· TensorLayer X 的技术亮点和难点
TensorLayer X 的定位是以一种中立包容的形式,来实现国内外不同开发方向的主流框架的兼容,如国外的 TensorFlow,PyTorch,国内的 MindSpore,PaddlePaddle,Jittor 以及 OneFlow 等这些框架都可以兼容。
这种兼容的好处也显而易见,无论开发者是使用国外还是国内的设备,它都可以成功且较好地运行。为了能兼容不同的框架且保证效率不受损,同时兼顾代码的整洁性,方便使用者可以很容易地来进行二次开发的代码贡献,TensorLayer X 已经经历了一年多的研发与打磨。虽然版本还未正式发布,但实验已经证明了它在兼容国内外一些开发框架时,并未损失简洁性。开发者在使用 TensorLayer 和 X 版本时不会感觉到在简洁方面的差异,但能感受到 X 版本在兼容性上的提升。
对于难点,董老师表示主要在于兼容这部分,由鹏城实验室的团队及北京大学的部分学生参与这块的工作,已经开发完了各种各样的神经网络的 layers,难点已被攻克,后续将更多的围绕常用算法库进行一些开发工作。
TensorLayer 及 X 版本的未来设想
董老师希望面向一些中小企业,或个人技术开发者,以及职业技术学院的用户,为他们提供诸如开箱即用之类的一系列的应用库,并通过建立一些微信群、讨论区等社群,普及使用方法来相互帮助、共同发展。
此外,董老师也提出,他们计划把这个中立的 X 框架推广到海外,尤其是一带一路的国家,比如阿拉伯的 21 个国家,现在处于一个用能源换科技的发展阶段,也包括俄罗斯等希望发展自己的技术而不被欧美卡脖子的国家。
中立的框架优势在于它不属于任何一家公司,只要开发者用了这个框架,不论他用美国的还是国产的操作系统、芯片,都可以运行任务。而这种中立工具的开发维护难度,其实比从头搭建整套框架还要更容易,所以,董老师也希望能吸引更多的开发者参与它的开源。
· 如何选择合适的开发工具
董老师建议开发者根据自己的条件和目的、以节约自己时间为一个核心目标来选择合适的开发工具。
但就 TensorLayer X 框架本身来说,短期来看,它更加适合工业界中小企业的一些工程师去用。预计两个月后,他们将推出大量覆盖计算机视觉、自然语言处理、强化学习等方向的开箱即用相关的例子,同时也会出版相关的配套书籍和电子教程。这也是响应不少企业工程师朋友们对于轻量级的识别算法、人体姿态估计算法需求而去开发的应用例子。对于算法任务可能达上万种的学术界而言,还是推荐使用生态上较强的 PyTorch。
但由于目前正处于国产硬件替换国外硬件的时期,国内一些国家实验室、军工科研等单位,目前已经在用国产芯片、操作系统在替换原来进口操作系统、进口芯片。而 TensorLayer X 兼容了国内外的主流开发框架后,它也自然而然支持了国内外所有的芯片和操作系统。因此从长期来看,TensorLayer X 就非常适合这部分单位的用户。
人工智能开发工具的未来与生态
随着时间的进行,国内外关于人工智能开发工具与框架的使用方法慢慢收敛到一种大家都觉得比较好的方式。类似今天的智能手机,无论是哪个操作系统,都不会影响到用户已经形成的使用习惯。如今的开发框架虽然很多,但使用起来对用户来说也是朝着一个统一的方向。
而未来,将会出现越来越多针对特定任务的工具,比如针对图神经网络的的训练框架,或者针对目标识别来开发的框架。
至于生态,董老师认为需要自己要先做一个闭环。比如 TensorLayer,虽然并非大公司、大团队开发的,但团队认定尽自己最大能力尽可能形成一个闭环,比如出版相关的书籍,以及开发部署层面的相关工具与应用案例,搭建自己的生态圈,帮助大家节约更多的开发时间。
· 值得关注的方向与开源工具
从算法层面来说,过去的十多年让深度学习在感知层面有了较大突破,解决了人脸识别、目标识别等很多问题。未来十年,AI 的技术发展会逐渐从感知层面往决策层面上去发展,而强化学习、机器人这些方面将会有很大的突破,这可能会产生非常大的影响。这个影响可能比之前人脸识别、目标识别它们的影响更大,因为它应用的场景和种类更多。
因此,对于算法研究的人,需要在感知层面研究泛化性问题,比如降低特斯拉在自动驾驶时的误判。同时,在决策层面要研究自主性问题,比如让机器人能产生智能决策。
对于研究系统的的研究者,除了研究数据并行、模型并行这些问题外,下一步可能还要研究结合虚拟环境进行的训练,而这需要整套可以对数据进行高效处理的系统。
董老师的心得分享
无论是做科研,还是做开源,首先自己需要感兴趣,更重要的是找更多志趣相投的人一起去完成某些事情。对于具体选择什么事情,建议找到一些行业的痛点,然后根据自己的实际情况,尽可能选择相对具有挑战性的课题去做,然后不畏困难,迎难而上,然后找到自己的兴趣所在,持之以恒,最终自己总会有所收获。
版权声明: 本文为 InfoQ 作者【OpenI启智社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/8e10183aa9cf67a12e6d5028f】。文章转载请联系作者。
评论