在今年年初发表的一篇论文论文中,IBM详细介绍了神经计算机。
这是一种可重新配置的并行处理系统,旨在研究和开发新兴的AI算法和计算神经科学。 就在本周,该公司在神经计算机上演示了第一个应用程序:一种深度的神经进化系统。
该系统将Atari 2600的硬件实现,图像预处理和AI算法结合在优化的流水线中。
实验报告得出的结果可与最先进的技术相匹敌,但更重要的是,IBM声称该系统达到了每秒120万帧的训练时间,创下了最新记录。 网友惊呼,「简直不敢相信!」
神经计算机就像是在AI计算军备竞赛中发出的一个示警信号。 据OpenAI发布的一项分析显示,从2012年到2018年,最大规模的AI培训运行中使用的计算量增长了300,000倍,是3.5个月的两倍,远远超过了摩尔定律的步伐。
AlexNet到AlphaGo零:计算量增长了300,000倍
先来了解一下IBM 的神经计算机吧
IBM神经计算机
IBM的神经计算机由432个节点组成(每16个模块卡中有27个节点),这些节点是IBM长期战略合作伙伴Xilinx的现场可编程门阵列(FPGA,设计用于制造后配置的集成电路)。
IBM神经计算机每个模块卡中有27个节点
每个节点均有一个Xilinx Zynq单片系统(一个双核ARM A9处理器与一个FPGA在同一芯片上配对)以及1GB专用RAM芯片。
节点以3D网格拓扑结构排列,并与电气连接(称为穿硅通孔,这些通孔可以完全穿过硅晶圆或芯片)垂直互连。
在3D网格拓扑结构中可以看到节点数字
在联网方面,FPGA提供模块卡之间物理通信的访问,以便建立多个不同的通信通道。 理论上讲,单个卡可以支持高达每秒432GB的传输速度,而神经计算机的网络接口可以自身调节并逐步优化, 使其匹配给定的程序。
在论文中详细简述了神经计算机框架的共同作者写道,「我们系统的独特之处在于每个节点允许特定应用的处理器卸载,这一功能在我们所知任何规模的并行计算机上均不可用。多数性能的关键步骤已在FPGA上卸载和优化,同时ARM处理器提供了辅助支持。」 既然对神经计算机有所了解,那么IBM在神经计算机上的首次应用演示,系统是怎么达到创纪录的每秒120万帧的训练时间呢?
我们来一探究竟
用Atari游戏测试AI
用电子游戏来做测试,是AI和机器学习研究最好的平台。 它们不仅可以随时拿来进行测试,而且大规模运行成本低。 比如在强化学习等特定领域中,为了获取奖励,AI通过与环境互动来学习最佳行为,游戏分数便是最直接的奖励。
游戏中开发的AI算法已表现出出可适应更实际的用途,例如蛋白质折叠预测研究。如果IBM神经计算机测试结果是重复的,则该系统可以用于加速这些AI算法的开发。 研究人员在神经计算机中每个卡使用了26个节点,对总共416个节点进行了实验。 Atari游戏应用程序的两个实例都是在416个FPGA中每个节点上运行,最多可扩展到832个节点并行运行的实例。 每个实例都从给定的Atari 2600游戏中提取帧,执行图像预处理,通过机器学习模型运行图像,并在游戏中执行操作。
使用深度神经在FPGAs训练游戏的截图
为了获得最高的性能,研究团队避免仿真Atari 2600,而是选择使用FPGA在更高的频率下实现控制台的功能。
他们采用了开源MiSTer项目的框架,该项目旨在使用现代硬件重新创建控制台和街机,并将Atari 2600的处理器时钟频率从3.58 MHz提高到150 MHz,每秒产生约2514帧。 在图像预处理步骤中,IBM的应用程序将帧从彩色转换为灰色,消除了闪烁,将图像重新缩放为较小的分辨率,然后将帧堆叠为四组。 然后将它们传递到推理游戏环境的AI模型和一个子模块,该子模块通过识别AI模型预测的最大奖励来选择下一帧的动作。
在五个实验过程中,IBM研究人员在神经计算机上运行了59个Atari 2600游戏。 结果表明,与其他强化学习技术相比,该方法的数据效率不高,总共需要60亿个游戏框架,但在Montezuma的Revenge and Pitfall等具有挑战性、探索性的游戏中失败了。
在59个游戏中有30场胜出,Deep Q-network花了10天进行训练,而IBM团队只用了6分钟来训练(2亿个训练帧) 在神经计算机上运行的59个Atari 2600游戏有60亿个训练帧,在36场比赛中超过了Deep Q-network,而训练时间减少了2个数量级(2小时30分钟)。
参考链接:
https://venturebeat.com/2020/05/14/ibm-claims-its-neural-computer-achieves-record-ai-model-training-time/https://arxiv.org/pdf/2003.11178.pdfhttps://arxiv.org/pdf/2005.04536.pdf