跳转至

DP-LLM: Runtime Model Adaptation with Dynamic Layer-wise Precision Assignment

会议: NeurIPS 2025
arXiv: 2508.06041
代码: github.com/SNU-ARC/DP-LLM
领域: 模型压缩 / 量化
关键词: 动态混合精度, 运行时适配, 层级量化敏感度, 端侧LLM推理, 相对误差

一句话总结

DP-LLM 发现每层的量化敏感度在解码步间动态变化,提出基于 relative error 的动态逐层精度选择机制,在运行时根据输入为每层分配精度(h-bit 或 l-bit),实现了优于静态混合精度的性能-延迟权衡。

研究背景与动机

  1. 领域现状:端侧 LLM 推理面临严格的计算/延迟/内存约束。多尺度量化(如 Any-Precision LLM)通过重叠存储不同位宽的模型变体,实现内存高效的运行时模型适配。
  2. 现有痛点:(a) 统一精度分配(所有层同一位宽)无法支持非整数精度(如 3.5-bit),错失效率优化机会;(b) 现有逐层混合精度方法(LLM-MQ、HAWQ-V2)采用静态分配——一旦确定各层位宽,在整个解码过程中固定不变。
  3. 核心矛盾:每层对量化的敏感度不是静态属性,而是随解码步骤(token-by-token)动态变化的。在某些步骤需要高精度的层,在其他步骤可能只需低精度——静态分配无法捕捉这种动态行为。
  4. 本文要解决什么? 在运行时为每层动态分配精度(每个解码步独立决定),同时保持极低的推理延迟开销。
  5. 切入角度:用 h-bit 和 l-bit 权重的 GEMV 输出之差(relative error \(\|\Delta W x\|\))作为敏感度的运行时可估计代理指标。
  6. 核心 idea 一句话:在每个解码步根据输入动态估计各层的 relative error,超过阈值用高精度否则用低精度。

方法详解

整体框架

DP-LLM 分为离线准备和运行时选择两个阶段:离线阶段确定每层的候选精度集 {h-bit, l-bit} 和阈值 T;运行时阶段用轻量 precision selector 估计 relative error 并选择精度。整体流程如图:输入 token → 每层 precision selector 估计 \(\|\Delta W x\|\) → 与阈值 T 比较 → 选用 \(W_h\)\(W_l\) → 正常 GEMV 计算。

关键设计

  1. 三阶段离线精度配置:
  2. Phase 1 — 最大精度选择:基于二阶 Taylor 展开的静态敏感度,在内存预算约束下用整数规划确定每层可用的最大精度 B[i]
  3. Phase 2 — 平均精度微调:参数化每层的平均精度 \(p_i\),将线性层替换为 \(y = r W_l x + (1-r) W_h x\)\(r = 1-(p_i - l)\))。引入正则化损失:\(\mathcal{L}' = \mathcal{L} + \alpha(\sum_i p_i M_i / \sum_i M_i - b_{\text{targ}})^2\) 防止 p 值坍缩到最高精度。仅微调 \(\{p_i\}\),成本极低
  4. Phase 3 — 阈值转换:用校准集统计每层 \(\|\Delta W_i x\|\) 的分布,取 \(r_i\)-quantile(\(r_i = 1-(p_i-l)\))作为阈值 T[i]

  5. 混合 Relative Error 估计:

  6. 做什么:运行时高效近似 \(\|\Delta W x\|\)
  7. 核心思路:对每层二选一——
    • 线性回归\(R^2 > R_{\text{th}}^2 = 0.9\)):\(\|\Delta W x\| \approx \|x\| \times \alpha + \beta\),几乎零开销。约半数层满足此条件
    • 随机投影(JL 引理):预计算 \(G = A \Delta W\)\(A\)\(k \times n\) 随机矩阵,\(k=64\)),运行时做低维 GEMV \(\|Gx\|\) 估计误差。保证 91% 置信度下误差 <15%
  8. 设计动机:精确计算 \(\|\Delta W x\|\) 需要额外 GEMV 操作,不可行。混合方法在精度和效率间达到最佳平衡

  9. 异步估计:

  10. 做什么:将 relative error 估计移出推理关键路径
  11. 核心思路:利用 Transformer 残差连接使激活变化缓慢的特性,query/key/value/up-projection 等直接连接残差的层使用前一步的残差输出做估计
  12. 设计动机:估计延迟可与其他层计算重叠,进一步降低开销

损失函数 / 训练策略

离线微调仅更新 \(\{p_i\}\) 参数(非模型权重),使用 1000 个 C4 样本各 512 token,计算量极小。正则化系数 α 控制实际精度与目标精度的偏差。

实验关键数据

主实验(Llama-3-8B,5-bit 内存预算)

目标精度 方法 WikiText2 PPL↓ C4 PPL↓ GSM8K↑ BBH↑ MATH↑
3.25-bit LLM-MQ 7.62 12.01 33.1 43.9 11.2
3.25-bit HAWQ-V2 7.47 11.77 37.7 44.5 10.0
3.25-bit DP-LLM 7.35 11.57 36.7 46.3 10.6
4.00-bit LLM-MQ 7.07 11.21 38.8 47.5 11.2
4.00-bit HAWQ-V2 6.83 10.76 43.7 49.1 13.4
4.00-bit DP-LLM 6.59 10.25 42.8 48.5 12.8
4.75-bit LLM-MQ 6.73 10.66 41.3 48.3 11.8
4.75-bit HAWQ-V2 6.44 10.06 45.2 50.0 14.4
4.75-bit DP-LLM 6.37 9.89 46.9 50.6 14.8

延迟开销分析

硬件平台 模型 平均延迟开销
Jetson Orin AGX Llama-3-8B 3.12%
RTX 4060 Ti Llama-3-8B 0.68%
Jetson Orin AGX Phi-3-Medium 1.32%
RTX 4060 Ti Phi-3-Medium 0.50%

近似估计器 vs 精确估计器的 PPL 差异 <0.03(Llama-3-8B WikiText2),验证了近似的有效性。

关键发现

  • DP-LLM 在几乎所有数据集/模型/精度配置下均优于静态混合精度(LLM-MQ、HAWQ-V2)
  • 最大优势出现在低精度区间(3.25-4.0 bit),此时动态选择的价值最大
  • 延迟开销极低(RTX 4060 Ti 上 geomean < 1%),精度选择器几乎"免费"
  • 约半数层存在 \(\|x\|\)\(\|\Delta W x\|\) 的强线性关系,使线性回归估计成为可能

亮点与洞察

  • 层级敏感度的动态性观察:这是对传统静态混合精度假设的重要修正——量化敏感度不是层的固有属性,而是随输入动态变化的。这个洞察自然推导出动态精度分配的必要性
  • Relative Error 作为可估计的运行时代理指标:将高维的量化敏感度问题压缩为一个标量(\(\|\Delta W x\|\) vs 阈值 T),使运行时决策变得极其轻量
  • 混合估计策略的工程智慧:一半层用近乎免费的线性回归,另一半用 JL 引理的随机投影,兼顾精度和速度

局限性 / 可改进方向

  • 候选精度集限制为两个(h-bit 和 l-bit),更细粒度的多精度选择可能进一步提升
  • 异步估计假设相邻解码步的激活变化缓慢——在长序列或激活突变场景下可能不成立
  • 仅在 weight-only 量化上验证,weight-activation co-quantization 的动态精度分配未探索
  • 校准集依赖 C4——其他领域数据的泛化能力有待验证
  • 实验仅覆盖 Llama-3-8B 和 Phi-3-Medium,更大规模模型(70B+)的效果未知

相关工作与启发

  • vs Any-Precision LLM: 基础多尺度量化框架,统一精度分配。DP-LLM 在此上构建动态逐层选择机制
  • vs LLM-MQ: 用权重梯度估计静态敏感度 \(\Delta\mathcal{L} \approx g^T \Delta W\);DP-LLM 利用运行时输入的 relative error 做动态判断
  • vs HAWQ-V2: 用二阶 Hessian 信息静态分配精度;DP-LLM 证明静态分析无法捕捉解码阶段的敏感度变化

评分

  • 新颖性: ⭐⭐⭐⭐ 动态逐层精度的观察和机制设计新颖实用
  • 实验充分度: ⭐⭐⭐⭐ 多模型多数据集多精度 + 延迟分析 + 近似验证
  • 写作质量: ⭐⭐⭐⭐ 动机清晰,三阶段方法层层递进
  • 价值: ⭐⭐⭐⭐ 对端侧 LLM 部署有直接实用价值,动态精度思想可推广