IBM最近发表了两篇论文,描述了其降低精度的方法,这些方法旨在提高AI处理效率,同时保留预期的准确性。基本上,在NVIDIA和Google的带领下,人工智能研究在过去4-5年中一直在利用降低的精度数字和数学运算。如果“降低精度”听起来好像不是什么好事,但是我们要记住,更高的精度会带来巨大的成本,使用数字的位长的平方也会增加。因此,从32位到16位成本降低了4倍。
Google最近提出了一种新的16位格式,称为Bfloat,该格式使用的位数更多,指数尾数更少。高于IEEE 16位浮点标准。与传统的32位格式相比,这可以在保留精度的同时使用更少的功率和芯片空间。英特尔就是其中之一。但是,研究人员在努力争取8位浮点数下保持准确性。
IBM本周提出了一种“混合8位浮点数”格式,该格式可以提高性能或将成本降低多达4倍。就是说,如果有人(IBM?)生产出可以执行这些计算进行训练的芯片,则该芯片将使用已经“量化”为那些8位格式的DNN。这些操作的“混合”性质来自于前向和后向传播计算所需的不同精度要求。通过将用于指数和尾数的位数调整为向前和向后传递计算,IBM证明了确实可以仅使用8位权重和激活来训练用于视觉、语音和语言处理的神经网络。此外,这些较小的数字可以更有效地在芯片上进行通信,从而将训练时间进一步减少了30-60%。
如果所有这些数学运算听起来很复杂,但其带来的好处非常简单。从理论上讲,这种方法可以让人打造用于训练深度神经网络的芯片,芯片面积仅为原来的四分之一,或者以相同的成本实现4倍的性能提升。
在AI的推理方面,出于相同的原因,芯片公司和模型开发人员正在转向8位。但是,有人还能降得更低吗?迄今为止,使用较低精度的努力未能达到8位模型提供的精度。但是,IBM最近发表了一篇论文,该论文提议使用称为参数化限幅激活(PACT)和统计感知权重合并(SAWB)的两种技术,当结合使用时,它们已经演示了2位推理处理,可实现与8位相当的准确性。