在 WAIC AI 开发者论坛上,黄之鹏发表主题演讲《下一代 AI 基础软件能力展望》,在演讲中,他主要介绍了下一代 AI 基础软件核心能力的突破方向与着力点,阐述了未来的深度学习框架的发展走向。
以下为黄之鹏在 WAIC AI 开发者论坛上的演讲内容,机器之心进行了不改变原意的编辑、整理:
今天一天,整个论坛几乎覆盖了所有深度学习发展的最关键部分。我这部分内容作为论坛的最后一部分,还是很合适的。因为,刚才讲了很多的硬件,也讲了很多算法;包括很多应用,但是要实现所有的这一切,都离不开一些基础的软件,包括底层软件的生态。
今天演讲的文稿是基于前一阵在 CCF ADL workshop 的材料编辑的。如果大家对这块技术比较感兴趣的话,那么接下来,可能会看到一个略带诡异却又非常有趣的演讲。
一、AI 基础框架发展史
首先,希望大家转换一下视角。至少在我见过的讲人工智能或者深度学习的讲义、讲座,基本都会遵从线性叙事,内容基本都是几次高潮、几次低潮。那么,有没有可能转换一个视角呢。
如果跳脱出算法之外,我们支撑算法的实现——这些具体的底层软件和硬件,这些工具有没有反过来促进整个人工智能技术发展?或者说,在最常见的(人工智能发展史)时间维度之前和之后,有没有一些有趣的事情发生呢?
AI 工具理性主义——从艾舍尔的龙到哥德尔机器
首先讲一个背景,今年是哥德尔发布「不完备定理」90 周年。我这里摆的一本书很有名,叫 GEB,讲的是哥德尔、艾舍尔、巴赫,三者思想的连结。其中「艾舍尔的龙」是在试图利用二维化手法表现三维故事;可以看得出该过程非常困难。「哥德尔不完备定理」本来应用在数论当中;其实该定理是对之前罗素、怀特海所建立的整个公理逻辑基础的一次论证或者推翻。「哥德尔不完备定理」的伟大之处在于它可以泛化到很多领域,比如人工智能领域。可以看到,如果单纯用一阶逻辑,我们可能永远没有办法达到 AGI。AGI 一直是所有业界做 AI 的人希望达到终极的目标。为了达成这个目标,最终还是需要非一阶化的系统,这个系统需要逻辑本身再加上实验经验。以上所讲的这一切,想给大家传递一个整体思路,即深度学习发展是逻辑和实现逻辑的工具的纠缠演化的过程。那么,今天我们是把视角放在工具上。
AI 工具理性主义——史前时代
刚才说到,我们希望看一下从「惯性叙事时间点」之前和之后,从工具角度看发生的事情,是不是也会有收获。我们「惯性认为的计算机时代」的开始,是埃尼阿克(ENIAC)时代或者说二战之后;在那个时间点之前,科技一直是进步的。而且,我们一般会把莱布尼茨(Leibniz)作为现代人工智能所有技术、理论基础的起点。
其实在这个时间点很久之前,科技界便一直在持续对人工智能做探索。第一台设计出来的要完整实现逻辑的机器,是由世界第一个女程序员洛芙莱斯(Ada Lovelace)和她的丈夫巴贝奇(Charles Babbage)设计的。机器没有最终实现,巴贝奇含恨而终。
世界上第一个可以下棋的机器,在 1914 年就出现了;该机器是由西班牙科学家设计的。30 年代初哥德尔、丘奇、图灵发表了三篇关键的论文;这三篇论文基本上奠定了现在计算机科学所有理论的基础。
在 1936 年,出现了第一个可以工作的可编程通用机器,该机器由瑞士 Zuses 发明,被命名为 Z3 机器。
以上我们可以看出,人类工具、软件和硬件的持续演化已经支撑了人工智能基础技术持续百年的发展。再往后看,这是跟今天演讲非常贴近的主题。
AI 工具理性主义——后现代
从 年开始,支撑深度学习发展最重要的是框架,包括支撑框架的基础软件。如果没有这些软件的发展,我们就不可能看到刚刚嘉宾讲的这么多已经实现的模型、系统。
从图中大家可以看到,框架时间线非常明显地存在着断代。它也明显对应着深度学习数据集、模型开发能力在几个时期内不同的爆发点。最近一次爆发是去年,尤其是以中国为主,有很多新兴开源框架诞生。
我现在负责的是去年三月底华为开源的 MindSpore。这是华为自研的深度学习算法框架。我们认为,MindSpore 的出现,代表着下一代 AI 基础设施一整套全新思路正式走上舞台。
二、下一代 AI 基础软件核心能力
下面以华为两个主要的 AI 开源项目为例,给大家讲一下,我们所认为的下一代 AI 基础软件能力代表的关键能力是什么。
MindSpore 希望解决的问题
MindSpore 希望解决的问题很简单,刚才很多嘉宾演讲已经从不同维度都触及过这个问题。显而易见,现在可以开发以及需要训练的模型越来越大,所处理的数据越来越大。如果你的框架不够友好的话,AI 算法工程师需要学越来越多的系统知识,才能搞定大规模分布式系统。另外就是企业方面;有些情况,单纯在学术界做研究还可以,到了真正的产业界就变得不可行;产业界所关心的并不是很新很酷的特性,关心的是鲁棒性、稳定性、安全性等一系列东西。最近人工智能业界的巨大发展是 ASIC 芯片的大量出现,这里存在的问题是一个框架能不能充分发挥专用芯片的能力。再就是学术界和产业界的鸿沟,不再赘述了。开发 MindSpore 正是为了寻找和研究全新的框架,从而解决这些问题。
什么是 MindSpore
那么,什么是 MindSpore?简而言之,MindSpore 称之为全场景 AI 计算框架。全场景的意思是从「大规模公有云端环境」一直到「智能边缘」的智能相机、边缘盒子、手机,甚至是嵌入式开发板,都可以用这一套框架来开发。
MindSpore 有些关键特性:(1)自动并行。有关并行的文献可谓汗牛充栋,从可以进行分布式训练模型那一天开始,「并行」就是大家关注的问题;从最基础的数据并行,到可以做模型并行、再到 Pipeline 并行。MindSpore 是混合自动并行,意思是可以自动进行「最优的分布式并行策略」搜索,可以给开发者提供最优的并行策略。(2)二阶优化。做二阶求导是理论上非常符合直觉,但是工程实践上非常难的事情。尤其是你可以持续保持你做一阶的正增益,效率提高将近 1 倍。MindSpore 是可以做到的(3)动静态图结合。(4)全场景部署协同。MindSpore 和华为昇腾硬件平台配合,可以发挥巨大的性能,我们也会提供很多性能调试工具。
有几个最新的比较不错的特性:MindSpore 着力点是和科学计算的结合。我们一直认为深度学习和科学计算结合,或者说把数值计算与深度学习结合,是整个领域向前发展的一大趋势。
MindSpore 以及昇腾生态在很多地方都有了很多实践,比如说深圳气象局有短临天气预报、电路巡检,以及来自云南的非物质文化遗产「扎染」与 AI 结合的尝试。
MindSpore 会和鹏城实验室做大量千行百业智能化的研究合作。在武汉建立了 AI 计算中心,孵化了大量的 AI 相关应用创新。今年最重要的成果是,我们与鹏城实验室发布了业界首个千亿参数量级的稠密中文自然语义模型——「鹏程. 盘古」。
盘古模型发布以后,有很多新闻出来了,称有许多其他框架做的所谓万亿级模型。在这里,大家需要区分稠密模型和稀疏模型。很多推荐类模型,包括为了解决硬件算力不足采用 MOE 模式的大型稀疏模型的训练成本和训练过程,跟稠密模型 GPT3、盘古这样的千亿参数的模型是完全不一样的。我们坚持了盘古大模型开放开源,给整个业界使用。
我们和深圳湾实验室的老师一直在合作分子动力学与深度学习结合的相关探索。MindSpore 带来的很多端到端自动并行的能力都对类似的科研任务有极大的推动。
整个 MindSpore 开源社区是在 年 3 月 28 日开源的,可以看到短短一年多的时间取得了比较快速的发展。
除了深度学习框架之外,想跟大家介绍非常重要的 AI 异构计算架构——CANN。
CANN 是我们定义的能够支持异构计算,尤其是进行大量面向底层硬件编译优化的软件系统。CANN 主要是提供统一的编程语言——ACL,有统一网络构图接口,以及高性能计算引擎和算子库。加速硬件的算子性能是非常重要的。CANN 还有很多基础服务,比如集合通讯能力等。
CANN 提供了很多针对「利用硬件能力」进行深度优化的技术。CANN 在逐步开源开放出来,比如大家在码云上已经可以找到作为 AI 计算语言开发和运行平台高级接口的 ACL 代码,以及 cann-halo,这个 HALO/ODLA 通过 CANN 的开放接口使能 Ascend 的 Adapter 样例代码。欢迎大家点击「阅读原文」了解我们的项目。
三、下一代 AI 基础软件能力主要方向
下面快速说一下基础软件 + 底软的层面,未来深度学习发展的几个走向:
(1)互操作性。互操作性未来会是巨大的话题,现在互操作性并不是问题,因为每一个框架都有背后的主要公司在维护,且每个框架都拥有可以支撑的主要生态。但是随着人工智能生态的发展,比如说 Huggingface,存在非常有趣的现象。随着预训练模型、跨模态预训练模型的大量丰富,通过业界标准解决互操作问题只是时间问题。
(2)高阶 API。高阶 API 并不是新事物。最近可以看到 FastAI 的快速成长,Keras 又从 TensorFlow 的生态圈里独立出来。TinyMS 是我们团队为 MindSpore 开发的高阶 API 项目。「能否有好用的高阶 API」是未来深度学习框架开发者生态发展非常重要的一环。
(3)SciML 是 Julia 社区提出的概念。科学计算与深度学习结合,数值计算与深度学习的结合,将来会极大地影响框架的发展。Google 大脑最近一直在推的 JAX,以及 JAX 相关的生态。我们有 Julia 这样非常优秀的传统做科学计算的开源项目,现在也在做大量深度学习的结合。
(4)编译优化。这是国内大学团队的一篇论文,本质上大家用框架的前端构造网络模型;框架的后端会跟很多底软层通过编译优化,让模型比较有效地利用其所有硬件环境;从而执行你需要它执行的任务。编译优化一直以来是一个大难题,今天上午也有讲到 RISC-V,尤其是当域专有的架构越来越多的时候,如何做端到端的优化;优化不仅仅是框架层面软件的优化。比如说以 RISC-V 为例。RISC-V 的 Vector 扩展,「如何设计扩展能够更好地优化,所有涉及到矢量计算相关编译的流程」,都将是非常重大的课程。比如说,现在有 MIIR 开源社区着手解决其中一部分问题,所谓的编译基础设施,这块是未来的一大发展方向。
当然还有很多其他的方向,前面提到的图神经网络有框架的概念,强化学习也有框架的概念。联邦学习、隐私计算最近非常火,我们也有很多专门做这方面的框架。刚刚也提到很多交叉领域,包括段老师提到的量子力学,MindSpore 也有自己对量子力学的 Mind quantum 相关的支持。
结束语
我讲的内容就为大家呈现到这里,欢迎大家关注我们的社区。这是一个新生的「立足国内,放眼全球」的深度学习开源社区。欢迎大家关注我们,我们的代码在国内的码云以及大家最常用的 Github 上都有,并且是实时同步的。在抖音、B 站上都有站点,我们投放了很多课程、活动的录屏。
欢迎大家关注我们!谢谢大家!