从谷歌AI设计芯片上,我们看到了“智能”的本质
在上周发表于同行评审科学杂志《自然》中的论文里,Google Brain团队的科学家们介绍了一种用于布局规划的深度强化学习技术,借助AI的力量对计算机芯片内的不同元件进行放置协调。研究人员们设法使用强化学习技术设计出下一代张量处理单元,也就是谷歌引以为傲的专用AI处理器。
在芯片设计当中使用软件并非新鲜事物,但谷歌研究人员们介绍道,这种新的强化学习模型能够“自动生成芯片布局图,其成果在各项关键指标(包括功耗、性能与芯片面积等)上都等同甚至优于由人类给出的芯片布局方案。”更重要的是,其设计周期要远远低于人类工作时长。
事实上,AI在众多领域表现出的强于人类的智能水平已经得到各方关注。一家媒体将其描述为“能够以超越人类的速度设计出计算机芯片的AI软件”,并表示“谷歌的全新AI能够在6个小时之内设计出一套以往人类工程师需要几个月才能完成的芯片设计方案。”
另一篇报道则认为,“AI技术在AI设计芯片领域的宏图远景才刚刚拉开帷幕。”
但在通读这篇论文之后,真正打动我的并不是这套负责设计计算机芯片的AI系统的极度复杂性,而是人类与AI之间和谐而高效的协同作用。
类比、直觉与奖励
这篇论文将有待解决的问题描述为:“芯片布局规划流程,包括将网表放置在芯片画布(二维网格)之上,优化性能指标(例如功耗、时序、面积与线长),同时遵循严格的密度限制与路由拥塞约束。”
基本上,这项任务的核心就是以最佳方式放置芯片元件。然而,与其他经典问题一样,随着芯片元件数量的持续增加,寻找最佳设计会变得愈发困难。
现有软件有助于加快芯片排布的发现速度,但如果目标芯片的复杂度过高,传统软件方案明显无法满足需求。研究人员决定从强化学习解决其他复杂空间问题的众多案例中汲取经验,并发现围棋AI在这方面似乎颇具潜力。
研究人员们在论文中写道,“芯片布局规划与围棋非常相似,也有一个个棋子(例如网表拓扑、宏计数、宏尺寸与纵横比)、棋盘(不同的画布尺寸与纵横比)以及获胜条件(例如密度及路由拥塞限制等不同评估指标的相对重要度)。”
芯片设计需要用到人类智能中最重要、也最为复杂的元素之一——类比。我们人类可以从以往解决的问题中提取抽象经验,并将这些经验应用于新的问题。虽然我们这种能力的使用可以说是潜移默化、顺畅自然,但其本身极为重要、甚至可以说是迁移学习的实现前提。正因为如此,研究人员才能将芯片布局问题重新定义为棋类游戏,并像其他科学家解决围棋游戏那样攻克设计难题。
深度强化学习模型特别擅长搜索这种巨大空间,而人类大脑的算力水平在物理上根本实现不了这样的处理。不过科学家们面临的芯片设计难题,在困难度上又比围棋高了几个数量级。研究人员们写道,“在包含1000个单元格的网格上放置1000个节点集群时,其状态空间达到千次方数量级
的2,500次方),而围棋的状态空间
的360次方。”而实际需要设计的芯片,则往往由数百万个节点组成。
最终,他们使用人工神经网络解决了复杂性难题。人工神经网络能够将芯片设计编码为向量表达,并大大降低问题空间的探索难度。根据论文的解释,“我们有着这样一种直觉,即能够执行常规芯片放置任务的策略,还应该能够在推理过程中将未见过的全新芯片相关状态编码为有意义的信号。因此,我们训练出一种能够预测新网表位置奖励的神经网络架构,而最终目标是使用这套架构作为策略中的编码器层。”
很多朋友都觉得“直觉”这东西不太靠谱,但直觉的背后却涉及一种非常复杂且鲜为人知的过程,涉及经验、无意识知识、模式识别等等。我们的直觉往往来自在某个领域的多年经验积累,但同时也会从其他专业中得到启发。幸运的是,在高性能计算与机器学习工具的帮助之下,对直觉判断进行测试正变得越来越简单。
另外值得注意的是,强化学习系统需要精心设计的奖励机制。事实上,有科学家认为只要设定正确的奖励函数,强化学习甚至足以达成人工通用智能(AGI)。而如果没有正确的奖励,强化学习代理则可能陷入无限循环,重复愚蠢而无意义的尝试。在以下视频中,可以看到参加赛船冠军赛的强化学习代理一味追求高积分,反而放弃了真正重要的目标——赢下比赛。
谷歌科学家们决定将布局规划系统的奖励设计为“代理线长、拥塞度与密度的负加权总和。”这里的权重,属于强化学习模型开发及训练过程中必须调整的一项超参数。
有了正确的奖励,强化学习模型就能利用其计算能力找到种种方法设计出能够实现奖励最大化的平面布局图。
策划数据集
系统中使用的深度神经网络,则是通过监督学习开发完成的。监督机器学习需要借助标记数据在训练期间调整模型参数。谷歌科学家们创建了“一套包含10000个芯片元件放置方案的数据集,其中输入信息与给定放置方式保持相关状态,标签则为该放置方法的奖励。”
为了避免手动创建放置平面图,研究人员在数据集中不仅使用人工设计图、也加入了不少计算机生成的数据。论文中并没有详尽介绍评估训练数据集中包含的算法生成示例到底有多少是由人类工程师设计,但可以肯定的是,如果没有高质量的训练数据,监督学习模型最终只会给出糟糕的推理结论。
从这个意义上说,芯片设计AI系统明显不同于其他强化学习程序——以AlphaZero为例,它能够在完全无需人为干涉的情况下发展出强大的围棋对弈策略。但未来,研究人员可能会开发出一种新的强化学习代理,有望自主设计平面图、无需任何监督学习元素。但我的个人猜测是,考虑到设计工作的高度复杂性,此类问题的解决可能仍然需要人类直觉、机器学习与高性能计算的强强联合。
强化学习设计与人类设计
谷歌研究人员的探索带来了种种有趣的结论,而其中最大的亮点当数芯片的实际布局。我们人类会利用各种捷径来克服自己大脑的物理局限。我们没办法一次性啃下包含大量复杂元素的“硬骨头”,但人脑会对整个复杂系统进行模块化与分层拆解,一步步克服其中的挑战。而这种自上而下进行架构考量与设计的能力,无疑将在负责解决极端复杂问题的系统中发挥重要的作用。
这里我们再来看一个软件工程的例子,也就是我(作者)自己的专业领域。理论上,我们当然可以在单一文件中通过一条规模巨大且连绵不绝的命令流中编写整个程序。但软件开发人员从来不会这么编程,我们只会从代码片段、函数、类、模块入手一步步搭建软件成果,并通过定义良好的接口将各种组件连通起来。以此为基础,我们把阶段性成果嵌套进更大的体系,由此逐步构建起一套分组件、分层级的架构。如此一来,我们无需阅读程序中的每一行也能理解它的运作方式。模块化机制使得多位程序员能够同时开发同一程序,而原有程序中的组件也能供更多后续程序使用。有时候,单凭观察程序中的类架构就足以帮助我们找到正确的bug定位路径或者正确的升级添加位置。正因为如此,我们往往愿意牺牲速度来换取更高的模块化水平与更高的设计质量。
同样的指导方针在计算机芯片设计中同样有所体现。人为设计的芯片往往在不同模块之间有着清晰的边界。另一方面,谷歌强化学习代理设计出的平面图则能够从中找到电阻最小的路径,而不再受人脑思维容量的限制。
我很好奇,未来这种AI辅助设计模式会不会成为新的趋势甚至是常态。或者说,机器学习生成的高度优化方案需要做出妥协,由此更好地与人类工程师所强加的自上而下的考量方式相匹配。
AI + 人类智能
正如谷歌强化学习芯片设计师们所言,AI的硬件与软件创新探索仍然离不开人类提供的抽象思维、问题定位、解决方案直觉以及验证数据选择等重要能力。换言之,AI芯片能够不断增强这些技能,但却很难彻底加以替代。
归根结底,我认为此次成果的发布并不代表“AI胜过了人类”、“AI能够创造更智能的AI”或者“AI正在自我递归、自我增强”。更准确地讲,主体仍然是人类——人类在寻求可行的方法,将AI作为前所未有的强大工具借以克服自己的认知限制并扩展自身能力。如果这样的良性循环真的能够发展成熟,相信计算机芯片设计将成为AI与人类之间携手共进的一大理想场景。