人工智能的重要性在当下不言而喻。在 InfoQ 发布的《2022 年值得关注的 8 个人工智能趋势》文章中,列出了人工智能在 2022 年乃至未来一段时间,在 AI-on-5G、生成式人工智能、语言模型迭代、元宇宙等方向将备受关注。从最开始的认知到如今的技术创新和应用落地,人工智能的快速发展离不开人工智能开发工具的迭代。
工欲善其事,必先利其器,从人工智能开发工具的发展中,我们可以窥见人工智能的未来。在这样的背景下 InfoQ《极客有约》联合 OpenI 启智社区推出的《人工智能开源录》第二期,邀请到了鹏城实验室双聘成员、北京大学计算机学院助理教授、AI 开源框架 TensorLayer 的开源开发者董豪老师,就“人工智能开发工具的过去与未来”这一主题展开了分享。
人工智能开发工具与人工智能
高效的开发工具能够让开发这件事情变得事半功倍。从十多年前普遍被使用的 Scikit-Learn,到后来加拿大 Mila 研究所开发了专门针对深度学习的框架 Theano,再到贾扬清博士专门开发了针对视觉深度模型的框架 Caffe,伴随着人工智能关联技术在各行各业的应用越来越广泛,更多的人工智能开发工具诞生。谷歌开发的 TensorFlow、Facebook 开发了的 Pytorch 也因此流行。
纵观国内外的大公司,开发人工智能框架多为顺应时代发展,符合企业战略需求。深度学习作为近些年的人工智能热门技术,是很多公司的研究方向之一。“所以我们可以发现整个的一个开发工具的发展历程是从普通的机器学习开始,到最近 10 年基本上很多都是围绕深度学习。最开始是以高校为主导的一些开发,到后面基本上是被大企业来主导的开发了。”董豪告诉 InfoQ。
作为 AI 开源框架 TensorLayer 的开源开发者,董豪长期关注人工智能的发展动向,深耕人工智能开发工具的迭代。
“当年 Mila 实验室为什么要开发 Theano?因为他们当时要研究深度学习,市面上并没有一种工具可以很好的用 GPU 来加速深度学习的训练。用 CPU 慢慢跑,一个模型要跑很久很久。”董豪谈道,“所以那个时候他们虽然自己是研究算法的人,也不得不去造这么一个轮子。”Mila 实验室当时的主要负责人 Bengio 是一位深度学习的图灵奖获得者,基于这样的需求推动了对 Theano 的开发研究。
董豪本身开发研究 TensorLayer 也有这样的初衷。在他看来,公司主导的人工智能开发框架之所以可以成功,主要原因就是能够满足公司内外部的战略要求,满足使用人员的需求。企业研究人工智能技术的需求,推动了人工智能开发工具的迭代。
推动人工智能开发工具发展的另一个主要因素是生态。如今,人工智能项目比以往任何时间都需要更多的数据和更快的速度,我们看到的数据并行的分布式训练、大模型框架、模型并行的分布式训练方法等,都是不同路径的应对方法。
“从算法角度看,这件事可能在一定程度上都已经超出了一个软件工具的范畴。现在有很多人在研究软硬结合的方法,比如专门针对 AI 训练的一些计算方式、一些数据处理的方式,在芯片层面有一些独特的设计,让它在做某一些训练的时候,速度能够更快。”董豪谈道。人工智能和人工智能开发工具之间的关系,就像软硬件的发展一样处在动态平衡之中。百花齐放的人工智能开源生态,一定程度上反哺了人工智能开发工具的发展。
从 TensorLayer 到 TensorLayerX
TensorLayer 也是在这样的时代大潮下诞生的。TensorLayer 是一个基于 TensorFlow 的新型深度学习和强化学习库,提供高级别的深度学习 API,易于修改和扩展,可以同时用于机器学习的研究与产品开发。
TensorLayer 一定时期内在社区内得到了不同程度的好评。“在当时那个时间点。但我觉得受到欢迎,要看和什么比了。如果作为一个爱好者开发的工具,也确实是挺受欢迎的。如果和公司,就是公司级别的这种团队开发的工具来比,那影响力还是不是很高的。”董豪谈道。
面向学术界和工业界,TensorLayer 曾经推出过两种强化学习库。从用户反馈上看,工业界上的用户更注重易改性,即能够根据自己的业务和数据类型进行修改。
TensorLayer 将对工业界用户的需求提供一套应用标准,让用户能够在一套标准下一通百通,并提供配套的部署框架自动化地应用,实现对资源的高效利用。“目前这种部署级的开源框架业界都挺少的,多见于大公司内部,而小公司需要单独找人去开发。我们开源出来以后,就希望很多的一些中小单位就可以不需要去重复做这样的一些事情。”董豪谈道。
TensorLayer 最初的版本和 Keras 很相似,但 Keras 当时兼容多框架,而 TensorLayer 当初只支持 TensorFlow 一个框架。随着近几年国内的开发框架和 AI 芯片厂商的发展,不论从软件层还从芯片层的生态圈,都出现了割裂分散的形势。基于这个背景,TensorLayer 团队希望打造一套通用的与平台无关的一种开发框架,即正在开发中的 TensorLayer 升级版本 TensorLayer X。
TensorLayerX 是一个兼容众多计算引擎的开发框架,兼容的引擎包括 TensorFlow、Pytorch、PaddlePaddle、MindSpore,以及 OneFlow、Jittor 等。
不过 TensorLayerX 这个项目目前还没有正式发布,这也是董豪首次对外系统介绍 TensorLayerX。他谈道:“我们要兼容不同的这种框架,在抽象的设计上面还是挺有难度的,而且还要保证这个效率不要,计算效率不要有损失。所以这个东西,这个设计反复设计的过程还是经历了挺多的。目前最难的兼容部分已经做完,后面是一些体力的工作了,在各种 Layers 都开发完以后,我们就还要组织去开发这个常用的一些算法库。”
相比 TensorLayer,TensorLayerX 能够支持更多的主流框架,可以实现一种兼容式的开发。董豪告诉 InfoQ:“我们处在一个国产硬件替代的时期,TensorLayerX 就非常适合很多国内的用户。据我们所知,对于目前而言,我们应该是唯一一个中立的,而且是同时可以支持国内,以及国外开发框架的这么一种通用的一种开发框架。”
未来,TensorLayerX 在短期内将面向一些中小企业,或者是一些个人的技术开发者,以及一些职业技术学院等等的一些用户,提供一系列的各类开箱即用的运用库,希望可以形成一些社群讨论,让大家学会使用,相互帮助,共同发展。长远来看,TensorLayerX 希望能够更多的来去吸引更多的一些开发者能够参与进来,将中立性的框架推向全球。
工具加持下,人工智能将走向何方?
斯坦福大学《人工智能指数 2021 年年度报告》显示,人工智能在智能生成、计算机视觉、自然语言处理以及医疗和生物学领域的发展上已经取得了非凡的成就。如今,行业内人工智能开发工具很多,很多开发者开始发现,这些工具的使用方法越来越像。工具随着行业的发展形成统一的规范,开发者们将更容易得到便利。
“但是在未来我相信会出现越来越多针对特定任务的这种工具,比如说针对图神经网络的训练的框架,或者是针对目标识别来开发的框架。”董豪表示,“开发者根据自己的条件和目的,以节约自己时间为一个核心目标来选择就好了。”
过去 10 年,AI 技术的发展主要围绕深度学习感知层面的突破,得益于深度学习技术的应用,计算机视觉研究取得了很大的进展。人脸识别、目标识别已经在实际场景中等解决了很多问题。
我们将目光放到未来 10 年,人工智能将走向何方?董豪给出了自己的判断:“对于算法研究者而言,AI 的技术发展会逐渐从感知层面往决策层面上靠。强化学习、机器人这些方面就会有很大的一个突破。感知层面要有泛化性,自动驾驶的误判就意味着泛化性不行;决策层面要研究自主性问题,能够形成智能决策。对于系统研究者而言,虚拟环境结合和数据高效处理将是两个值得关注的方向。”