作者:Neil Burgess 、Sangwon Ha 2022年9月14日
实现安全和无处不在的人工智能(AI)是Arm体系结构的关键优先事项。人工智能和机器学习(ML)的潜力是显而易见的,新的用例和好处几乎每天都在出现-但与此同时,人工智能的计算需求一直在以指数级增长,需要新的硬件和软件创新,以继续平衡内存、计算效率和带宽。神经网络(NNs)的训练对于人工智能能力的持续发展至关重要,今天,Arm、Intel和NVIDIA联合发布了一份关于新的8位浮点规范“FP8”的白皮书,这标志着这一发展迈出了激动人心的一步。
FP8是一种交换格式,允许软件生态系统轻松共享NN模型,Arm、Intel和NVIDIA之间的合作支持这一标准意义重大。这意味着在一个平台上开发的模型可以在其他平台上运行,而不会遇到必须在格式之间转换大量模型数据的开销,同时将任务损失降至最低。FP8最大限度地减少了与现有IEEE浮点格式的偏差,允许开发人员利用现有实现,加快跨平台采用,提高生产力。
曾经采用低精度浮点格式带来了许多好处。直到几年前,神经网络的训练大多是用IEEE标准的32位浮点数字计算的。发现具有越来越多层的更大网络在NN任务中越来越成功,但在某些应用中,这种成功伴随着最终无法管理的内存占用、功耗和计算资源的增加。必须将数据元素(激活、权重、梯度)的大小从32位减少到16位,因此业界开始使用16位格式,如Bfloat16和IEEE FP16。随着需要更高精度的各种应用程序数量的增加,神经网络再次面临内存占用、功耗和计算资源方面的挑战。因此,目前对新颖简单的8位浮点表示(与Bfloat和IEEE FP32一起)的需求不断增长,以实现更高的神经网络效率。
大量实验表明,FP8在基于Transformer的人工智能模型以及基于计算机视觉和生成式对抗网络(GAN)的模型中显示了与使用16位和32位精度相当的模型性能。虽然FP8由于只有少量指数位而具有有限的动态范围,但这可以通过软件专有的per-tensor因子来补偿,该因子调整可表示范围,以便更好地匹配正在处理的值(权重、激活、梯度等),而不是仅依赖FP8格式。此外,模型可以在FP8的相同格式下进行训练和部署,而固定点格式,尤其是int8,需要在部署阶段基于统计数据仔细推导估计,以保持准确性,更不用说校准和转换开销。
在Arm,我们计划在2023年将FP8支持添加到Armv9 ISA,作为Armv9.5-A的一部分,并探索在所有ML平台上集成此支持的最佳方式。我们坚信,围绕一种8位浮点格式整合行业的好处,使开发人员能够专注于真正重要的创新和差异化。我们很高兴看到FP8在未来如何推进人工智能发展。
在以下这篇新的技术论文中可以找到有关FP8的更多信息: