NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

谷歌利用人工智能设计的芯片揭示了智能的本质

  • 2021-06-30
  • 本文字数:3365 字

    阅读完需:约 11 分钟

谷歌利用人工智能设计的芯片揭示了智能的本质

本文最初发表于 TechTalks 网站,经原作者 Ben Dickson 授权,InfoQ 中文站翻译并分享。本文是 TechTalks 对人工智能研究论文的评论文章之一,这个系列主要探索人工智能领域的最新发现。


InfoQ 中文站曾经翻译并分享过《谷歌的深度学习在 AI 芯片中找到了一条关键路径》,该文介绍了 ZDNet 与谷歌大脑总监 Jeff  Dean 谈到谷歌如何使用人工智能来推进定制芯片的内部开发,从而加快软件开发。使用人工智能设计芯片来运行人工智能,这本身是一件非常有意思的事。本文作者探讨了他对谷歌使用人工智能为人工智能设计芯片的思考。


上个星期,在同行评审的科学杂志《自然》(Nature)上发表的一篇论文,谷歌大脑的科学家提出了一项深度强化学习技术,可以用于布图规划(floorplan),即安排计算机芯片上不同元件的放置过程。


译注:布图规划是在集成电路设计(特别是其中的物理设计步骤)对于电路主要功能模块在试验性布局中的图形表示。它是物理设计后续过程,即精确布线的前提。


研究人员试图用强化学习技术来设计下一代的张量处理器,也就是谷歌的人工智能处理器。


使用软件进行芯片设计并非新鲜事。但据谷歌研究人员称,这种新的强化学习模型“能自动生成芯片平面图,这些图在所有关键指标上都优于或可匹敌由人类绘制的平面图,包括功耗、性能和芯片面积。”并且它只花了人类所需时间的一小部分。


人工智能在性能上优于人类的特性已经引起了广泛的关注。一家媒体将其描述为“能够比人类更快地设计计算机芯片的人工智能软件”,并写道:“一款需要人类花费数月来设计的芯片,谷歌的一种新的人工智能在六个小时内就能实现。”


另外一家媒体写道:“人工智能为人工智能设计芯片的良性循环似乎刚刚起步。”


但是读了这篇论文后,让我吃惊的,不是用于设计计算机芯片的人工智能系统的复杂性,而是人类和人工智能之间的协同。

类比、直觉和奖励


这篇论文是这样描述这个问题的:“芯片布图规划涉及到在芯片画布(二维网格)上放置网表,以优化性能指标(例如,功耗、时序、面积和布线长度),同时又要遵守布线密度和布通率的硬约束条件。”


基本上,你要做的就是以最优化的方式放置元件。但是,和其他问题一样,随着芯片中元件数量的增加,寻找最佳设计变得越来越困难。


现有的软件有助于加快发现芯片排列的过程,但是,如果目标芯片越来越复杂,就会产生问题。研究人员决定从强化学习的方法中汲取经验,以解决其他复杂的空间问题,例如围棋。


研究人员写道:“芯片布图规划类似于一场游戏,其中存在不同的棋子(例如网表拓扑结构、宏计数、宏大小和长宽比)、棋盘(不同的画布尺寸和长宽比)和胜负条件(不同评估指标的相对重要性或不同的布线密度和布通率限制)。


在人类智慧中,这是一个最重要也是最复杂的方面:类比。我们人类能从自己解决的问题中提取出抽象的东西,然后再把抽象运用到新问题上。尽管我们把这些技能视为理所当然,但正是这些技能,让我们在迁移学习方面做得很好。因此,研究人员可以把芯片的布图规划问题重新设计成一种棋盘游戏,而用其他科学家解决围棋游戏的方法来解决它。


深度强化学习模型可以特别擅长于在很大的空间内进行搜索,这在物理上是无法实现的,因为人类大脑的计算能力决定了。然而,科学家们面临的问题比围棋要复杂几个数量级。“将 1000 个节点集群放置在由 1000 个单元组成的网格中的状态空间是 1000 的数量级!(大于 10²⁵⁰⁰),而围棋的状态空间为 10³⁶⁰。”研究人员写道。他们想要设计的芯片将由数百万个节点组成。


他们使用人工神经网络来解决复杂的问题,这种网络可以将芯片设计编码为向量表示,从而使探索问题空间更容易。根据这篇论文,“我们的直觉(重点在于我的直觉)表明,一种能够完成芯片放置的常规工作的策略,也应该能在推理过程中,将与新的未知芯片有关的状态编码成有意义的信号。所以,我们训练了一个神经网络架构,它可以预测放置有奖励的新网表,最终目标是把这个架构作为我们策略的编码层。”


直觉(intuition)这个词常被随意使用。但直觉是一个很复杂的鲜为人知的过程,包括经验、潜意识知识、模式识别等等。我们的直觉来自于多年来在某一领域的研究,但也可以从其他领域的经验中得到。幸运的是,在高功率计算和机器学习工具的帮助下,将这些直觉用于测试变得更加容易。


此外,值得注意的是,强化学习系统要求有周密设计的奖励。实际上,一些科学家认为,只要有正确的奖励功能,强化学习就足以使通用人工智能成为现实。但是,如果没有正确的奖励,强化学习智能体就会陷入无休止的循环之中,做出一些愚蠢而无意义的事情。在下面的视频中,一个玩《赛船冠军赛》(Coast Runners)电子游戏的强化学习智能体正在试图使其积分最大化,而放弃了主要目标——赢得比赛。



视频链接:https://youtu.be/tlOIHko8ySg


谷歌的科学家将布图规划系统的奖励设计为“代理布线长度、布通率和布线密度的负加权和”。在开发和训练强化学习模型时,这些权重是他们必须调整的超参数。


通过正确的奖励,强化学习模型可以充分发挥它的计算能力,找到各种方式设计平面图,使奖励最大化。

策划数据集

该系统中使用的深度神经网络是使用监督学习开发的。监督机器学习需要标记数据,以便在训练期间调整模型的参数。谷歌的科学家创建了“一个包含 10000 个芯片放置的数据集,其中输入是与特定放置相关的状态,标签是该放置的奖励”。


为避免手动创建每个平面图,研究人员结合了人类设计的平面图和计算机生成的数据。对于训练数据集中所包含的算法生成例子的评估,需要多少人力,论文中并没有给出太多信息。但是,没有高质量的训练数据,监督学习模型最终将做出糟糕的推断。


在这个意义上,该人工智能系统不同于其他强化学习程序,例如 AlphaZero,它开发的游戏策略无需人类参与。将来,研究人员可能会开发一种强化学习智能体,它可以设计自己的平面图,而无需监督学习组件。但是我猜想,由于问题的复杂性,解决这类问题很有可能会继续要求整合人类直觉、机器学习和高性能计算。

强化学习设计与人类设计

在谷歌研究人员提出的工作中,有趣的方面是芯片的布局。我们人类使用各种捷径来克服大脑的极限。我们无法在一个大块中解决复杂的问题。但我们可以设计模块化、分层次的系统来对复杂的问题进行划分和求解。在开发能够执行非常复杂任务的系统时,我们考虑并设计自顶向下架构的能力起了重要作用。


我举一个软件工程的例子,这是我自己的专业领域。从理论上讲,你可以在一个文件中用非常大的、连续的命令流来编写整个程序。但软件开发人员从来不会这么写他们的程序。我们所创建的软件都是小块的,函数、类、模块,它们可以通过明确定义的接口进行交互。接着,我们将这些小块嵌套到较大的小块中,逐渐地形成一个元件的层次结构。你不必阅读程序的每一行,就能理解其功能。模块化使得多个程序员能够在同一个程序上工作,也使得一些程序可以重复使用先前构建的组件。有时候,仅仅是看看程序的类架构就足够了,它可以为你指出正确的方向,找出错误,或者找到增加升级的正确位置。我们经常以速度换取模块化和更好的设计。


从某种意义上说,计算机芯片的设计也有类似的问题。人类设计的芯片往往在不同的模块之间有整齐的界线。而谷歌的强化学习智能体所设计的平面图,无论布局看上去如何(见下图),都已找到最小阻力路径。



左图为人类设计的芯片,右图为人工智能设计的芯片


这是否会成为一种可持续的设计模式,还是需要在高度优化的机器学习产生的设计与人类工程师强加的自顶而下的顺序之间作出某种妥协,我很好奇。

人工智能 + 人类智能

正如谷歌的强化学习驱动的芯片设计者所展示的,人工智能硬件和软件的创新将继续需要抽象思维,找到要解决的正确问题,培养对解决方案的直觉,以及选择正确的数据来验证解决方案。这些都是更好的人工智能芯片可以加强但不能取代的技能。


总之,我不认为这是一个“人工智能战胜人类”、“人工智能创造更智能的人工智能”或人工智能发展了“递归自我完善”能力的故事。相反,人类可以利用人工智能作为工具来克服自身的认知极限,并扩展自身能力的表现。假如存在良性循环,那就是人工智能和人类找到更好的合作方式。

作者介绍:

Ben Dickson,软件工程师,也是 TechTalks 的创始人。撰写关于技术、商业和政治方面的文章。


原文链接:


https://bdtechtalks.com/2021/06/14/google-reinforcement-learning-ai-chip-design/

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2021-06-30 09:001216
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 494.1 次阅读, 收获喜欢 1967 次。

关注

评论

发布
暂无评论
发现更多内容

一图看懂CodeArts Inspector 三大特性,带你玩转漏洞管理服务一图看懂CodeArts Inspector 三大特性,带你玩转漏洞管理服务

华为云开发者联盟

云计算 后端 华为云 漏洞修复 华为云开发者联盟

2023云栖大会即将开幕,速来免费预约!

阿里云视频云

云计算 阿里云 云栖大会

强静态类型,真的无敌

树上有只程序猿

静态 类型

Viscosity:Mac端最好用的open客户端

晴雯哥

一图看懂华为云CodeArts Inspector 三大特性,带你玩转漏洞管理服务

华为云PaaS服务小智

云计算 软件开发 华为云

最新 DaVinci Resolve Studio 18 Mac破解版安装详细步骤 附 达芬奇调色软件18 激活码 支持 M1/M2

晴雯哥

Web3D数字孪生智慧搅拌站可视化物联网平台

2D3D前端可视化开发

物联网 可视化 数字孪生 智慧搅拌站 智慧拌和站

ps必备插件Adobe Camera Raw 16 for Mac(Raw格式图像ps插件) v16.0.0中文激活版

晴雯哥

元宇宙Gamefi链游系统定制开发搭建

V\TG【ch3nguang】

软件测试/测试开发丨App自动化测试——显示等待高级使用

测试人

Python 程序员 软件测试 app自动化测试 显式等待

慕圣妃轻医美4998系统开发

张泽🐟APP小程序开发定制

通过零代码ETLCloud实现数据自动化同步

RestCloud

数据同步 ETL

2024北京国际软件展览会(世亚软博会)

AIOTE智博会

软件博览会 软件展 软博会 世亚软博会 北京软博会

OpenHarmony嵌套类对象属性变化:@Observed装饰器和@ObjectLink装饰器

OpenHarmony开发者

如何构建安全的App网络通信?

ZA技术社区

数据安全 众安科技 众安保险 ZA技术社区

作为前端应该了解的后端常识

程序员万金游

Vue js #前端 #HTTP

交易所源码、加功能、二次开发

西安链酷科技

合约交易所开发 交易所源码 交易所搭建 交易所维护

快速入门:使用 FastAPI APIRouter 构建强大的 API

Liam

Java Python 后端 FastApi APIRouter

智慧公厕:改善城市生活的小细节

光明源智慧厕所

什么是公链?公链开发优缺点分析 公链开发公司有哪些儿

西安链酷科技

公链开发 公链团队

巧用指标平台DataIndex,五步法轻松实现指标管理

袋鼠云数栈

大数据 数据中台 指标 指标管理 指标建设

开发搭建足球赛事APP软件平台,获利方式

软件开发-梦幻运营部

XMind for mac (XMind思维导图)v23.09中文激活版

mac

XMind 思维导图软件 苹果mac Windows软件

报名开始|聚焦云原生供应链、AI 基础设施!KCD 2023 杭州站等你

OpenAnolis小助手

操作系统 杭州 龙蜥社区 kata KCD

西安链游开发、区块链游戏设计、游戏合集、棋牌上链

西安链酷科技

软件开发 交易所开发 DAPP系统开发 链游开发

和鲸 ModelWhale 与华为 OceanStor 2910 计算型存储完成兼容性测试

ModelWhale

华为 信创 数据存储 数据科学 数据科学平台

云原生网关可观测性综合实践

阿里巴巴云原生

阿里云 微服务 云原生 监控

南扬集团轻医美4998系统开发

张泽🐟APP小程序开发定制

浏览器可直接访问 Dubbo、gRPC 后端微服务,Dubbo-js 首个alpha 版本来了!

阿里巴巴云原生

阿里云 云原生 dubbo

中国企业出海记:跨文化管理须“换鞋走路”

出海的猹

管理 文化 企业出海

认证授权双保驾 身份管理的选择关键 ——华为云OneAccess应用身份管理服务 (第一篇 工具介绍)

华为云PaaS服务小智

云计算 软件开发 华为云 应用身份管理

谷歌利用人工智能设计的芯片揭示了智能的本质_AI&大模型_Ben Dickson_InfoQ精选文章