量子位 02月01日
大模型训练开销还能更小!微软推出首个FP4训练框架,训练效果与BF16相当
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

微软研究院发布了首个FP4精度的大模型训练框架,该框架在相同超参数下,可达到与FP8和BF16相当的训练效果,同时显著减少存储和计算资源需求。该框架支持高达130亿参数的模型训练,训练tokens数量达千亿级别。通过在FP8 TensorCore上模拟FP4实现,并采用定制化的CUDA内核,实现了高效的矩阵乘法。此外,该框架还采用了多种优化策略,如分层量化、可微分梯度估计和离群点削峰补偿,以及混合精度设计,以保证训练的稳定性和效率。该研究由中科大博士生一作,微软亚洲研究院和SIGMA团队合作完成。

🚀首个FP4精度框架: 微软研究院发布首个FP4精度的大模型训练框架,在同等超参数下,训练效果媲美FP8及BF16,大幅降低资源消耗。

🧮定制化CUDA内核: 通过定制化的FP4矩阵乘法CUDA内核,实现了高效的FP4精度训练,包括FP16读入、FP4计算和FP16输出。

📊量化与优化策略: 采用E2M1的FP4格式,对权重矩阵和激活矩阵进行不同粒度的量化,并提出了可微分梯度估计和离群点削峰补偿策略。

⚙️混合精度设计: 在梯度通信、优化器状态存储等环节采用混合精度设计,确保训练稳定性的同时,降低计算和存储开销。

关注前沿科技 2025-01-30 12:21 内蒙古

中科大博士生一作

克雷西 发自 凹非寺
量子位 | 公众号 QbitAI

首个FP4精度的大模型训练框架来了,来自微软研究院!

在相同超参数的设置下,可以达到与FP8以及BF16相当的训练效果

这意味着所需的存储和计算资源可以更少

用这种方法训练的模型规模最高可达130亿参数规模,训练Tokens数量也达到千亿级别。

而且用的还不是真·FP4,而是通过FP8来模拟,如果采用真的FP4,效果还能进一步提升。

(注:研究开展时,尚未有原生支持FP4的硬件,故作者通过在FP8的TensorCore上模拟实现)

网友评论说,效率更高质量却没什么损失,FP4真的是个game changer。

还有人说,如果这一发现广为人知,恐怕老黄的股价又要跌了。

当然,因低训练成本而成为当红明星的DeepSeek也被网友cue了一下:

在FP8 TensorCore上模拟FP4

如开头所述,在相同超参数的设置下,作者的方法可以达到与BF16的训练效果。

具体来说,在1.3B、7B和13B的LLaMA模型上,从0到1千万Tokens的训练过程中,作者的FP4训练与BF16的损失曲线基本一致。

在下游任务上,表现同样也和BF16相当。

为了实现FP4精度训练,研究团队采用了定制化的FP4矩阵乘法(GeMM)CUDA内核

在内核中,作者先用FP16将FP4的A和B矩阵读入共享内存并做相应变换,然后用FP4完成分块矩阵乘法,最后再用FP16对中间结果进行归约,得到FP16格式的输出矩阵。

首先需要确定量化的数据格式,该框架采用了E2M1的FP4格式,即用2位来表示指数,1位表示尾数,外加1位符号位,总共4位。

选择这个格式是为了契合当前主流ML加速芯片的量化计算单元设计。

并且,这个框架对权重矩阵W和激活矩阵A采取了不同粒度的量化策略

对W做的是列方向(channel-wise)的量化,而对A做的是行方向(token-wise)的量化。

这种量化粒度是与GeMM在硬件上的并行实现方式相契合的,可以在不引入额外矩阵转置操作的前提下,最大化发挥FP4在矩阵乘法上的加速效果。

在模型前向传播开始时,框架对每一个线性层的权重矩阵W和输入激活矩阵A同时进行FP4量化

量化时,先对矩阵中的数值进行缩放和偏移,将其映射到FP4所能表示的范围内,然后通过查表的方式将其四舍五入到最近的FP4离散值。

由于不同层的数值范围差异很大,所以需要对每一层的权重矩阵和激活矩阵分别确定一个独立的量化范围,即进行逐层的量化参数校准

这个框架采用的是scale+shift的校准方法,即先用一个缩放因子将数值从原始范围映射到[-1,1],再用一个偏移因子把[-1,1]平移到FP4所能表示的范围。

在反向传播过程中,如果直接对量化后的矩阵求导,则权重矩阵的梯度几乎处处为0,从而无法进行参数更新。

为此,作者提出了一种新颖的可微分梯度估计方法

它在前向计算时仍然使用硬量化,以保证计算效率,但在反向传播时,用一个连续可微的函数来重新拟合这个量化函数,并求导得到一个对梯度的修正项。

另外在训练过程中,模型的隐层激活分布通常呈现出明显的长尾特征,少数维度上的数值明显偏大,导致出现“离群点”(outlier)

针对这个问题,作者提出了一种“离群点削峰和补偿”的策略。

具体来说,先在激活矩阵A中,通过分位数检索的方法找出那些幅值最大的离群点,将它们限幅到某一个预设的阈值范围内,得到削峰后的矩阵A_clamped。

然后,再基于原矩阵A和削峰后的A_clamped,构造出一个稀疏补偿矩阵∆A,其中只有那些被削峰的位置是非零的。

此外在部分环节当中,作者还采用了混合精度设计。

比如在梯度通信时采用了FP8,在优化器状态(如动量)的存储时选择了FP16。在系统的其他部分,如非矩阵乘操作的计算、Loss Scaling等,也都采用了FP16。

通过这些混合精度的设计,在保证训练数值稳定性的前提下,尽可能地降低了计算和存储开销。

中科大博士生一作

这个框架由微软亚洲研究院和SIGMA团队打造,所有研究人员都是华人。

第一作者Ruizhe Wang是中科大在读博士生,目前在MSRA实习,研究方向就包括低精度量化。

中科大科研部部长、类脑智能国家工程实验室执行主任、博士生导师查正军教授也参与了这一项目。

通讯作者为MSRA高级首席研究经理(Senior Principal Research Manager)程鹏和首席研究经理(Principal Research Manager)Yeyun Gong

程鹏曾先后就读于北航和清华,在清华读博期间还到UCLA访问学习;Yeyun Gong则是复旦博士,毕业后即加入微软。

MSRA杰出科学家、常务副院长郭百宁也参与了本项目,他先后就读于北大和康奈尔大学,1999年就已加入微软。

此外还有其他作者,完整名单如下:

论文地址:
https://arxiv.org/abs/2501.17116
参考链接:
https://x.com/arankomatsuzaki/status/1884446877837582598

量子位智库年终发布三大年度报告

带你一起回顾2024年人工智能智能驾驶Robotaxi新趋势,预见2025年科技行业新机遇

2024年度AI十大趋势报告

Robotaxi2024年度格局报告

智能驾驶2024年度报告


一键关注 ? 点亮星标

科技前沿进展每日见


一键三连「点赞」「转发」「小心心」

欢迎在评论区留下你的想法!

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

FP4精度 大模型训练 微软研究院 低精度量化 深度学习
相关文章