登Nature的AI芯片设计屡遭质疑,谷歌发文:质疑者连预训练都没做
机器之心报道
机器之心编辑部
终于,面对近年来对自家自动 AI 芯片设计研究的质疑,谷歌坐不住了,发文回应!论文作者中包括了谷歌首席科学家 Jeff Dean。
我们先来回顾一下事情的来龙去脉:
2020 年,谷歌发表了预印本论文《Chip Placement with Deep Reinforcement Learning》,介绍了其设计芯片布局的新型强化学习方法 AlphaChip。在 2021 年,这项研究发表在 Nature 上并开源了出来。
此后,AlphaChip 激发了 AI 芯片设计方面的大量工作,并在谷歌母公司 Alphabet 三代 TPU、数据中心 CPU 和其他芯片中部署,并由外部芯片制造商扩展。
然而,ISPD 2023 上的一篇论文对谷歌 AlphaChip 的性能提出了质疑(Cheng 等人),论文指出,尽管谷歌承诺会提供数据和代码,但实际上这些资源并不完全可用。
论文地址:https://arxiv.org/pdf/2302.11014
Cheng 等人还认为基于谷歌的 Circuit Training(CT)框架的 AlphaChip 和《Nature》论文存在几项不一致:如输入网表的预放置信息、代理成本函数的权重设置、宏观和标准单元群集的放置规则等。
根据他们的评估,相比模拟退火算法(SA),在大多数情况下,AlphaChip 的代理成本更高、HPWL 也不如 SA 方法。
但谷歌方称:「他们并没有按照我们 Nature 论文中描述的方法运行。」
例如 Cheng 等人的论文中没有预训练 RL 方法(消除了从先验中学习的能力)、使用的计算资源少得多(RL 经验收集器减少 20 倍,GPU 数量减少一半)、没有训练到收敛(机器学习标准做法),并且用于评估的测试用例也是过时的。
在最近一期 CACM 上,Synopsys 的杰出架构师 Igor Markov 也发表了对三篇论文的元分析,包括登上《Nature》的 AlphaChip 原论文、Cheng 等人投稿到 ISPD 的论文以及 Markov 未发表的论文,总结了人们对 AlphaChip 的各种质疑。
文章地址:https://cacm.acm.org/research/reevaluating-googles-reinforcement-learning-for-ic-macro-placement/
谷歌还拉了一张时间线:
因此,面对以上质疑,谷歌通过本文进行了回应,确保没有人因为错误的原因而放弃在这个有影响力的领域继续创新。
Jeff Dean 发推表示,Cheng 等人的论文很大程度上并没有遵循谷歌的方法,尤其是没有进行预训练,在算力、训练收敛方面也都存在缺陷。
Jeff Dean 还认为,Igor Markov 的文章提出了含蓄的指控,完全没有根据。他很惊讶 Synopsys 竟然想与此事扯上关系,也很惊讶 CACMmag 竟然认为发表这些指控是恰当的。除了两篇有缺陷、未经同行评议的文章之外,没有任何证据或技术数据。
Cheng 等人在复现谷歌方法时的错误
Cheng 等人并未按照谷歌在《Nature》中的描述复刻论文中方法,因此他们的结果不好,并不意外。
以下是谷歌指出的主要错误:
未对强化学习方法进行预训练
AlphaChip 的核心优势在于能够从先验中学习,即在正式测试前通过「练习」模块中进行预训练。去除这一点,相当于评估一个完全不同且效果变差的方法。
下图 2 中展示了:训练数据集越大,AlphaChip 在新模块上的布局效果越好。
AlphaChip 的原论文中也通过下表展示了对 20 个模块进行预训练,模型可以掌握更有效的布局策略的效果。
此外,AlphaChip 的原论文中多次强调预训练的重要性。例如下图所示,在开源的 Ariane RISC-V CPU 上,未预训练的强化学习策略需要 48 小时才能接近预训练模型 6 小时的效果。
AlphaChip 在主数据表中的实验结果正是基于 48 小时的预训练,但 Cheng 等人没有进行任何预训练。这意味着强化学习模型从未接触过芯片,需要从零开始在每个测试案例上学习布局。
这就像对未见过围棋对局的 AlphaGo,却得出了 AlphaGo 不擅长下围棋的结论。
为此,Cheng 等人在论文中指出,谷歌开源的内容不支持复现预训练。但预训练仅需运行多个案例的训练过程,开源的数据一直支持预训练。
在 Cheng 等人的论文中称,截至目前,对 AlphaChip《Nature》论文和 CT 框架的数据和代码都未完全公开,因此,评估遇到了阻碍。
用的计算资源少了一个数量级
强化学习经验收集器比 Nature 论文中少 20 倍 (26 个 VS 512 个),GPU 数量也少一半 (8 个 VS 16 个)。计算资源变少往往需要更长的训练时间才能达到相同的效果。
根据另一篇复现 AlphaChip 的论文《Scalability and Generalization of Circuit Training for Chip Floorplanning》,使用更多 GPU 进行训练可以加速收敛。
如果 Cheng 等人能够按照 AlphaChip 原论文中的描述配置实验,其结果可能会有所改善。
没有训练到收敛
众所周知,没训练到收敛会显著影响模型性能。
从 Cheng 等人的项目网站,可以找到四个模块的收敛曲线(Ariane-GF12、MemPool-NG45、BlackParrot-GF12 和 MemPool-GF12),但在这些模块的训练中均未达到收敛状态(他们还没提供 BlackParrot-NG45 或 Ariane-NG45 的曲线)。
对于这四个模块,训练均在相对较少的步数下被中断。
在不具代表性且无法复现的基准上进行评估
Cheng 等人使用的基准 (45nm 和 12nm 的节点)与 AlphaChip(7nm 以下的节点)所用的相比,更老更旧,在物理设计上差异显著。
对于 10nm 的技术节点,多重图形化技术容易引发布线拥塞问题。
因此,对于没那么先进的技术节点,可能需要调整 AlphaChip 的奖励函数中的相关组件。
AlphaChip 的研究团队称:「我们主要为 7nm、5nm 以及更先进的工艺节点设计,对于前几代节点,尚未深入研究。但我们欢迎社区在这方面的贡献!」
此外,Cheng 等人未能或不愿提供用于复现其主要数据表中结果的综合网表。
对此,AlphaChip 的研究团队称:「Cheng 等人虽说对我们的方法进行了大规模重现,但是不是复现错了?我们建议直接使用我们的开源代码。」
除了在复现谷歌方法时存在错误,Cheng 等人还存在一些其他问题,包括如下:
Cheng 等人声称,谷歌的代理成本与最终指标没有很好的相关性,但他们自己的相关性研究实际上表明,总体代理成本与除标准单元面积之外的所有最终指标之间存在微弱但正相关的相关性。具体如下图 6 所示。
最后,谷歌表示 AlphaChip 完全开源,他们开源了一个软件存储库,以完全复现《Nature》论文中描述的方法。RL 方法的每一行都可以免费检查、执行或修改,并且提供源代码或二进制文件来执行所有预处理和后处理步骤。
GitHub 地址:https://github.com/google-research/circuit_training
更多回应细节请参阅原论文。