2021 年,谷歌在 Nature 发表了一篇颇具争议的论文《A graph placement methodology for fast chip design》。(作者包括 Jeff Dean 和 Quoc V. Le 等著名研究者),其中提出了一种基于强化学习的芯片设计方法。据介绍,该芯片设计方法可在不到六小时的时间内自动生成芯片布局,并且设计结果在功耗、性能和芯片面积等所有关键指标上都优于或媲美人类工程师,而后者需要耗费数月的艰苦努力才能达到类似效果。
事实上,谷歌在更早之前就已经发布了该论文的预印本,我们也曾做过报道,详情可参阅《6 小时完成芯片布局,谷歌用强化学习助力芯片设计》。
谷歌当时表示,这项基于强化学习的快速芯片设计方法对于资金紧张的初创企业大有裨益,可帮助初创企业开发自己的 AI 和其他专用芯片。并且,这种方法有助于缩短芯片设计周期,从而使得硬件可以更好地适应快速发展的技术研究。
论文虽然看起来大有前景,但三年来人们一直质疑不断。近日,最近一期 CACM 上,Synopsys 的杰出架构师 Igor Markov 总结了人们对这篇论文的各种质疑。
杜克大学陈怡然教授在微博上分享这篇文章
机器之心简要翻译整理了这篇文章。
本文关键见解
谷歌在 Nature 杂志上发表了一篇关于 AI 芯片设计的革命性论文。大众媒体赞誉其是一项重大突破,但它遭到了领域专家的质疑,他们认为这篇论文好得令人难以置信,而且缺乏可复现的证据。 现在,交叉检验的数据表明,由于行为、分析和报告中的错误,Nature 的这篇论文的可信度受到了严重损害。对谷歌这篇论文中的欺诈和研究不当行为的详细指控已在加利福尼亚州提交。 Nature 在执行自己的政策方面进展缓慢。推迟撤回有问题的出版物正在扭曲科研过程。为了维护科学研究的诚实可信,必须迅速果断地采取行动。
导语
Mirhoseini et al. 在 2021 年在 Nature 发表了一篇论文,其中使用了强化学习(RL)来设计硅芯片。这篇论文得到了人们的巨大关注,也因证据不足而引发了争议。这篇来自谷歌的论文隐瞒了关键的方法步骤和重现其结果所需的大部分输入。
本文的元分析(meta-analysis)表明,有两项独立评估填补了这一空白。它们表明谷歌的这个强化学习方法赶不上人类工程师,也赶不上一种已知的算法(模拟退火)和普遍可用的商业软件,同时速度也更慢。通过对数据进行交叉检验后,Igor Markov 表示,由于行为、分析和报告中的错误,Nature 的这篇论文的可信度受到了严重损害。在本文发表之前,谷歌反驳了其内部仍然存在的欺诈指控。
由于 AI 应用需要更大的算力,因此可以通过更好的芯片设计来提高效率。发表于 Nature 杂志的这篇论文声称实现了 AI 芯片设计的突破。它解决了优化芯片上电路元件位置的难题,并描述了对五个张量处理单元(TPU)芯片块的应用。其还表示这个方法是当时学术界或工业界最好的。
该论文还将这些说法推广到芯片设计之外,表示强化学习在组合优化方面的表现优于最先进的技术。「非凡的主张需要非凡的证据」(卡尔・萨根),但该论文缺乏公开测试示例的结果,也没有分享所使用的专有 TPU 芯片块。源代码 —— 在论文发表后七个月发布,以在最初的争议之后支持该论文的发现 —— 缺少重现方法和结果所需的关键部分。
项目代码库已经停止公开或删除,https://github.com/googleresearch/circuit_training
来自谷歌和学术界的十多位研究人员对 Mirhoseini et al. 的实验提出过质疑,并对所报告的研究结果提出了担忧。此后,谷歌工程师多次更新他们的开源代码,填补了一些缺失的部分,但依然不是全部。谷歌这个软件库中的开源芯片设计示例并未清楚地显示谷歌 RL 代码的强大性能。
显然,唯一公开声称独立复现 Mirhoseini et al. 的技术是由加州大学圣地亚哥分校(UCSD)的研究人员于 2022 年秋季开发的。他们对谷歌开源代码中缺少的关键组件进行了逆向工程,并完全重新实现了代码中缺失的模拟退火 (SA) 基线。谷歌没有发布 Mirhoseini et al. 使用的专有 TPU 芯片设计模块,排除了完全外部复现结果的可能性。因此,UCSD 团队分享了他们在现代公共芯片设计上的实验:SA 和商业电子设计自动化 EDA 工具的表现均优于谷歌的强化学习代码。
《纽约时报》和路透社的记者在 2022 年报道了这场争议,并发现早在 Nature 杂志提交之前,一些谷歌的研究人员(见表 1)就对他们负责检查的声明提出了异议。
该论文的两位主要作者抱怨说,他们的研究一直存在欺诈指控。
2022 年,谷歌解雇了内部吹哨人,并拒绝批准发表一篇批评 Mirhoseini et al. 研究的文章。这位吹哨人依据吹哨人保护法,对谷歌提起了错误解雇的诉讼:法庭文件详细列出了与 Mirhoseini et al. 研究相关的欺诈和科学不端行为的指控。
2021 年 Nature 杂志在同一期上刊登了一篇介绍该论文的新闻观点文章,敦促复现该论文的结果。考虑到复现的障碍和复现尝试的结果,文章的作者撤回了该文章。2023 年 9 月 20 日,Nature 杂志为该论文添加了在线编者注。
一年后(2024 年 9 月晚些时候),随着这篇文章的发表,Nature 杂志的编者注已被移除,但出现了一份作者的附录。这份附录重复了早先声明中讨论的作者对批评的回应部分的论点。
但关于 Nature 论文的主要关切点还未得到解决。特别是,论文结果中关于一个额外的专有 TPU 块的未公开统计数据,并未支持任何实质性的结论。这只会加剧对选择性报告和误报的担忧。发布一个未说明预训练数据的预训练模型,也加剧了关于数据污染的担忧。
接下来,本文列出了对该论文的初步怀疑,并表明其中许多怀疑后来得到了证实。然后,本文检查了 Mirhoseini et al. 是否改进了现有技术,概述了作者的回应,并讨论了该工作在实践中的可能用途。最后,本文得出结论并指出了政策含义。
这里我们略过 Igor Markov 这篇文章中对原论文的介绍,详情可参阅机器之心的报道《6 小时完成芯片布局,谷歌用强化学习助力芯片设计》。我们重点来看对该研究的怀疑和指控。
最初的怀疑
尽管登上 Nature 的这项研究复杂而又令人印象深刻,但研究有着明显的不足。
举例来说,文中提出的强化学习(RL)被描述为能够处理更广泛的组合优化问题(如旅行商问题)。但是,该研究并没有通过对关键问题的公式化和易于配置的测试示例来展示这一点,而是解决了一个专业任务(芯片设计的宏布局),仅针对谷歌专有的 TPU 电路设计块提供了五个块的结果,而可用的块远不止这些。
此外,RL 公式只是优化了一个包含 HPWL 的简化函数,但并未针对开放电路示例进行纯 HPWL 优化的评估,而这在其他文献中是常规操作。
可以说,这篇论文隐瞒了实验的关键方面,存在严重的遗漏,主要表现在以下几点:
第一点:标题中提到「快速芯片设计(fast chip design)」, 然而作者只描述了设计过程时间从几天或几周到几小时的改善,但并没有提供针对每个设计的具体时间,也没有将设计过程细分为不同阶段。文章中并没说明白,几天或几周的基线设计过程是否包括了功能设计变更的时间、闲置时间、使用较低效的 EDA 工具的时间等。这种描述缺乏详细信息,使得读者难以理解设计时间实际缩短到了何种程度,以及这种改进的具体影响。
第二点:文章声称强化学习(RL)在每个测试用例中的运行时间不超过六小时(针对五个 TPU 设计块中的每一个),但这并没有包括全部的 20 个块。此外,RL 的运行时间仅涵盖了宏布局,而 RePlAce 和行业工具会放置所有电路组件。
第三点:Mirhoseini et al. 专注于宏布局,但却没有提供每个 TPU 芯片块中宏的数量、大小和形状,以及面积利用率等关键设计参数。
第四点:Mirhoseini et al. 只给出了五个 TPU 块的结果,其统计明显不足,而且高方差指标会产生噪声结果(见表 2)。通常情况下,使用更多的样本是常见的做法(见上表 1)。
第五点:Mirhoseini et al. 没有说明被强化学习(RL)超越的人类芯片设计师的资质水平。撇开可复现性不谈,这些结果后来在 Cheng et al. 的研究中被证明是可以轻易改进的。
第六点:Mirhoseini et al. 声称改善了面积,但芯片面积和宏面积在布局过程中并未改变,标准单元面积也没有变化(参见表 2)。
第七点:对于结果随时间推移而优化的迭代算法,应该公平地比较每个测试用例在相同运行时间下哪个具有更好的质量指标,或在相同质量下哪个具有更好的运行时间,或两者都有所改进。Mirhoseini et al. 没有提供这样的证据。特别是,如果基于机器学习的优化使用了非凡的计算资源,那么在其最有竞争力的形式中,模拟退火(SA)优化也应当使用同等的计算资源。这意味着在评估和比较这两种方法的效果时,应确保它们在资源使用上处于同一水平,以保证比较的公正性。
对于专家来说,Mirhoseini et al. 提出的方法似乎存在缺陷,主要表现在:
H1. 与 SOTA 相比,提出的 RL 使用了过多的 CPU/GPU 资源。因此快速芯片设计的说法需要仔细证实。
H2. 逐个放置宏是最简单的方法之一。然而即使在深度 RL 的驱动下,逐个放置看起来也很不方便。
H3. Mirhoseini et al. 使用了与 20 多年前类似的电路分区(聚类)方法。众所周知,这些技术与互连优化目标有所不同。
H4. Mirhoseini et al. 将宏的位置限制在一个粗粒度的网格上,而最新的方法则避免了这种限制。在图 1(左)中,宏被自由放置,但谷歌的强化学习倾向于将宏分散开来,并且不允许在如图 1(左)中心这样的大区域内放置单元。图 2 展示了这种差异。这表明,虽然强化学习技术在处理某些设计任务上具有潜力,但其在处理大规模电路设计时可能需要依赖于简化的网格系统,这可能限制了其优化效果和应用范围。
H5.Mirhoseini et al. 使用的力导向放置技术,仍有很大的改进空间。
除了上述内容,还有值得怀疑的基准。Nature 杂志使用了多个基准来宣称所提技术的优越性。然而人类基准没有记录,并且不可复现。
B1. Mirhoseini et al. 和表 1 中的关键结果给出了五个 TPU 设计模块的芯片指标。但与 SA 的比较并没有报告这些芯片指标。
B2. Mirhoseini et al. 提到,强化学习(RL)的结果经过了模拟退火(SA)的后处理,但缺乏消融研究来评估 SA 对芯片指标的影响。
B3. 在 Mirhoseini et al. 的研究中,RePlAce 被用作基准,但这种使用方式与其预期用途不一致。
B4. Mirhoseini et al. 没有描述在模拟退火(SA)中如何初始化宏位置,这表明作者可能采用了一种可以改进的简单方法。后来,Bae et al. 确定了 SA 基线中的更多缺点,而 Cheng et al. 也证实了这些问题。
更多证据
那篇 Nature 论文发表几个月后,那是在最初阶段的争议之后,Bae et al.、谷歌的文档和开源代码、Nature 同行评议、Yue et al. 给出了更多数据。
Nature 给出了对 Mirhoseini et al. 的同行评议文件以及作者的反驳。在漫长的来回沟通中,作者向审稿人保证,宏的位置在 RL 放置后没有被修改,证实了宏是粗粒度网格放置的。在几份投稿中,Bae et al. 实现了 Nature 审稿人的要求,并在 17 个公开芯片设计示例上对谷歌的技术进行了基准测试,结果表明:先前的方法明显优于谷歌 RL。
美国和德国的一些教授公开表达了对这篇 Nature 论文的质疑。当研究人员注意到谷歌开源版本中的缺陷时,例如分组(聚类)流程,谷歌工程师发布了更多代码(但不是全部),这反倒引发了更多问题。
又过了一年,最初的怀疑变大了,因为结果表明,当宏布局不局限于网格时,人类设计师和商用 EDA 工具的表现均优于谷歌这个方法。在 Cheng et al. 的表 2 中,作者估计了通过 RL 优化的代理成本函数与 Nature 论文表 1 中使用的芯片指标的秩相关性。Cheng et al. 在表 3 中估计了基于 RL 的优化之后,芯片指标的平均值和标准差。
本文的表 2 给出了一些总结,可以看到所有芯片指标的秩相关性都很低,而 TNS 和 WNS 的噪声程度很高。
因此,Mirhoseini et al. 对 TNS 和 WNS 的优化依赖于有缺陷的代理,并产生了统计意义可疑的结果。可以注意到,在 Ariane-NG45 以及 BlackParrot-NG45 上的 TNS 的 σ/|μ | > 0.5。除了媒体的批评,Mirhoseini et al. 也受到了三位美国教授的质疑。
未公开使用商业工具的 (x, y) 位置
UCSD 的那篇论文中给出了强有力的证据和谷歌工程师的确认,表明作者隐瞒了一个关键细节:在对输入网表进行聚类时,谷歌代码中的 CT merge 会读取一个位置以根据位置重组集群。为了生成宏的 (x, y) 位置,论文的作者使用了 Synopsys 的商业 EDA 工具生成的所有电路元件(包括宏)的初始 (x, y) 位置。
Mirhoseini et al. 的主要作者确认使用了这一步骤,并声称这并不重要。但在 Cheng et al. 的论文中,该步骤可将关键指标提高 7-10%。因此,Mirhoseini et al. 的结果需要未被明确说明的算法步骤,例如从商业软件中获取 (x, y) 数据。
Cheng et al. 的论文中还列举了更多未在论文中说明的技术,其中还提到了 Nature 论文、其源代码与谷歌芯片设计实际使用的代码之间的差异。这些差异包括代理成本函数中项的特定权重、与电路不同的邻接矩阵构造,以及 Mirhoseini et al. 的论文中没有源代码或完整描述的几个「黑箱」元素。Bae et al.、Cheng et al.、Macro Placement Repo 提供了缺失的描述。此外,Mirhoseini et al. 的结果与所用方法不符,因为论文中没有提到一些关键组件。仅凭描述无法复现其结果和方法。
训练数据和测试数据之间存在数据泄漏
根据 Mirhoseini et al. 的说法,「当我们将策略网络暴露给更多种类的芯片设计时,它就不太容易过度拟合。」
但谷歌 Team 1 后来在 Yue et al. 中表明,对「多样化 TPU 块」进行预训练并没有提高结果质量。对「以前的网表版本」进行预训练会稍微提高质量。对 RL 进行预训练并在类似设计上对其进行评估可能是 Mirhoseini et al. 方法论中的一个严重缺陷。由于谷歌没有发布专有的 TPU 设计或每个设计的统计数据,所以无法比较训练和测试数据。
可能的局限性
Mirhoseini et al. 没有透露其方法的主要局限性,但却表示其可在更广泛的组合优化中取得成功。Mirhoseini et al. 中的 Ariane 设计显示了相同大小的宏模块:这是一个潜在的限制,因为商用芯片设计通常会使用多种不同的宏尺寸。然而,他们没有报告每个 TPU 块的基本统计数据:宏的数量及其形状、设计面积利用率以及宏占用的面积分数。根据同行评议和谷歌工程师对 Cheng et al. 作者的指导,TPU 块的面积利用率似乎低于典型的商用芯片设计。
谷歌 RL 在 Bae et al. 和 Cheng et al. 中使用的 Adya 和 Markov 的具有挑战性的公共基准测试上表现不佳(如图 2 所示),这表明存在未公开的局限性。
另一个可能的限制是对预置(固定)宏的处理不当,这在行业布局中很常见,但 Mirhoseini et al. 没有讨论过。通过干扰预置宏,网格化可能会影响实践中的可用性。
在公共基准测试上的表现不佳的原因也可能是由于对专有 TPU 设计的过度拟合。
使用中等的模拟退火基线
谷歌 Team 2 的更强基准论文《Stronger baselines for evaluating deep reinforcement learning in chip placement》通过在 swap、shift 和 mirror 操作中添加 move 和 shuffle 操作,改进了谷歌 Team 1 在 Mirhoseini et al. 中使用的并行 SA。在优化相同的目标函数时,这种改进的 SA 通常会在更短的时间内产生比 RL 更好的结果。
Cheng et al. 通过独立实现 SA 复现了 Bae et al. 的定性结论,发现 SA 结果的方差小于 RL 结果。
此外,Bae et al. 为 SA 提出了一种简单快速的宏初始化启发式方法,并在比较 RL 与 SA 时可均衡计算时间。
鉴于 SA 在 1980 到 1990 年代被广泛使用,与弱的 SA 基线相比,自然会导致新的 RL 技术被高估。
这篇 Nature 论文是否提高了现有技术水平?
Nature 杂志的社论在讨论该论文时推测:「这是一项重要的成就,将对加速供应链产生巨大的帮助。」
但在多家芯片设计和 EDA 公司进行评估和复现尝试后,可以肯定地得出结论,这篇 Nature 论文没有取得任何重要成就,因为以前的芯片设计软件,特别是来自 Cadence Design Systems 的软件,可以更快地产生更好的布局。如果该论文的审稿人或公众都知道这些事实,那么该论文关于改进 TPU 设计的主张将是荒谬的。
这篇 Nature 论文声称人类比商业 EDA 工具产生了更好的结果,但没有给出证实。
谷歌 Team 2 和 UCSD 团队采用不同的方法将 Mirhoseini et al. 中的方法与基线方法进行比较,累积报告了与商业 EDA 工具、人类设计师、学术软件以及 SA 的两个独立自定义实现的比较结果。
谷歌 Team 2 遵循 Mirhoseini et al. 中的描述,没有提供初始布局信息。UCSD 团队试图复现谷歌实际所做的事情以产生结果(缺乏 Mirhoseini et al. 的详细信息)。
谷歌 Team 2 可以访问 TPU 设计模块,并证明预训练的影响实际上很小。
尽管 UCSD 团队无法访问谷歌的训练数据和代码,但还是获得了与 Mirhoseini et al. 类似的结果,无需预训练。他们还按照谷歌 Team 2 的指令重新实现了 SA,并引入了几个新的芯片设计示例(表 1)。
Nature 论文中 RePlAce 的使用方式与其预期用途不一致。Bae et al.、Cheng et al. 通过正确使用 RePlAce, 在 ICCAD 2004 基准测试中为 RePlAce 取得了出色的结果。
Nature 论文中使用的模拟退火的实现存在障碍,消除障碍(在同一源代码库中)改进了结果。如果正确实现,SA 会使用更少的运行时间产生比谷歌 CT/RL 更好的解决方案,并且两者都被赋予相同的代理成本函数。Bae et al.、Cheng et al. 证明了这一点。
与谷歌 CT/RL 相比,SA 持续改进了线长和功率指标。对于电路时序指标 TNS 和 WNS,SA 产生的噪声较小,但与 RL 的结果相当。回想一下,SA 和 RL 优化的代理函数不包括时序指标,这使得 SA 或 RL 实现这些改进的断言显得很可疑。
谷歌 CT/RL 未能在人类基线、商业 EDA 工具和 SA 的质量上有所提高。它也没有改进运行时 SOTA(表 3),并且作者没有透露每个设计数据或设计过程的时间。如果配置 / 实现得当,RePlAce 和 SA 会提供更强的基线。
对这篇 Nature 论文批评的反驳
尽管媒体进行了批评并提出了技术问题,但作者未能消除 Mirhoseini et al. 的方法和结果的复现的剩余障碍。
UCSD 团队的工程努力克服了这些障碍,他们跟进了谷歌 Team 2 批评 Nature 论文的工作,然后分析了其中的许多问题。在 CT 代码库出现之前,谷歌 Team 2 就可以访问谷歌 TPU 设计和论文中使用的源代码。Cheng et al. 和 Macro Placement Repo 的 UCSD 作者可以访问 CT 并受益于谷歌 Team 1 工程师的长期参与,但无法访问 Bae et al. 或 Mirhoseini et al. 中使用的 SA 代码或 CT 框架中缺失的其他关键代码片段。
然而,Bae et al.、Cheng et al. 的结果与 Macro Placement Repo 相互印证,并且他们的定性结论是一致的。UCSD 的 Ariane-NG45 结果与 Google Team 1 工程师的结果非常匹配,Cheng et al. 中表明 UCSD 生成的 Ariane-NG45 的 CT 训练曲线与 Google Team 1 工程师生成的结果相匹配。谷歌 Team 1 工程师仔细审查了该论文以及 2022 年秋季和 2023 年冬季的研究结果,没有提出异议。
Nature 论文的两位主要作者于 2022 年 8 月离开谷歌,但在 2023 年 3 月,他们对 Cheng et al. 的结果提出了反对。没有弥补原工作的缺陷。这些反对意见立即在宏布局代码库的 FAQ 部分得到解决。其中一个问题是 Cheng et al. 的实验中缺乏预训练。
预训练
Cheng et al. 使用谷歌 Circuit CT 库中的代码和指令进行训练,其中指出(2023 年 6 月):「以下结果是从头开始训练的结果,因为目前无法共享预训练模型。」
根据 Macro Placement Repo 中的 MacroPlacement FAQ,Cheng et al. 没有使用预训练,因为根据谷歌的 CT FAQ,不需要预训练来重现 Mirhoseini et al. 的结果。此外,谷歌没有公布预训练数据。
谷歌 Team 2 使用谷歌内部的代码评估预训练,发现对与 SA 或 RePlAce 的比较没有影响。
谷歌 Team 1 表明「不同 TPU 块」的预训练并没有改善结果,只改善了运行时间。「以前的网表版本」的预训练略有改善。CT 文档或论文本身没有讨论、披露或发布此类先前版本。
换句话说,Nature 论文的主要作者希望其他人使用预训练,但他们没有足够详细地描述它以进行复现,没有发布它的代码或数据,并且已经表明它不会改善预训练的结果。
2024 年 9 月(发表几年后),作者宣布发布预训练模型,但未发布预训练数据。因此,我们无法确保用于测试的特定示例未在预训练中使用。
基准老旧
另一个反对意见是 Bae et al. 和 Cheng et al. 使用的公共电路基准测试据称使用了过时的基础设施。
事实上,这些基准已经使用 HPWL 目标进行了评估,该目标可以在芯片设计的几何 2D 缩放下准确缩放,并且仍然适用于所有技术节点(第 2 节)。ICCAD 基准是由那篇论文的同行评审员 #3 要求的。当 Bae et al. 和 Cheng et al. 实现了这个要求,在路由变得相关之前,谷歌 RL 遇到了麻烦:在 HPWL 优化中,RL 差了 20% 左右(HPWL 是 CT/RL 优化的代理成本中最简单但最重要的项)。
Cheng et al. 的实验中,没有训练到收敛
Macro Placement Repo 中的 FAQ #15 立即解决了这一问题:「CT GitHub 存储库提供的任何指南中都没有描述『训练到收敛』。」
后来,他们的额外实验表明,「训练直到收敛会恶化一些关键芯片指标,同时改善其他指标,凸显了代理成本和芯片指标之间的不良相关性。总体而言,与 ISPD 2023 论文中报告的模拟退火和人类宏放置的结果相比,直到收敛的训练不会发生质的变化。」Bae et al. 的 RL-vs-SA 实验早于 CT 框架,也早于 Mirhoseini et al. 声称的训练不到 6 小时就收敛的方法。
Nature 论文使用的计算资源非常昂贵且难以复现。由于 RL 和 SA 算法都会在早期产生可行的解决方案,然后逐渐改进代理函数,因此 Cheng et al. 的尽力而为的比较使用的计算资源比 Mirhoseini et al. 的计算资源要少,并且 RL 和 SA 之间具有同等性。结果:SA 击败 RL。
Bae et al. 使用与 Mirhoseini 相同的计算资源对 RL 和 SA 进行了比较。Cheng et al. 的结果与 Bae et al. 的结果一致。如果给予更多资源,SA 和 RL 不太可能进一步改善芯片指标,因为其与 Mirhoseini 的代理函数相关性较差。
该论文的主要作者在 Goldie 和 Mirhoseini 在声明《Statement on reinforcement learning for chip design》中提到,该论文被大量引用,但他们没有引用谷歌之外的任何积极的复现结果来清除所有已知的障碍。Bae et al. 和 Cheng et al. 没有讨论在 IC 设计中使用 RL 的其他方法,因此这里不再进行一般性结论。
谷歌这篇论文中的成果可用吗?
发表于 Nature 的这篇谷歌论文声称这些方法可应用于最近的谷歌 TPU 芯片,这似乎佐证了他们声称的东西:即这些方法改进了最新技术水平。但除了含糊的一般性声明外,没有报告明确说明对生产级芯片的芯片指标改进。
前文已经表明,该论文和框架中的方法落后于 SOTA,例如 1980 年代的模拟退火(SA)。此外,谷歌的 Bae et al. 内部实现的 SA 足以替代那篇 Nature 论文中提出的强化学习方法。谷歌既声称在 TPU 设计中使用了这个 RL 方法,但实际上这个方法又落后于 SOTA,为什么会这样?这篇文章试图给出一些解释。
鉴于芯片时序指标 TNS 和 WNS 在强化学习结果中的方差较大,所以使用远远更长的运行时间,尝试使用不同的代理成本函数和超参数设置进行多次独立随机尝试可能会改善最佳结果,但 SA 也能做到这一点。 使用内部方法(即使是较差的方法)是行业实践中称为 dogfooding(吃自己的狗粮)的常见方法。在大多数芯片中,一些块并不重要(不会影响芯片速度),是很好的 dogfooding 候选。这可以解释谷歌为什么选择性地公布生产级使用」和报告。(注:在芯片设计领域,dogfooding 是指芯片设计公司内部的工程团队会使用自己设计的芯片进行测试和验证,以确保芯片满足预期的性能、功能和质量。这种方法可以帮助团队发现潜在的设计缺陷、优化用户体验,并提前解决问题,而不是等到产品发布后才被客户发现。) 强化学习的结果由 SA30 进行过后处理,但 CT FAQ 否认了这种后处理 ——TPU 设计流程中使用了后处理,但在将 RL 与 SA 进行比较时未使用。但由于成熟的 SA 始终胜过强化学习,因此 SA 完全可以替代强化学习(可以使用 SA 中的自适应温度调度来适应初始位置)。
谷歌 Team 1 的后续研究表明(如图 7 所示),仅在对基本相同的设计进行预训练时,预训练才能改善结果。也许,谷歌在对 IC 设计进行多次修订时利用了强化学习 —— 这是一个有效的背景,但这篇 Nature 论文中没有描述这一点。此外,从头开始运行时,商用 EDA 工具的速度比强化学习快几个数量级,因此预训练 RL 并不能缩小差距。
谷歌 CT/RL 代码可以得到改进吗?
RL 和 SA 比 SOTA 慢几个数量级(表 3),但预训练(CT 中没有)仅能将 RL 的速度提高几倍。CT 代码库现在包含尝试过的改进措施,但我们尚未看到芯片指标的重大提升。改进版 CT 库和论文仍然存在四个主要障碍:
RL 优化的代理成本并不能反映电路时序,因此改进 RL 可能无助于改进 TNS 和 WNS。 在优化给定的代理函数时,SA 优于 RL。因此,即使使用更好的代理,RL 也可能会失败。 RL 在粗粒度网格上放置宏会限制它们的位置(图 2)。当人类忽略粗网格时,他们会找到更好的宏位置。商用 EDA 工具也避免了这种限制,并且优于谷歌的 CT/RL。 作为预处理步骤的聚类会导致放置和网表分区目标之间不匹配。
总结
这篇元分析讨论了对 Mirhoseini et al. 那篇 Nature 论文的结果的复现和评估,以及其中方法、结果和声明的有效性。他们发现,那篇论文中包含机器学习中的多种可疑做法,包括不可重复的研究实践、挑选好结果、误报和可能的数据污染。
基于交叉检验的新数据,本文得出了具有足够冗余度的结论:由于研究中实现、分析和报告中的错误,该论文的可信度严重不足。遗漏、不一致、错误和失实陈述影响了他们的方法、数据、结果和解释。
关于那篇 Nature 论文的结论
谷歌 Team 2 可以访问谷歌的内部代码,而 Cheng et al. 对缺失的组件进行了逆向工程和 / 或重新实现。谷歌 Team 2 和 UCSD 团队从类似的实验中得出了一致的结论,并且每个团队都进行了额外的观察。
这里交叉检查了谷歌 Team 2 和 UCSD Team 报告的结果,并考虑了 CT 框架、Nature 同行评议和 Yue et al. ,然后总结了这些工作得出的结论。这证实了对这些声明的许多初步怀疑,并发现了其他缺陷。
因此,很明显,Mirhoseini et al. 的 Nature 论文在多个方面具有误导性,以至于读者无法相信其最重要的声明和结论。Mirhoseini et al. 没有改进 SOTA,而原始论文的方法和结果无法从提供的描述中重现,这违反了 Nature 的既定编辑政策。依赖专有的 TPU 设计进行评估,以及实验报告不足,继续阻碍着方法和结果的可复现性。
这篇 Nature 论文作者试图驳斥批评,但未能成功。
令人惊讶的是,自 Cheng et al. 发表论文以来,Mirhoseini et al. 的作者在一年半内没有提供新的令人信服的实证结果。
对芯片设计的影响
这里仅强调了那篇 Nature 论文方法中的不足之处。但 2024 年来自中国的一项研究成果《Benchmarking end-to-end performance of AI-based chip placement algorithms》使用他们新的独立评估框架比较了七种混合尺寸布局技术,其中有 20 个电路(其中七个带有宏)。
他们在芯片指标上的端到端研究结果表明,基于 ML 的技术落后于 RePlAce(嵌入在 OpenROAD 中)和其他基于优化的技术:DREAMPlace(基于 GPU 的 RePlAce 算法变体)和 AutoDMP(围绕 DREAMPlace 的贝叶斯优化 wrapper)。尽管复现 Mirhoseini et al. 的方法具有明显的必要性,但 Wang et al. 的作者无法提供这样的结果。
政策影响
理论论证和实证证据表明,各个领域发表的大量论文无法复现,而且可能不正确。比如 Nature 杂志这篇论文就加剧了复现危机,破坏了人们对已发表研究的信任。
Retraction Watch 每年能追踪到 5000 起撤稿事件,包括突出的研究不端行为案例。其表示,「研究不端行为是一个严重的问题,而且(可能)越来越严重」,这使得我们更有必要将诚实的错误与故意夸大和不端行为区分开来。机构需要给出回应,包括在 Nature 撤稿通知中进行明确说明。
Nature 的编辑政策应被广泛而严格地遵守。引自《Nature Portfolio》:
「出版的固有原则是,其他人应该能够复现和借鉴作者发表的主张。在 Nature Portfolio 期刊上发表论文的条件是,作者必须及时向读者提供材料、数据、代码和相关协议,而无需要求资格…… 出版后,如果读者遇到作者拒绝遵守这些政策的情况,应联系期刊的主编。」
具体到 Mirhoseini et al. 这篇论文,杂志社论坚称「技术专长必须广泛分享」。但是,当稿件作者忽视公开基准测试的要求并阻碍复现时,他们的技术主张应该受到怀疑(尤其是如果他们后来不同意与他们的工作进行比较)。
根据同行评议文件,这篇论文的接收取决于代码和数据的发布,但在 Mirhoseini et al. 发表时或之后,这都没有发生。
这些作者还对那篇 Nature 论文进行了修改,声称代码已经可用。但发布的代码中仍然存在严重遗漏。这尤其令人担忧,因为该论文省略了关键的比较和细节,并且负责评估该项目的谷歌吹哨人在加州法院宣誓指控存在欺诈行为。这使得复现变得更加关键。
对于已发表的科学主张,得出明确无误的结论符合每个人的利益。作者、Nature 杂志的编辑和审稿人以及研究界都应承担责任。寻求真相是大家共同的义务。
参考链接:
https://cacm.acm.org/research/reevaluating-googles-reinforcement-learning-for-ic-macro-placement/
https://weibo.com/2199733231/OErfamQry