大数跨境

配合LUT查找表:大模型量化新星 any4 bit深度解析

配合LUT查找表:大模型量化新星 any4 bit深度解析 AI不止算法
2026-03-10
0
导读:在大语言模型轻量化的实际落地中,4bit 量化早已是绕不开的关键技术。
在大语言模型轻量化的实际落地中,4bit 量化早已是绕不开的关键技术。但市面上主流的 INT4、FP4、NF4 更像是标准化批量生产的 “成衣”,用固定数值刻度去适配所有模型,很难贴合每一层权重的真实分布,精度损失也往往难以控制。

今天我们拆解的 any4,正是 Meta FAIR 实验室在 2025 年 ICML 推出的全新方案 —— 它彻底跳出固定格式的桎梏,把量化从 “手工套模板” 变成了 “模型自主学习”,用逐行自适应的高精度查找表,给大模型做一套专属的 “高定量化”。

一、先看实力:any4 凭什么成为 4bit 新标杆

不讲复杂公式,先看落地效果:

精度全面领先:在 Llama 2/3、Mistral、Mixtral 全系列模型上,困惑度显著优于 INT4、FP4、NF4,最接近 FP16 原版表现。

量化速度极快:支持行级并行处理,量化 Llama3-8B 仅需 10 分钟,远快于 GPTQ、AWQ 这类需要逐层修正的方案。
不折腾预处理:完全不需要对权重、激活做额外变换,一键量化即可用,工程成本极低。
  • 校准超级简单:别家量化需要上百条校准数据,any4 只用 1 条覆盖多场景的样本就够
  • 对比维度
    any4
    Int4
    FP4
    NF4
    核心定位
    LLM 专用学习型 4bit 数值表示
    传统均匀整数量化
    极简浮点格式量化
    预设高斯分布浮点量化
    实现方式
    分组缩放 + 逐行加权 K-Means 学习码本 + 4bit 索引 + 逐行 LUT 查表 + 单样本校准
    线性均匀缩放 + 固定整数映射 (-8~7)
    符号位 + 指数位 + 尾数位固定解析
    预定义 16 个高斯拟合值 + 全局固定查表
    量化逻辑
    数据驱动自适应非均匀
    均匀线性
    浮点分段线性
    预设高斯非均匀
    校准成本
    仅需 1 条多样化样本
    无需校准 / 少量样本
    无需校准
    需数据集校准
    精度表现
    最优,大组宽下依然稳定
    一般
    最差
    较好
    推理速度
    快,与 NF4 持平
    最快
    内存开销
    极低,仅增加 0.0625bit/entry
    是否需预处理
    完全不需要
    无需
    无需
    无需


二、通俗看懂 any4:先认识 LUT,再走一遍流程

在讲算法之前,我们先把核心结构说清楚:any4 的核心,就是给权重矩阵的每一行,学一个专属的 16 个浮点数查找表(LUT)。

  • 每个权重最终只存一个 4bit 索引
  • 推理时通过索引去 LUT 里取高精度浮点值
  • 一行权重 = 一组 4bit 索引 + 一个 16 个 FP16/BF16 的 LUT

下面按照下图,step-by-step讲清楚any4全流程。

1. 准备阶段:分组与校准 (1) → (2)


  • 分组缩放

和常规量化的第一步完全一致:将权重矩阵按行划分为若干连续小组(常用 group_size=128),对每组计算缩放因子 α 与偏移量 β,把权重映射到合适的区间。这一步保证所有数值落在可量化范围内,是所有分组量化的标准操作。

  • 激活校准

any4 最省心的地方来了:它只需要一条校准样本。

输入一段覆盖小说、新闻、代码、数学公式的多样化文本,跑一遍前向,记录每个通道的激活值,然后计算:E|x|(激活绝对值的期望)

这个值代表的就是:每个通道对模型输出的 “影响力权重”。影响力越大的通道,量化时会被优先保护。

2. 核心算法:迭代学习最优 LUT (3)


any4 的灵魂,就是用 E 步 + M 步 迭代,为每一行权重学到最精准的 16 个LUT浮点值。

  • E-Step(分配步):给权重找 “邻居”


先固定当前 16 个 LUT 候选值,让每个权重元素找到离自己最近的那一个,完成聚类分配。简单说:每个权重找到自己在 LUT 里的 “代表”。

M-Step(更新步):根据 “分量” 挪位置

它会根据当前聚类结果,重新计算这 16 个 LUT 值

LUT_q = ( Σ( α * w_s * E|x| ) ) / ( Σ( α * E|x| ) )

这里先把符号说清楚,避免看不懂:

  • w_s:缩放后的权重(也就是经过分组缩放、归一化后的权重值)

α:当前权重所在组的缩放因子,负责把量化值映射回原始权重范围

这里是精髓:

  • α 越大 → 原始权重范围越宽 → 一点点量化误差都会被严重放大
  • E|x| 越大 → 这个通道对模型输出影响越大,越需要保住精度

所以算法会天然向这两类权重 “倾斜”,优先保证关键位置的精度,而不是简单平均。反复迭代 E 步 ↔ M 步,直到收敛,就得到了该行的专属高精度 LUT。

3. any4 的两项开销(几乎可以忽略)

any4 为了高精度,只付出了极小的代价:

  • 微量存储开销

每行多存 16 个 FP16/BF16 的 LUT。以一行 4096 列为例:额外开销 = 0.0625 bit / 参数几乎可以忽略不计。

  • 轻微推理开销

因为要查表,原生速度比纯 INT4 略慢一点点。但 Meta 配套的 tinygemm 把 LUT 放进寄存器、用 warp shuffle 加速,让 any4 速度与 NF4 基本持平

三、tinygemm:让 any4 落地更快更稳


光有高精度量化格式还不够,Meta 同步开源了 tinygemm 低延迟矩阵乘库,专门针对 LLM 小批量对话场景优化,这里就不展开细讲了,感兴趣的同学可以去深入了解,概括如下:

  • 寄存器级查表:把 LUT 存入寄存器,用 GPU 原生指令极速解码,避免共享内存冲突。
  • 权重预排布:提前按硬件计算格式排列权重,省去数据中转耗时。
  • 小批量极致优化:在 batch=1~16 的对话场景下,最大化利用 Tensor Core 算力,延迟显著降低。

四、any4适用场景


讲到这大家应该对any4是啥有了比较清楚的认识,那么any4是否就是打遍天下无敌手的万能武器呢?


就我看来,any4 非常适合追求 4bit 轻量化高精度、希望简化工程流程、校准数据有限或主要面向对话类小批量推理的开发者与团队使用,即便将量化组宽扩大至 1024,仍能保持稳定精度;但如果是极致追求推理速度、可牺牲精度,或是运行在不支持浮点与查表操作的低端硬件上,以及不愿编译 CUDA 算子、只想开箱即用的场景,则不太适合选用 any4(如果想用tinygemm加速的话),同时在 2bit/3bit 极限压缩场景下,any 系列也并非最优方案。


五、3 行代码快速上手 any4

Meta 已在 GitHub 完整开源,适配 Hugging Face 生态,上手成本极低:

from transformers import AutoModelForCausalLMfrom quantize import any4# 加载模型model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.2-1B").cuda().bfloat16()# 一键 any4 量化model = any4(model)# 正常生成推理outputs = model.generate(...)

总结

过去的 4bit 量化,始终在精度、速度、工程成本之间做妥协:INT4 快但精度差,FP4 仅停留在实验,NF4 好用但依然是固定模板。

而 any4 用 “学习” 替代 “手工设计”,给出了更均衡的答案:精度最高、速度一流、开销可忽略、使用极简,还不需要复杂预处理。

对于做 LLM 轻量化、推理部署、端侧落地的开发者来说,any4 不只是一款新的 4bit 格式,更是 4bit 量化的下一代思路,也是必须关注的落地技术。

【声明】内容源于网络
0
0
AI不止算法
AI-HPC/AI工程/AI推理加速/AI算子开发的技术分享和入门转行学习的全套解决方案提供
内容 104
粉丝 0
AI不止算法 AI-HPC/AI工程/AI推理加速/AI算子开发的技术分享和入门转行学习的全套解决方案提供
总阅读422
粉丝0
内容104