SINQ
华为诺亚方舟实验室ICML 2026接收:免校准双尺度量化,让超大模型在小显存GPU上流畅运行
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
华为诺亚方舟实验室ICML 2026接收:免校准双尺度量化,让超大模型在小显存GPU上流畅运行
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你手里有一张 24GB 显存的 RTX 4090,想跑一个 70B 参数的大模型。按照传统方式,这几乎是不可能的任务——70B 模型在 FP16 下需要约 140GB 显存,整整超出 5 倍。但现在,有一群来自华为诺亚方舟实验室的科研人员告诉你:只需要几行代码,就能把这个庞然大物压缩到原来体积的 1/4,精度损失还不到 1%。 这不是天方夜谭,这是 SINQ——ICML 2026 接收的最新量化研究成果。
大语言模型(LLM)正在深刻改变 AI 行业的游戏规则,但它们对算力和显存的极高需求也成了普及化的最大障碍。以 DeepSeekV2.5-236B 为例,这个拥有 2360 亿参数的超大模型,在 FP16 精度下需要约 472GB 显存——这不是普通开发者能承受的成本。
业界已有的量化方案各有各的局限:
SINQ 的出现,正是为了解决这些痛点。
SINQ 的核心创新在于两个技术突破:双尺度量化(Dual-Scale Quantization) 和 Sinkhorn 归一化优化(Sinkhorn-Normalized Optimization)。
传统权重量化采用"单尺度"策略:为每个权重维度分配一个缩放因子(scale)。这种方法的致命弱点在于异常值(outliers):大权重的存在会扭曲整体缩放比例,导致量化误差急剧增大。以 3-bit 精度为例,异常值周围的数据点被迫挤在极少数量化等级上,信息损失严重。

图1:单尺度 vs 双尺度量化示意。 SINQ 引入行列双缩放因子,将异常值的影响分散到两个维度上,避免单一维度上的极端压缩。
SINQ 的双尺度量化将传统公式 W = Q * scale_row 扩展为 W = Q * scale_row * scale_col。其中:
这两个尺度相互配合,把原本集中在少数权重上的压力分散到整个权重矩阵中。row_scale 处理列方向(per-group),col_scale 处理行方向(per-output channel),形成了一个"双向调节"机制。
双尺度只是开始,如何高效地找到最优的 col_scale 才是关键。SINQ 引入了 Sinkhorn 归一化的数学框架——这原本是运筹学中用于矩阵行、列归一化的经典算法(如 Sinkhorn-Knopp 算法)。通过 Sinkhorn 迭代,col_scale 可以被高效地计算出来:
这一过程将权重矩阵的"不平衡度(matrix imbalance)"降到最低,而不平衡度越低,量化误差越小——这正是 SINQ 在极低比特(如 3-bit)下仍能保持高精度的数学本质。
与 AWQ/GPTQ 需要校准数据集不同,SINQ 完全免校准(calibration-free),这意味着:
这使得 SINQ 在部署便捷性上远超前代方案。
对于对精度有极致要求的场景,SINQ 还提供了校准版本——A-SINQ(Augmented-SINQ)。在需要校准时,A-SINQ 可以:
| 特性 | SINQ | HQQ | A-SINQ | AWQ |
|---|---|---|---|---|
| 校准方式 | 免校准 | 免校准 | 校准 | 校准 |
| 量化速度 | ~2× 快于 HQQ | 较慢 | ~4× 快于 AWQ | 较慢 |
| 模型质量 | 更高 | 较低 | 最高 | 较低 |
| NF4 支持 | ✅ | ❌ | ✅ | ❌ |
SINQ 不仅是一个量化算法库,更构建了完整的预量化模型生态。
SINQ 已在 2026 年 2 月正式集成到 Hugging Face Transformers 中,使用方式极为简洁:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, SinqConfig
model_name = "Qwen/Qwen3-1.7B"
quant_cfg = SinqConfig(nbits=4, group_size=64)
model = AutoModelForCausalLM.from_pretrained(
model_name,
quantization_config=quant_cfg,
dtype=torch.bfloat16,
)
一行配置,即可自动完成量化推理。这要归功于 SinqConfig 与 HF AutoModelForCausalLM() 的深度集成。

图2:预量化 SINQ 模型示例(来源:项目 README)。 Hugging Face 上已上线多个预量化 GGUF 模型,可直接下载使用。
传统的 GGUF 量化虽然压缩率高,但缺乏 SINQ 的双尺度归一化优势。SINQ 团队创新性地提出了 Pre-SINQ——在 GGUF 量化之前先用 SINQ 的 Sinkhorn 归一化预处理权重矩阵,再做 GGUF 量化。这种组合方案兼顾了两者的优势,是当前精度与压缩率最佳平衡点之一。
| 模型 | 量化方式 | 原始显存 | 量化后显存 | WikiText2 PPL |
|---|---|---|---|---|
| Qwen3-14B | SINQ 4-bit | ~28GB | ~7GB | < 12 |
| DeepSeekV2.5-236B | SINQ 4-bit | ~472GB | ~110GB | < 8 |
| Qwen3-14B | A-SINQ 4-bit | ~28GB | ~7GB | 更低 |
量化速度方面:Qwen3-14B 约 21 秒,DeepSeekV2.5-236B 约 5 分钟(单卡),远超 AWQ/GPTQ 的同类速度。
SINQ 的代码库设计清晰,主要模块如下:
| 模块 | 职责 | 关键文件 |
|---|---|---|
| sinqlinear.py | 量化线性层封装 | 支持 GemLite / PyTorch 双后端 |
| quantizer.py | 量化器实现 | NF4/NF3 codebook、RTN8 量化 |
| optimize.py | Sinkhorn 迭代优化 | 峰度计算、近端算子 |
| bitpack.py | 位打包工具 | 4-bit 权重压缩与解包 |
| patch_model.py | 模型打补丁 | Hugging Face 模型一键量化 |
SINQ 实现了 GemLite(CUDA 优化) 和 PyTorch(通用) 两种推理后端:
gemlite==0.5.1.post1。torch.compile。自动选择逻辑由 can_use_gemlite 函数控制:满足 GemLite 条件(4-bit、1D tiling、层维度 ≥16)且 gemlite 已安装时自动启用。
transformers>=5.2.0 # HF 生态
torch>=2.1 # 深度学习框架
einops>=0.8.1 # 张量重塑
gemlite==0.5.1.post1 # CUDA 推理加速(可选)
lm_eval>=0.4.11 # 模型评估
没有任何技术是完美的,SINQ 也不例外:
out_features >= 16 且 in_features >= 16,某些特殊层可能被跳过。对于此类层,PyTorch 后端可作为备选。SINQ 被 ICML 2026 接收,说明其学术价值和技术创新获得了顶级 AI 会议的认可。但更值得关注的是它的工程价值:
随着越来越多预量化模型上线,以及 Pre-SINQ + GGUF 的生态完善,SINQ 的影响力有望从学术圈扩展到整个 AI 产业。
项目链接:huawei-csl/SINQ | arXiv 论文 | HuggingFace 模型