在上周发表的同行评审科学期刊上发表的论文中,谷歌大脑的科学家介绍了一个深层加强学习技术,用于布置计算机芯片不同部件的放置。

研究人员设法使用加强学习技术设计下一代张量处理单元,谷歌专业的人工智能处理器。

在芯片设计中使用软件并不新鲜。但根据谷歌研究人员,新的加强学习模型“自动生成芯片地板平板,这些芯片平面平面在所有关键指标中都是由人类产生的,包括功耗,性能和芯片区域。”它在一小部分中,它会采取人类这样做。

AI对人类表现的优势引起了很多关注。一个媒体插座将其描述为“可以比人类更快地设计计算机筹码的人工智能软件”并写道“将在谷歌的”新的AI在不到六个小时内被梦想为“将采用人类月份的芯片。”

另一个出口写道,“AI设计芯片的良性循环看起来只是刚刚入门。”

但是在阅读论文的同时,令我惊讶的是,我不是用于设计计算机筹码的AI系统的复杂性,而是人工智能之间的协同作用。

类比,直觉和奖励

本文描述了以下问题:“芯片平面图涉及将网表放在芯片帆布上(二维网格),以便优化性能度量(例如,功耗,定时,区域和Wirelength),同时遵守密度和路由拥塞的硬约束。”

基本上,您想要做的是以最佳的方式将组件放在上面。然而,与任何其他问题一样,随着芯片中的组件数量的增长,找到最佳设计变得更加困难。

现有软件有助于加快发现芯片布置的过程,但是当目标芯片在复杂性中增长时,它们会缩短。研究人员决定从加强学习的方式汲取经验,解决了其他复杂的空间问题,例如游戏。

“芯片平面图是类似的[强调矿井]与不同的碎片(例如,网表拓扑,宏观计数,宏观尺寸和纵横比),电路板(不同的帆布尺寸和纵横比)和赢得条件(不同评价的相对重要性研究人员写道,指标或不同的密度和路由拥塞约束)。

这是人类智慧最重要和最复杂的方面之一的表现:类比。我们人类可以从我们解决的问题中汲取抽象,然后将这些抽象应用到一个新问题。虽然我们采取了这些技能理所当然,但他们让我们在转移学习方面非常善于。这就是研究人员可以将芯片平面图的原因作为棋盘游戏的原因,并且可以以同样的方式解决其他科学家解决了去的游戏。

深度加强学习模型可以特别擅长搜索非常大的空间,这是一个物理上不可能对大脑的计算能力。但科学家们面临着比Go更复杂的数量级的问题。“[”[该]在网格上放置1,000个节点的状态空间,具有1,000个细胞的1,000级!(大于102,500),而Go有10360的国家空间,“研究人员写道。他们想要设计的芯片将由数百万节点组成。

它们解决了一个人工神经网络的复杂性问题,可以将芯片设计编码为矢量表示,并使探索问题空间更容易。据此,“我们的直觉[重点矿井]是,能够芯片放置一般任务的策略也应该能够在推理时间内将与新的看不见的芯片相关联的状态编码为有意义的信号。因此,我们培训了一种能够预测新网手册的奖励的神经网络架构,具有使用此架构作为我们政策编码层的最终目标。“

术语直觉通常松散地使用。但这是一个非常复杂而且很少理解的过程,涉及经验,无意识的知识,模式识别等等。我们的直觉来自多年的工作在一个领域,但它们也可以从其他领域的经验中获得。幸运的是,在高功率计算和机器学习工具的帮助下,将这些直觉进行测试变得越来越突出。

值得注意的是,强化学习系统需要精心设计的奖励。事实上,一些科学家认为,通过正确的奖励功能,加强学习就足以达到人为的一般情报。然而,没有正确的奖励,RL代理可以陷入无尽的环,做愚蠢和毫无意义的事情。在下面的视频中,打海岸跑步者的RL代理正在努力最大化其积分并放弃主要目标,这是赢得比赛。

谷歌的科学家设计了平面图系统的奖励作为“代理Wirelength,拥塞和密度的负加权总和”。重量是在加强学习模型的开发和培训期间进行调整的近似数目。

通过正确的奖励,加强学习模式能够利用其计算能力,并找到各种方式来设计最大化奖励的平面图。

策划数据集

系统中使用的深度神经网络是使用监督学习开发的。监督机器学习需要标记数据以在培训期间调整模型的参数。谷歌的科学家创造了“10,000芯片展示位置的数据集,其中输入是与给定放置相关的状态,标签是该展示位置的奖励。”

为避免手动创建每个楼层平板,研究人员使用了一组人设计的计划和计算机生成的数据。本文还没有多少信息,了解培训数据集中包含的算法生成的示例的评估。但没有优质的培训数据,监督学习模式最终会产生差的推理。

从这个意义上讲,AI系统与其他强化学习节目(如alphazero)的不同,这在不需要人类投入的情况下开发了其游戏政策。在未来,研究人员可能会开发一个可在无需监督学习组件的情况下设计自己的地板计划的RL代理。但是,我的猜测是,鉴于问题的复杂性,解决这些问题的巨大机会将继续需要人类直觉,机器学习和高性能计算的组合。

强化学习设计与人类设计

谷歌研究人员提供的工作的有趣方面是芯片的布局。我们人类使用各种捷径来克服大脑的极限。我们无法在一个大块中解决复杂问题。但我们可以设计模块化,分层系统来掌握和征服复杂性。我们认为和设计自上而下的架构的能力在开发系统中发挥了很大的份额,这些系统可以执行非常复杂的任务。

我将展示软件工程,我自己的专业领域。从理论上讲,您可以在单个文件中的一个非常大,连续的命令流中写整个程序。但软件开发人员永远不会以这种方式编写他们的节目。我们在小块,函数,类,模块中创建软件,可以通过定义良好的接口相互交互。然后,我们将这些部分嵌入更大的碎片并逐渐创建一个组件的层次结构。您不需要阅读程序的每一行以了解它的内容。模块化使多个程序员能够在单个程序上工作和多个程序来重用以前构建的组件。有时,只需查看程序的班级架构就足够了,以指向您的正确方向,找到错误或找到正确的位置添加升级。我们经常贸易速度为模块化和更好的设计。

在时尚之后,在计算机芯片的设计中可以看到同样的。人类设计的芯片倾向于在不同模块之间具有整洁的边界。另一方面,由于谷歌的强化学习代理设计的地板平面图已发现阻力的最小路径,无论布局如何看起来如何(见下图)。

以上:正确的:手动设计芯片左侧:AI设计的芯片

我有兴趣查看这是否将成为未来的可持续设计模式,或者如果它需要在高度优化的机器学习的设计和人工工程施加的自上而下的顺序之间需要某种类型的折衷。

ai +人类智力

作为谷歌的强化学习动力芯片设计师展示,AI硬件和软件的创新将继续要求抽象思考,找到解决的正确问题,开发关于解决方案的直觉,并选择合适的数据来验证解决方案。那些是更好的AI芯片可以增强但不更换的技能。

在一天结束时,我认为这不是一个“AI Outsmarting人类”的故事,“AI创造了更智能的AI,”或AI开发“递归自我改善”的能力。它是人类找到使用AI作为支配的方法的表现形式,以克服自己的认知限制并扩展其能力。如果有一个良性循环,那是一个人和人类找到更好的合作方式。

Ben Dickson是一名软件工程师和TechTalk的创始人。他写了关于技术,商业和政治。