IBM的8位浮点精度深度神经网络模型解析
扫描二维码
随时随地手机看文章
在12月初举办的NeurIPS会议上,IBM展示了一款新型人工智能芯片。
IBM的研究人员声称,他们已开发出一个更加高效的模型用于处理神经网络,该模型只需使用8位浮点精度进行训练,推理(inferencing)时更是仅需4位浮点精度。该研究的成果已于2018年12月初在国际电子元件会议(International Electron Devices MeeTIng,IEDM)和神经信息处理系统大会(Conference on NeuralInformaTIon Processing Systems,NeurIPS)上发布。
简而言之,IBM展示了专用于减少精度处理单元的定制硬件,以及能够利用该硬件进行深度神经网络(DNN)训练和推理的新算法。其主要目标在于提高硬件的能效,使其可以应用于范围更广泛的人工智能解决方案。
下一代人工智能应用程序需要更快的响应时间、更大的人工智能工作负载以及来自众多数据流的多模式数据。为了释放人工智能的全部潜能,我们重新设计了将人工智能考虑在内的硬件:从加速器到用于人工智能工作负载的特定用途硬件(例如我们的新芯片),以及最终用于人工智能的量子计算技术。使用新的硬件解决方案扩展人工智能是IBM研究院(IBM Research)更广泛努力的一部分,以期从范围狭窄的人工智能(通常用于处理具体的、界限清楚的任务)转向范围广泛的人工智能(跨越各个学科,可帮助人类解决最迫切的问题)。
具体而言,IBM研究院提出了可提供8位浮点(FP8)精度用于训练神经网络的硬件。8位浮点精度是16位浮点精度(FP16)的一半,而16位浮点精度自2015年以来一直是深度神经网络工作的事实标准。(提议的硬件将依靠FP16来累积点积,而不是现在使用的FP32。)借助于稍后介绍的新算法技术,IBM的研究人员表示,他们可以跨各种深度学习模型保持精确度。事实上,他们记录在案了使用FP8精度基于图像、语音和文本数据集对深度神经网络所进行的训练,并实现了与基于FP32的训练相当的模型精确度。
降低精度的模型基于三项软件创新:一种新的FP8格式,让用于深度神经网络训练的矩阵乘法和卷积计算可在不损失精确度的情况下工作;一种“基于组块的计算”技术,使得只需使用FP8乘法和FP16加法即可处理神经网络成为现实;并且在加权更新过程中使用浮点随机舍入,允许以16位浮点精度(而不是32位浮点精度)计算这些更新。
IBM展示的硬件是一款基于“新式数据流核心”的14纳米处理器。该处理器由降低精度的数据流引擎、16位浮点精度组块加法引擎和核心上内存及内存访问引擎组成。研究人员声称,与现在的平台相比,这种设计有可能使训练速度提高2到4倍。其中部分改进是用于训练模型的位宽减少了2倍的结果,但其余改进则是因为用于利用降低的精度的软件技术。
也许更重要的是,IBM研究院表示,由于其FP8/FP16模型相较标准FP16/FP32模型而言所需的内存带宽和存储空间更少,并且因为其硬件是为处理这些神经网络而定制的,能效可提高2-4倍以上。研究人员表示,这将使深度神经网络模型能够在一些边缘设备上进行训练,而不仅仅是在数据中心服务器上进行训练。
研究人员还发表了一篇关于在多个深度学习应用程序中使用4位浮点精度推理,而同样不损失精确度的论文(目前,大部分推理基于使用8位浮点精度或更多位浮点精度的计算)。此处的意义在于,位宽的减小将再次提高吞吐量和能效。对降低精度的需求也使得基于在训练期间优化的位精度构建用于训练和推理的统一架构更加自然。根据研究人员的说法,由于减少了专用于计算的处理器面积并拥有在内存中保留模型和激活数据的能力,此类硬件可以带来推理性能的超线性提升。
相关研究领域需要与将这种降低精度的模型应用于模拟芯片相关,模拟芯片天生不如数字芯片精确,但能效却高得多。IBM的研究人员开发了一种使用相变存储器(PCM)的8位浮点精度模拟加速器,它可以充当用于处理神经网络的计算基板和存储介质。根据2018年早些时候发布的工作成果,IBM研究院已经实施了该技术的创新加成,称为预测PCM(Projected PCM,Proj-PCM),它可以减少PCM硬件的一些令人烦恼的不精确性。研究团队认为,该设计可为物联网(IoT)和边缘设备等功率受限环境中的人工智能训练和推理提供高性能水平。
尽管所有这些仍处于研究阶段,但IBM显然对构建自己的人工智能芯片和加速器并将其交付到客户手中感兴趣。他们计划如何将该技术商业化仍然有待观察。无论如何,如果降低精度的训练和推理流行起来,IBM将面临很多竞争。这些竞争不仅仅来自将相应调整自己的处理器平台的英特尔和英伟达等行业巨头,它们还来自似乎每天都在涌现的人工智能芯片初创公司。在一个如此飞速变化的环境中,成功将青睐于最灵活变通的参与者。