使用 8 位浮点数进行大型语言模型的训练和推理
我们探索了 FP8 低位数据格式以实现大规模语言模型(LLM)的高效训练。我们提出了一种新的 FP8 自动混合精度框架,可以在递增的方式下渐进地应用 8 位梯度、优化器状态和分布式学习。实验证明,在 H100 GPU 平台上使用我们的 FP8 混合精度训练框架,与广泛采用的 BF16 框架相比,GPT-175B 模型的训练不仅可以实现 42% 的实际内存使用降低,而且运行速度比 Nvidia Transformer Engine 快 64%,超过其 17%。此外,我们的 FP8 混合精度训练方法具有通用性,可以无缝应用于 LLM 指导调优、带有人类反馈的强化学习等任务,节省了微调开销。
Oct, 2023
本研究深入探究了采用浮点数格式(FP8)进行神经网络量化的性能优势,分析了尾数和指数位数选择对性能的影响,并通过大量实验证明,相对于 INT8 格式,FP8 格式具有更高的精度和更优的性能。
Aug, 2022
该研究探讨了使用低精度浮点数表示法(例如 8 位浮点数格式)对深度学习模型进行训练和推理的影响,结果表明合适的低精度格式选择可加快训练和降低功耗,而不会降低准确性。
Jun, 2022
探讨了在联邦学习环境中使用 8 位浮点数(FP8)进行训练的方法,该方法不仅可以有效地训练神经网络并减少计算开销,还能通过显著的权重压缩来减少客户端和服务器之间的通信成本。实验结果表明,与 FP32 基准相比,在各种任务和模型上,我们的方法始终能够至少将通信开销降低 2.9 倍。
Jul, 2024
本文通过对 GLUE 和 SQuAD v1.1 数据集上的 BERT 变种进行大量实验,验证了 FP8 作为一种进行后训练量化的有效方式,能够在不显著损失精度的情况下提高准确性。
Dec, 2023
最近在深度学习方法中,如 LLMs 和 Diffusion 模型的最新进展已经带来了对改进量化方法的需求,以满足这些现代架构的计算需求,并保持精确性。为了实现这一目标,我们研究了在 75 种不同的网络架构中跨越各种任务(包括机器翻译、语言建模、文本生成、图像分类、生成和分割)的后训练量化中 FP8 数据格式的优势。我们研究了三种不同的 FP8 表示(E5M2、E4M3 和 E3M4),以研究动态范围和精度之间不同权衡程度对模型准确性的影响。基于我们广泛的研究,我们开发了一个横跨不同网络架构的量化工作流程。我们的实证结果显示,FP8 格式在多个方面(包括工作负载覆盖率 92.64% 对 65.87%、模型准确度和适用于更广泛的操作范围)优于 INT8。此外,我们的研究结果表明,E4M3 更适用于自然语言处理模型,而对于计算机视觉任务,E3M4 稍微优于 E4M3。代码公开可用于 Intel Neural Compressor: this https URL。
Sep, 2023
使用浮点量化在大型语言模型中表现出色,尤其是 FP8 和 FP4 的浮点数,在模型参数超过十亿时性能优势更加明显。对于权重量化来说,FP4 与 INT4 相比表现出可比、甚至更好的性能,简化了在支持 FP 的硬件上部署。对于通过权重和激活之间差异引起的精度对齐开销,我们提出了两个权重量化的缩放约束条件,对性能的影响微乎其微,与标准的 W4A8 模型相比。此外,我们还结合了低秩补偿(LoRC)策略来增强量化方法,特别适用于较小的模型。研究结果强调了浮点量化在大型语言模型中的巨大潜力,为资源受限环境中的高效部署铺平了道路。
Jul, 2023
本研究提出了一种新的方法 (S2FP8) ,使用 8 位浮点(FP8)数来训练深度神经网络,可以在训练时实现更大的有效内存和增加计算速度,并且在 ResNet-50、Transformer 和 NCF 等模型中表现良好,无需微调损失缩放参数或使某些层在单精度中运行;同时,引入了一些可学习的 DNN 张量统计上的偏移和挤压参数,以优化 8 位张量的使用范围,从而减少量化带来的信息损失。
Jan, 2020
本文介绍了一个使用 8 位浮点表示法训练深度神经网络的方法,减少计算精度和主权重复制的精度要求,并且通过强化误差传播和降低量化噪声的方法来提高模型性能。实验表明,所提出方法在多个数据集和不同工作负载下与精度基线相比不降反升。
May, 2019
本文介绍了使用较低的精度来训练深度神经网络的成功实践,通过引入基于块的操作和浮点随机取整等技术,成功地实现了在 8 位浮点数下对多种深度学习模型和数据集进行了精确的训练。这些新技术为新一代硬件训练平台奠定了基础,并具有提高 2-4 倍吞吐量的潜力。
Dec, 2018