太空飞船轨迹想要更精准?8-Bit实现零损耗

cys 2018-12-28

太空飞船轨迹想要更精准?8-Bit实现零损耗

本文包含了以下重点内容:

• 一种新的8-Bit浮点格式,结合了DNN(深度神经网络)训练的见解,实现了一般矩阵算法(GEMM)在深度学习中模型精度的零损耗。

• 一种叫作“基块计算”的新技术。在分层应用中,仅使用了8-bit乘法和16-bit加法(代替了16-bit和32-bit的独立计算)进行矩阵和卷积计算。

• 在权重更新过程中应用了浮点随机舍入,实现了用16-bit精度进行更新(而不是32-bit)。

• 从综合效果来看,这项技术广泛适用于整套深度学习模型和数据集,同时完全保证精度。

这种方法的根基是近似计算。研究人员尝试在硬件中进行调整,使模型更牢固,同时通过专有架构获得高效收益。

太空飞船轨迹想要更精准?8-Bit实现零损耗

CDC1604是第二代48-bit计算机,用于美国海军导弹自动控制系统,每秒运行可超10万次。但是,如果用CDC1604运行苹果手机,它甚至无法提高自拍像素。因此,掌上机(手机)本有能力运行多个导弹系统,否则这些系统将需要房间大小的处理器。

计算机结构体系最初专门用于串行处理,随后使用DRAMs (动态随机存取存储器)优化高密度存储。但是,芯片表面处理区域价格高昂,且不适宜大量增加内存容量。神经网络存储器,必须存储输入数据、激活参数和权重参数等信息。

在一篇题为“使用8-bit浮点数训练深度神经网络算法”的论文中,作者Naigang Wang, Jungwook Choi, Daniel Brand, Chia-Yu Chen以及Kailash Gopalakrishnan,均来自IBM沃森研究中心。他们介绍了能使用8-bit浮动数(FP8)成功训练DNN(深度神经网络)并能同时保证精度的一项新技术。

这项突破的研究人员表示:“以往来说,高性能计算依赖于高精度的64-bit和32-bit浮点运算。但这种新方法保证了准确性,对一些科学任务的计算至关重要,比如模拟人类心脏,计算太空飞船轨迹等”。

但是,对于图像分类、语音识别等一类任务,近似计算比64-bit或32-bit提供的高精度计算更重要。

浮点的限制越低,驱动器也随之越小。比如,16-bit精度驱动器通常比32-bit高精度同类块小4倍。这种区域效率的提高直接有利于AI培训效果和工作负载性能的显著提升。

因此,高精度可以增强计算能力。在本文中,研究人员展示了全新的训练技术,并且最终将压缩方法加速了40-200倍。

早在2015年,IBM研究就已经展示了如何在32-bit到16-bit的推理过程中完全保证模型精度。

现在,16-bit训练和8-bit推理系统已经作为一项标准灌输至行业中。尽管有关8-bit和4-bit的精度推理工作还在进行,但最终也将成为行业标准。

与16-bit训练网络相关的主要挑战有:

• 在反向传播期间,是否该保持梯度计算和权重更新的保真度。

• 当矩阵乘法中的权重、误差和梯度降低到8-bit时,深度神经网络会遭受影响,最终精度明显下降。

• 此外,网络训练对算法收敛性有显著影响。

• 如今使用的32-bit权重更新系统,需要存储高精度权重和梯度的额外副本,价格高昂。

如何解决8-Bit浮点问题:

有一种新技术叫作“基块计算”,应用于卷积计算的时候,这种技术允许用8

-bit乘法和16-bit加法,去代替16-bit和32-bit的独立计算。并且,在权重更新中,浮点可随机舍入。

在“基块计算”中,累积计算被分解成块,由各深度学习点产品构成。研究人员已经做过测试,采用尺寸14nm的芯片检验这种技术,并用于训练ResNet50模型。结果表明,基块计算驱动器可以和降低精度的数据流驱动器一起使用,并且不会增加硬件开销。

作为基线,32-bit浮点的累积量会随向量长度呈线性增加趋势。在最接近舍入值的时候(比如:块=1),典型的16-bit浮点累积量将会面临极大的误差。(当长度 ≥ 4096时,累积停滞)。

这时,可以使用基块累积计算来填补误差,因为积累量的有效长度被“块”的大小所削减,以免被淹没。随机舍入的有效性如下:尽管由于舍入误差导致了在总体积累长度中存在轻微偏差,但是随机舍入值会遵循32-bit浮点结果。

这一成功实践为硬件培训平台进入新时代铺平了道路,该平台的性能是当前系统的两倍。

太空飞船轨迹想要更精准?8-Bit实现零损耗

编译组:姚宇歌、胡婷

相关链接:

https://www.analyticsindiamag.com/ibm-8-bit-ai-breakthrough-to-supercharge-computational-efficiency/

如需转载,请后台留言,遵守转载规范

相关推荐