Zing 论坛

正文

Lance-Quant:字节跳动Lance多模态模型的4-bit量化工具包

针对字节跳动Lance多模态大模型的定制化4-bit量化方案,支持AWQ INT4和NVFP4两种格式,通过任务感知校准实现高质量压缩,可将24.7GB模型压缩至4.3GB。

quantizationAWQINT4NVFP4multimodalLanceByteDanceLLMmodel compressionMoE
发布时间 2026/05/21 07:13最近活动 2026/05/21 07:21预计阅读 4 分钟
Lance-Quant:字节跳动Lance多模态模型的4-bit量化工具包
1

章节 01

导读 / 主楼:Lance-Quant:字节跳动Lance多模态模型的4-bit量化工具包

针对字节跳动Lance多模态大模型的定制化4-bit量化方案,支持AWQ INT4和NVFP4两种格式,通过任务感知校准实现高质量压缩,可将24.7GB模型压缩至4.3GB。

2

章节 02

项目背景:为什么Lance需要特殊量化?

Lance采用了独特的架构设计——基于修改后的Qwen2.5-VL,在每一层Transformer上引入了并行的_moe_gen专家模块,实现了"任务混合(Mixture-of-Tasks)"路由机制:理解token通过一个专家流动,生成token通过另一个专家流动。

这种架构带来了量化挑战:

  1. 架构特殊性:标准的AWQ、AutoAWQ等量化工具无法识别Lance的自定义PreTrainedModel架构
  2. 路由复杂性:简单的x2t(图像到文本)校准会遗漏_moe_gen权重,导致量化后的生成路径质量严重下降
  3. 运行时兼容性:vLLM、TensorRT-LLM等推理引擎尚未支持Lance架构

lance-quant通过手工实现的校准、打包和运行时替换方案,解决了上述所有问题。

3

章节 03

校准阶段:任务感知的数据收集

与标准AWQ不同,lance-quant采用双任务校准策略

脚本 功能
awq_calibrate_single.py 在单个任务上运行Lance推理,对504个目标Linear层(q/k/v/o_projmlp.{gate,up,down}_proj及每个_moe_gen兄弟层)植入激活钩子,保存每通道的平均绝对激活幅度
awq_merge_stats.py 合并多个任务的统计信息为单一校准集

关键洞察:纯x2t校准会让_moe_gen权重没有激活数据,AWQ回退到简单的min-max量化,这正是产生"胡言乱语"输出的根源。通过添加t2i(文本到图像)路由,激活数据流经生成路径,使AWQ能够为这些层计算合适的缩放因子。

4

章节 04

量化应用:网格搜索与分组策略

脚本 输出格式 说明
awq_apply.py INT4 对归一化+消费线性层进行网格搜索AWQ缩放均衡化,将缩放因子融合到前序RMSNorm,按组打包权重到INT4
nvfp4_apply.py NVFP4 相同校准数据,但打包为NVFP4格式(E2M1编码+FP8 E4M3每16元素块缩放),适用于Blackwell张量核心
5

章节 05

运行时替换与内存优化

脚本/模块 功能
run_baseline.py bf16基线推理,带内存优化加载器(元初始化+流式bf16转换),使12.3GB bf16模型能在16GB GPU上运行
run_quant_eval.py 将Linear层替换为WQLinearINT4/WQLinearNVFP4并运行对比评估
quantized_linear.py 纯PyTorch实现的参考模块,支持按需反量化,用于正确性验证
comfyui/ ComfyUI自定义节点包,自动检测Lance源
6

章节 06

完整多模态版本(推荐用于生产)

保留Lance的MoE路由,支持图像/视频生成+理解:

变体 原始大小 量化后 压缩率
Lance-3B-AWQ-INT4 24.7 GB 4.31 GB 5.7x
Lance-3B-Video-AWQ-INT4 28.4 GB 6.15 GB 4.6x
Lance-3B-NVFP4 (Blackwell) 24.7 GB 5.09 GB 4.9x
Lance-3B-Video-NVFP4 28.4 GB 6.93 GB 4.1x
7

章节 07

Apple Silicon专用版本(仅理解路径)

提取标准Qwen2架构的理解路径,用于Apple Silicon/iOS部署:

变体 大小 说明
Lance-3B-und-MLX-4bit-DWQ 1.6 GB 推荐(蒸馏缩放)
Lance-3B-und-MLX-4bit 1.6 GB 纯后训练量化
Lance-3B-und-MLX-NVFP4 1.6 GB 未来ANE加速
Lance-3B-und-CoreML-palettized 6.2 GB fp16 iOS/ANE流水线
8

章节 08

v2改进:group_size 64解决长文本漂移

v1版本使用group_size=128,在6样本x2t图像基准上仅达到33%精确匹配。一个典型案例显示经典AWQ长文本退化:模型在"1998年推广活动花费"问题中,错误地插入了虚构实体("Scott Levin及其家人")。

v2重新量化采用group_size=64

  • 相同校准数据,相同配方,仅更细的粒度
  • 质量跃升至50%精确匹配
  • 案例4与基线完全一致:"根据市场研究数据,1998年推广会议和活动的总花费约为13亿美元"

修复原理:o_projdown_proj不能将AWQ缩放融合到前序norm(后非线性),它们获得纯逐组量化。更小的组=更少的异常值竞争相同缩放=更低的每通道量化噪声。