在六十年的发展史中,AI历经沉浮与枯荣。面对早期“机器学习在80%的时间里解决80%的问题,但不知道哪个80%的时间解决了哪些80%的问题”的挑战,到如今AI标准化、普惠化得到长足的发展,在《新程序员004》中,我们邀请到阿里巴巴副总裁贾扬清立足于自身,从AI框架、模型与算法算力、工程化、开源、以及开发者所需具备的特质等方面,分享将AI算法和应用规模化落地过程中的心路历程与方法。
对话 | 唐小引 作者 | 屠敏
受访嘉宾 | 贾扬清
出品 | 《新程序员》编辑部
人工智能的变革,不仅引领了新数字化时代的思想潮流,也影响着成千上万程序员的技术人生,这其中也包含了现任阿里巴巴副总裁、阿里云计算平台事业部高级研究员、达摩院AI平台负责人的贾扬清。
贾扬清不认为自己是一个高智商的人,只是因为兴趣使然。他没觉得自己是一个勤快的人,但是该干的活一定会干。现在的他也不太想提及过去的种种成就,所谓君子素其位而行,不愿乎其外,也因凡是过往,皆为序章,对于他而言,更想把生命浪费在有意思的事情上,譬如探索人工智能大模型落地、人工智能如何工程化等问题。
因此,当打开互联网时,贾扬清的身影若隐若现。对于其个人,媒体对他的报道更多的是停留于2019年的3月19日。因为在这一天,贾扬清的身份中除了主流深度学习框架Caffe的作者、TensorFlow联合创始人之一、PyTorch 1.0的合作领导者、ONNX(Open Neural Network Exchange)的创始人之外,新增了一个阿里巴巴技术副总裁。短短两年间,贾扬清交出了他继Caffe、TensorFlow的再一创新成果——用4S标准带领团队锻造大数据+AI产品体系阿里灵杰,开源推动AI工程化落地,助力AI成为产业数字升级的利器。
今天,《新程序员》与贾扬清展开了一场深度对话,让我们深感熟悉的是那个虽然历经千帆,但仍然对技术尤为纯粹坚持的技术人,初心始终未变。在全新的技术时代,他希望从实验室走出来的AI算法能够散作满天星,走进与照亮各行各业。
1.从自动化到AI,贾扬清的坚持与见解
正如外界所熟知的一样,贾扬清并不是纯粹的计算机专业出身。2015年,《程序员》(《新程序员》前身)初遇在谷歌埋头搞AI的贾扬清,当谈及与AI深度学习结缘的故事时,这位在本科和研究生阶段专攻自动化的清华学子,曾调侃道,自动化主要做两件事,一件是烧锅炉的,一件是开电梯的。
于是,他在研究生毕业之后,决定奔赴加州大学伯克利分校攻读自己原本就更为喜欢的计算机,拿下了博士学位。
在此期间,他在研究一个题为“人类在个人成长过程中是如何形成类别这样概念”的心理学课题时,受Alex Krizhevsky在ImageNet获得成功的启发,研发了一个较为完整的深度学习框架Caffe,研发的理由也如理工男日常那么幽默,“我写Caffe的原因是因为我不想写毕业论文”。
以此为引,贾扬清在深度学习、神经网络、大规模训练等技术加持的人工智能道路上越走越深,并对这个领域有了自己不同的见解与思考。
贾扬清
《新程序员》:近两年,很多从业者表示人工智能在理论研究上没有重大的突破,并且不少人工智能科学家在从科研进入了产业界后,再次选择回归学术界。这种现象下,人工智能是否会再进入下一寒冬?
贾扬清:我觉得“寒冬”一词可能用不上。今天的人工智能更像是经历了酷暑后回归到了正常的温度。当前无论是在互联网行业,还是传统行业,大家用更加智能化的算法来解决以前的问题,已经是常态化。在回归正常温度之后,大家能够真正静下心来扎扎实实地做一些事情。AI技术永远是从理论研究突破而后规模化铺开的过程,当前它的理论与实践已实现两条腿走路的状态。AI的起伏本质上是业界普通吃瓜群众的视角所得出的结论,大家或许看到了曾经不少头部增长较为迅速的企业现脚步放缓,就误以为是AI的寒冬期已至,其实这件事本身与人工智能产业本身的关系并不大。
《新程序员》:现在很多高校乃至中小学纷纷开设人工智能专业或课程,您如何看待这种现象?
贾扬清:我认为从学生年代就可以接触到更加前沿的技术是一件好事。回想十年以前,卡内基梅隆大学就已经设置了Machine Learning Department系。不过,这种现象或带来一些短期不可见的缺点,有催熟以及导致很多人浑水摸鱼的可能性。不过,我们相信市场经济本身就具备自我调节的机制,会逐步过滤掉一些没有用的事情,因此,这些缺点也无须担心。
2.大模型趋势下,阿里巴巴AI工程化实践
《新程序员》:更大算力、更大数据集的大模型研发似乎已成一种趋势。现在很多从业者已经不会特别关注模型的设计细节,我们该如何平衡AI模型精细和规模之间的关系?
贾扬清:我认为这种现象非常典型,也曾在计算机视觉领域中出现过。以2012年参加ImageNet大规模视觉识别挑战赛中大获成功的卷积神经网络AlexNet为例,该模型的总参数数量为6000万。它的崛起让不少AI从业人员产生一个比较简单的想法,即模型越大越深或模型参数越多,效果就越好。
但是到了2014年,基于Inception模块的深度神经网络模型GoogLeNet在具备600万模型参数基础上也能达到同样甚至更好的效果。因此,在超大模型领域,很多人为了追求推广效果,营造出参数规模越大模拟效果越好的现象。随着时间推移,当用户对模型规模审美疲劳之后,会发现模型的结构以及模型的可解释性等细节问题变得更加重要。
不过,这一现象也是科研领域技术迭代很典型的发展过程,即爆火的技术吸引无数人蜂拥而至,而当大家发现此方向过于片面之后又会重回原来的位置。这也并不意味着追求大模型是一件坏事,因为模型越大,对底层支撑的模型算法也会提出更高的要求,同样有助于推动系统上很多创新的诞生。
《新程序员》:一直以来,AI开发者视模型转换是一件很麻烦的事情,你认为ONNX是否有可能成为行业规范,以此减轻模型转换的工作?
贾扬清:这是一个挺有意思的问题,起初在设计ONNX时,我们希望它能够在各框架、软件与硬件服务商之间作为一种标准,让开发者更好地实现模型打通。
经过多年的实践,我们发现模型在不断地变化,如BERT、GPT-3等模型不断涌现,这些模型会和设计该模型的框架紧密地耦合在一起,比如现在大规模分布式模型很多都是在TensorFlow的基础上实现的。因此,在最新的应用领域中,模型转换还没有成为一个核心的问题,不存在要把TensorFlow的模型转换成其他使用框架的需求。
本质上,ONNX对现有的一些典型的标准模型起作用,比如为计算机视觉很好地提供了一个硬件服务商来更好地切入到这个领域的机会。在价值链上,我认为ONNX并不是在支撑着最新的模型转换,而是在模型标准化了之后让其普及变得更加迅速。因此,我觉得ONNX会长期地存在并且成为行业中一个标准,但它并不会覆盖整个行业,因为新的研究永远都会处于一种相对零散以及并不需要标准的状态。
《新程序员》:2021年阿里云栖大会上,阿里灵杰正式发布,你也谈到AI工程化的本质就是包括了云原生化、规模化和标准普惠化,这会给AI开发者带来怎样的变化?
贾扬清:作为一款让企业及开发者“开箱即用”的平台,阿里灵杰集成了阿里大数据+AI能力,更遵循了以“大模型(Scale)、高效率(Speed)、易用性(Simplicity)、场景化(Scenario)”为核心的4S标准。
- Scale:灵活扩缩的大数据、大模型、大应用。因为云基础设施的存在,无论是AI训练还是模型训练都开始变得越来越容易。通过云原生的方式,借助如阿里的Max Compute平台,开发者可以用零启动成本来使用近乎无限的弹性,也让算力不再成为AI发展中的瓶颈。
- Speed:极致的运行、开发、运维效率。“如何通过云原生来提升开发者的开发与迭代的效率”,是阿里巴巴提出这一标准的初衷。当前在GPU、CPU、新的芯片不断发展之际,用户已经对硬件执行效率不是太过关心,反而是如何摆脱过往手工安装软件及优化的方式才是众人所关心的,而基于Speed标准所带来的云原生容器的管理、云原生运行环境的管理、云原生的调度等工具,使得开发者从编写代码、模型到最后模型落地与推广的整个链路变得更加地迅速。
- Simplicity:标准、像调用函数般易用。与过往对AI开发者提出的全栈要求有所不同,现在从事AI开发,工程师的分工非常明确。Simplicity所代表的含义是指,今天站在云、AI的算法开发者的角度,业界已经可以提供一系列的标准化API,使得上层的应用、数据、业务工程师们完全不用担心AI的实现细节,如同调用某个函数一样直接开发AI应用或产品。
- Scenario:向场景而生。没有场景化的AI能力是没有用的。上文所提及的Scale、Speed、Simplicity都是为了解决最终在不同的Scenario中落地的过程。对于开发者而言,在深刻了解各行各业、不同场景化的需求后,能够在AI算法迭代、AI应用落地时更加有的放矢。
《新程序员》:基于以上,可以将一些能力封装为API方便开发者直接调用。这样趋势下,未来AI开发者应该具备哪些能力?
贾扬清:今天AI开发者应跳出AI框架、传统思维的桎梏,不要将自己的目标仅局限于简单的优化、调参模式,我们并不需要雕琢一个新的卷积神经网络的模型并进一步提高正确率,而是需要学习在不同场景中如何将所需要的计算机视觉的问题抽象为一个深度学习的问题。
未来,模型的创新会是一个科研的方向,但是更大的机会其实在于上层的数据建模、模型建模的这一层。
3.开源为AI带来了什么?
《新程序员》:今天,我们迎来了开源极其利好的时代。在GitHub上,来自中国开发者的增长速度已经成为了全球最快,开源对AI的发展有怎样的裨益?
贾扬清:AI领域的发展离不开开源。近几年我们所见到的AI、算法都是开源的,开源也使得大家在复现代码、算法时变得非常地容易。
从开源来看,国内向上开源的心态发展非常迅速,且国内开发者对于开源的热情也并不比国外低。但是,我认为今天开源最大的挑战在于自顶向下的一些机制设计或者心态。
时下,很多公司在谈及开源时,往往仍停留在把代码开放出来让大家瞻仰的过程中。不过,从全球开源社区来看,开源最重要的一点应该是让更多的人共同参与到开源项目中。因此,当将代码开放出来后,如何进一步构建开源生态社区让更多的开发者参与一起开发与迭代,这也是国内开源社区必须要走的一条路。
《新程序员》:在新环境下,阿里有什么样的开源战略,如何鼓励更多的人参与开源?另外,在开源应用过程中,很多企业甚至设置了KPI,你怎么看?
贾扬清:这是一个挺好的问题。首先,阿里在内部成立了开源委员会,以保障企业内部能够看见不同项目开源的需求。这意味着开源并不是简单地将代码开放出来,还需要让包括代码的许可证、社区的运作、社区的交互都具备比较规范的模式,进而通过开源委员会也能够更好地推动公司内的开发者更加顺畅地参与开源。
至于如何为开源设计KPI,我认为这个事情非常难,因为社区的建设本身就是一个兴趣驱动以及参与者热情驱动的问题。与其想着如何为开源设立合理的KPI,不如反过来思考如何帮助开源跳出KPI框架,让更多的人更加开放地探索一些事情。因此,该问题一定程度上是一家公司内部的文化建设,并非一切都需要KPI化的。面向开源,我们需要留出一定时间让工程师们能够做自己热情驱动的判断。如果开源一旦KPI化,用标准化的指标来束缚开源开发者时,也许就是开源在推动过程中变形的开始。
《新程序员》:开源商业化方面,你有什么样的观点?
贾扬清:开源与商业化是一个见仁见智的问题。近期,很多从业者认为,开源软件只要做出来就可以融到大笔资金,但这并非是基于理性的思考结果。
时针拨回五年前,很多人常说的一句话是:开源软件绝对不可能有商业化的前景。至于为何会有这样的言论,主要是因为当年商业化并没有实现。
开源本身是一个与商业化无关的事情。只是有很多的开源项目,在商业应用中逐渐有了非常强的需求后,有公司在开源基础上提供企业级服务,这实际上是一个顺其自然的过程。由于开源软件的应用对使用者的技术有一定要求,如果某个公司可以直接解决用户的问题,与此同时,用户自身又不想或者没有一个团队专门来做基础事情时,就会有公司提供如弹性、免运维,包括像企业级的技术支持等服务。综合以上,开源与商业化主要可通过两个层面来衡量,第一是怎么样实现更好的服务;第二个是看企业能够为企业级能力付出多少成本,以此实现相对平衡的状态。
不过,开源软件本身,我们还是希望它有比较强的纯粹性,让业界能够有开源这样的一个技术共享和技术迭代的内容空间存在。
4.打破顶级程序员的尽头是无代码可写的传统思维!
《新程序员》:从奋战在研究和开发的一线,到成为一名管理者、创业者,很多人认为在实践过程中,优秀的程序员逐渐没有时间写代码、做科研。你认为是否如此?
贾扬清:首先要打破一个观念,就是很优秀的程序员到最后一定都不写代码,都要做管理。事实上,当前行业发展需要多种多样的人才,可能是一位非常优秀的架构师,也有可能是一位管理者,其中更不乏有着非常优秀的系统架构师担任着非常高的职位。在此,也向大家推荐《人月神话》这本书,其中提到不同的职业分工,以及为什么一个团队需要有很好的管理者和架构师的角色。
其实优秀的程序员应该追求自己的本心,而且为了实现一件事情可能在不同的时间戴上不同的“帽子”,有时与人打交道,有时与代码打交道。要实现一个事情永远都不是一个单点技能就能够推动的。因此,大家所需要做的是找准自己擅长的方向,同时能够在一定程度上适应不同的场合、需求,担任管理、系统设计等不同的角色。
《新程序员》:这也是一名优秀的程序员应该具备的特质?
贾扬清:是的。当下行业中所应用的系统软件,包括IT基础设施的规模,不可能让一个人单枪匹马地做事情。因此,即使你是一名好的架构师,也需要和人一起沟通、一起迭代、一起解决问题,这是今天我们任何一个角色都需要具备的技能。
《新程序员》:对于年轻一代的开发者以及正在从事AI的从业者们,关于就业方向的指导与建议?
贾扬清:由于AI领域覆盖较广,对于通用型AI人才而言,相对比较成功的AI人才往往都是保持着好奇心行走在路途以及能通过更广的需求来定义问题的人。以大规模模型为例,日常实践中,不少开发者往往是在预训练场景中训练单点模型,以此提升整个模型的准确度。相比这种方法,不妨试一试抛开单个模型优化或单个框架优化,而是重新定义一个问题。如在预训练场景中通过大量已有的但不相干数据独立训练出来一个模型,使得它在多个应用场景中效果良好,由此演变为一些算法或者系统方向上的提升。
5.AI新挑战与新机遇
《新程序员》:不同的深度学习框架在未来是否能够实现大一统?
贾扬清:我觉得可能不太会。今天如果出现一个新的框架,我们需要考虑的是它解决了整个行业中什么样的问题。曾经,TensorFlow的出现解决了大规模系统的问题;当超大规模系统用起来不方便时,开发者开始思考如何用一个更加像Python、更加容易迭代的方式让大家来做算法的开发和迭代,于是PyTorch应运而生。当前市场中有非常多的框架,如果只是开发了一款比TensorFlow、PyTorch稍微有一些不同的框架,并没有价值。
我觉得不用太担心框架是否能够大一统,大一统不是一个目的,能够解决今天我们在上层AI应用、科研时的问题,才是更为重要的一个点。
《新程序员》:从程序员的角度来说,AI补全代码也成为一个很常见的功能,未来是否会出现一个程序可以从另一个程序中学习,实现编写程序?
贾扬清:我觉得从现有的程序学习或编写新的程序,算法是有可能实现的,不过也不要过度地乐观。当前市场中已有的一些产品如GitHub Copilot,更多的是利用自身的计算能力在海量的代码中进行检索,继而补齐代码的功能实现。这与AI真实地编写程序仍有一定的区别。
AI算法的算力、记忆力显然比人类要更高,因此在简单重复劳动层面,AI可以很好地对人类的能力和精力做补充。这一问题就是将人从简单重复劳动中解放出来,让我们能够思考更加智能的问题。因此,我认为AI在这一领域存在非常大的潜力。
《新程序员》:元宇宙浪潮下,AI可以促进落地的场景或应用会是什么?
贾扬清:事实上,今天的元宇宙中堆积了太多的概念,譬如有很多人认为它是区块链或是其他技术的组成。从我所理解的角度来看,元宇宙包含了两个相对比较重要的概念:
- 一是VR/AR,它们打破了传统文字、视频、语音等统内容呈现的形式,带来了一种新方式。
- 二是因为内容呈现方式的不同,内容创造的工具也会发生巨大变化。AI与元宇宙相互碰撞融合的过程中,由于AI本身具备工具属性,因此它的很多算法使得元宇宙也逐步成为现实。
细分来看,在内容创造上,几年前VR/AR的发展遇到的最大瓶颈是有设备缺内容。如今随着AI在发展中带来了AliceMind、M6等深度语言模型,使得内容创作变得更加简单高效。
在工具层,在使用VR设备转头或者注视某位置时,VR设备需要迅速抓取到我们眼睛位置的变化,同时进行渲染。其中会有瞳孔识别或瞳孔追踪的AI算法实现,这个算法变得更加迅速、高效之后就使得在VR渲染的时候能够留出更多的时间给渲染,而不是留出更多的时间给识别。由此使得我们在VR/AR里看到的环境能够变得更加真实。
以上两个方向,AI都能够起到很好的助力作用。
《新程序员》:面向未来,你认为会让自己最有成就感的场景会是什么样的?
贾扬清:用一句话总结就是“AI落地”,从实验室走出来的算法能够更加广泛地用到各行各业当中。
《新程序员001-004》全面上市,对话世界级大师,报道中国IT行业创新创造!
版权归原作者 《新程序员》编辑部 所有, 如有侵权,请联系我们删除。