谷歌内部正在尝试用这个新技术开发新一代计算机芯片
据谷歌人工智能研究负责人jeff dean透露,谷歌正在尝试通过人工智能程序推进专用芯片的内部开发,以加速其软件。dean在旧金山举行的international solid state circuits conference年度技术研讨会主题演讲之后,接受zdnet采访时说:“我们内部正在将人工智能技术用于一系列芯片设计项目中。”
过去几年中,谷歌开发了一个ai硬件家族——tensor processing unit(tpu芯片),用于在服务器计算机中处理ai。使用ai来设计芯片是一个良性循环:ai让芯片变得更好,经过改良的芯片又能增强ai算法,依此类推。
在主题演讲中,dean向参会者介绍了如何使用机器学习程序决定计算机芯片的电路布局,最终设计与人类芯片设计人员相比,其敏锐度相当甚至更高。
当“布线”任务中,芯片设计人员通常会使用软件来确定芯片中的电路布局,有点类似于建筑物设计平面图。为了找到满足多个目标的最佳布局,需要考虑很多因素,包括提供芯片性能,同时还要避免不必要的复杂性,否则可能增加芯片制造成本。这种平衡需要大量的人类启发式思维,以最佳方式进行设计。现在,人工智能算法也能够以这种启发式思维方式进行设计。
dean举例说,深度学习神经网络只花了24个小时就解决了问题,而人类设计是需要6至8周,并且前者的解决方案更好。这减少了芯片总布线数量,从而提高了效率。
dean向参会者表示,用于解决这个问题的机器学习模型仅用24小时就提出了一种芯片设计方案,而人类设计师用了8周时间才完成。
这个深度学习程序类似于google deepmind部门为征服go游戏开发的alphazero程序,并且也是一种强化学习。为了实现目标,该程序尝试了各种步骤来查看哪些步骤可以带来更好的结果,只不过不是下棋,而是在芯片中设计最优的电路布局。
与go不同的是,这个解决方案的“空间”(布线数量)要大得多,而且如上所述必须满足很多要求,不是仅仅赢得比赛这一个目标。
dean表示,这个内部研究还处于了解深度学习技术的早期阶段。“我们正在让我们的设计师进行试验,看看如何开始在工作流程中使用该程序。另外我们正在试图了解该程序的用处以及它在哪些方面可以改进。”
谷歌进军ai设计领域正处于芯片生产复兴之时,旨在让不同大小的专用芯片都可以更快地运行机器学习。有机器学习科学家认为,专用ai硬件可以催生更大型、更高效的机器学习软件项目。
dean说,即使谷歌扩展了ai设计项目,仍然会有很多ai硬件初创公司(例如cerebras systems和graphcore)给市场带来多样性,并迅速发展起来。并表示这种多样性会很有意思。
“我不确定这些初创公司是否能够在市场中生存下去,但这很有意思,因为其中很多初创公司采取了截然不同的设计方式。有些加速的模型很小,可以用于片上sram。”这意味着,机器学习模型可能非常小,不需要外置内存。
“如果你的模型可用于sram,那么会变得非常高效,但如果不适合,那就不是你应该选择的芯片。”
谷歌称,这个机器学习程序创造了很多连人类设计师都没有想到的新颖电路设计。
当被问及这些芯片是否会融入某些标准设计的时候,dean暗示,多样化是很有可能的,至少就目前来看。“我确实认为大家使用的方法会各有千秋,因为当前有关机器学习的研究呈现爆炸式增长,机器学习被用于解决各种各样的问题,当有如此多选择的时候,你肯定不想只盯着一个选择,而是想要五个或者六个——不会是一千个,但得有五个或六个不同的设计点。”
dean补充说:“哪些设计方法会脱颖而出,这一点令人期待,不管是能够解决很多问题的通用方法,还是加速某个方面的专业化方法。”
谈到谷歌除了tpu之外的举措, dean表示,谷歌正在尝试越来越多的专用芯片。当被问及谷歌ai硬件是否可能延伸到其现有产品之外时,dean回答说:“哦,是的。”
“毫无疑问,机器学习正在被越来越广泛地用于谷歌产品中,这些产品既包括基于数据中心的服务,也有很多手机上的产品。”dean指出,google translate就是一个摆脱了复杂性的程序,该程序现在支持七十种不同的语言,即使是在飞行模式下也可以在手机上使用。
dean指出,谷歌扩充了面向ai的芯片家族。例如edge tpu就涵盖了“不同的设计点”,包括低功耗应用,以及数据中心核心的高性能应用。当被问及谷歌是否会进一步扩大多样性的时候,dean回答说:“我认为会的。”
dean表示,“即使在非数据中心领域,你会也看到不同高功率环境——例如自动驾驶汽车——之间的区别,不一定是1瓦,有可能是50或100瓦。因此,针对这种环境和针对手机环境,你需要不同的方法。”同时,还有农业传感器之类的超低功耗应用,这些应用程序可以执行一些ai处理,而无需将任何数据发送到云中。这种传感器如果支持ai就可以评估是否收集了(例如摄像头的)任何数据,并将这些单独的数据点发送回云端进行分析。