首页
学习
活动
专区
圈层
工具
发布

推理芯片卷低精度FP4,到底在卷啥?

我现在看推理芯片,一个明显变化是,大家已经从FP8往FP4卷了。训练芯片也会用低精度,但推理卷的商业价值大。前提要说清,不能只问,跑多快?还要问,FP4跑快以后,模型还剩多少原来的能力?

卷到FP4,省了不少东西。但麻烦也很直接,只有4 比特,能表示的数很少。大模型的权重和中间计算结果,数值范围差异很大,有的很小,有的很大。如果全都硬塞进同一套FP4范围,小数直接没了,大数超范围。于是,缩放因子的重要性就突显出来了。

举个栗子。

一组数是:

0.02、0.03、0.04、0.05

另一组是:

2、3、4、5

如果硬用同一套FP4去记,小数那组很容易损失得很厉害。如果分别给它们一个缩放因子,情况就不一样了。

第一组可以记成:

2、3、4、5 × 0.01

第二组可以记成:

2、3、4、5 × 1

现在很多芯片把这个缩放做得越来越细,比如每32个数字共享一个缩放因子。也就是说,不是整个模型只用一把尺子,而是每32个数就重新调整一次数值范围。这样好处大大滴。如果一个组里突地冒出一个大数,它最多影响这一小组,不至于把后面的精度一起拖垮。

当然,缩放因子也不能无限加,也要占空间、占带宽、参与计算。做得太细,FP4省下来的,又还回去。这些被压成FP4的数字;权重是事先就知道的,激活是运行时才产生的。后者通常更难压,芯片得边算边决定怎么缩放。

本质是靠更细的缩放,把模型精度尽量保住,且这套骚操作还不能太贵。这才是现在低精度计算真正的技术门槛。因此我现在判断一颗芯片的FP4能力,不会只看它写没写“支持 FP4”。

这也是为什么英伟达Blackwell、Rubin这一代强调microscaling(微缩放),MXFP4(一种开放标准,32个数+ 1个共享缩放因子),NVFP4(看名字,英伟达自己往前做的工作),这些东西。硬件开始原生理解“小块数据+小块scale”这种新的数字表示方式。最后,要看模型精度和真实token/s到底怎么样,别把模型能力压坏了。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/ObSqBfFXPLLxe3CmQ0m_Dp3w0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

领券