你和 AI 的对话越长,它要留在 GPU 里的“草稿纸”就越厚。如果同时还有很多人提问,草稿纸很快会挤占显存。以往常见的办法是压缩或整理草稿纸;PagedWeight 换了一个角度:暂时降低部分模型权重的保存精度,把空间让给正在增长的对话记录。
这项工作针对 Mixture-of-Experts(MoE,混合专家)模型。MoE 内部有许多擅长不同模式的“专家”子网络,每次只调用少数专家,因此能扩大总参数量而不让每次计算量同比增长。但没有被调用的专家也要存放,论文称,已加载的 MoE 模型可能占据超过 60% 的 GPU 显存。另一边,KV cache——模型生成文字时保存的上下文计算结果——会随上下文和并发量增长。两者争抢同一块有限空间,最终会限制服务能接住多少请求。
PagedWeight 的目标,就是在模型准确度、显存占用和吞吐量之间实时调度,而不是在模型上线前一次性决定压缩程度。本文数字均来自 Yuchen Yang、Yifan Zhao、Anisha Dasgupta 与 Sasa Misailovic 的同一篇 arXiv 论文,尚无独立信源交叉验证。
不给所有专家一刀切
权重量化,是用更少的二进制位保存模型参数,像把高精度小数换成较粗的刻度。它能省显存,也可能损害回答质量。传统做法通常在服务开始前固定量化方案;PagedWeight 则在运行期间根据 KV cache 的压力调整精度。
它把专家权重拆成可管理的“页”。具体粒度不是整个模型,甚至不是整个专家,而是专家内部的 linear-block(线性计算模块)。每一页都记录当前实际使用的位宽、系统希望切换到的位宽,以及数据是在 GPU、CPU,还是正在传输。底层采用 Any-Precision LLM(APL)的叠加 bit-plane 表示:不同数量的二进制平面,对应不同有效位宽。需要腾空间时,系统可以移走多余平面;压力缓解后,再把它们装回 GPU。
这像一家空间有限的档案室。不是把整排档案永久销毁,而是先将眼下不太重要的精细版本移到库房,只留下较粗的副本。需要恢复时,再搬回来。
哪些专家可以先降精度?
真正困难的不是“能不能压缩”,而是先压缩谁。PagedWeight 的规划器综合三类信号。
第一类是离线敏感度。系统预先测量每个 linear-block 降低位宽后可能造成多大质量损失,把它作为平均情况下的底数。
第二类是实时路由统计。MoE 的 router(路由器)会为每个输入选择专家,而专家被选中的频率并不均匀。PagedWeight 给经常接活的“热门专家”更高保护:提高预计损伤,并设置更高的最低位宽。
第三类是 prompt residual,即针对当前提示词的修正。同一种降精度操作,面对不同输入时影响可能不同。系统从当前序列提取三项输入范数特征,再用离线训练的线性回归模型修正损伤估计。
规划器最终比较每个候选动作“每释放一个字节预计损失多少”,优先选择代价最低的动作,直到为 KV cache 腾出目标空间。如果安全范围内无法释放足够显存,它只返回当前约束允许的最大缩减,而不是无条件继续降精度。
搬权重不能挡住正在回答的模型
动态调整还有一个现实问题:权重页在 CPU 与 GPU 间来回移动,也要花时间。PagedWeight 让传输与模型服务异步重叠,并只在安全边界提交精度变化。降精度时,系统先切换当前使用位宽,再回收 GPU 上不需要的页;恢复精度时,则先把页完整搬回 GPU,确认就绪后才提高位宽。
作者还实现了 fused mixed-precision MoE kernel——把路由、专家计算和结果汇总合并在一个 CUDA 计算内核中,并直接读取不同精度的权重页,以减少逐个执行专家的额外开销。
数字说明了什么?
作者在三个开放 MoE 模型上测试,规模从 14.3B 到 46.7B 参数,覆盖 Qwen1.5-MoE-A2.7B、Mixtral-87B-v0.1 和 Gemma-4-26B-A4B。对照包括 FP16(16 位浮点精度)、统一量化 APL、静态混合精度 MxMoE,以及动态混合精度 DP-LLM。Qwen 实验使用 NVIDIA RTX 6000 Ada,其余模型使用 NVIDIA GH200 Grace Hopper,服务后端为 vLLM v0.20.1。
论文报告,在若干显存敏感场景中,PagedWeight 达到与 FP16 相当的准确度时,最多节省 72.0% GPU 显存,并最多带来 1.94 倍吞吐提升。吞吐量指系统单位时间能处理的请求或生成的内容。与其他量化方法相比,在相近显存预算下,它最多提高 39.3% 的质量,而吞吐损失最多为 4.1%。这些都是不同实验中的最佳值,不能理解为每个模型和任务都会同时得到同样收益。
长上下文实验更直观。在 Qwen1.5-MoE-A2.7B 的三项 LongBench 任务上,PagedWeight 在 9.86 GB 显存下取得 17.0% 平均分,与占用 35.25 GB 的 FP16 相同;相近显存占用的 APL-3bit 平均分为 12.2%。不过,17.0% 是三项指定任务的平均指标,不代表一般意义上的回答准确率。
吞吐测试使用长度 2048、批量大小 1 和 4。PagedWeight 与统一 APL 基线的显存占用相近或更低,最大吞吐下降分别为 3.3% 和 4.1%。消融实验也显示,去掉实时路由统计、提示词修正、动态页面移动或全局敏感度后,困惑度都会变差;其中去掉全局敏感度、退回统一量化时表现最差。
为什么值得关注
PagedWeight 的价值不只在“又一种量化方法”。它把模型权重从固定资产变成了可随服务负载调节的资源:对话短、显存宽松时保留更高精度;KV cache 膨胀时,从预计损伤较小的专家模块中借空间。它也补上了 KV cache 管理路线的另一半——整理缓存只能优化一位竞争者,PagedWeight 开始动态管理另一位显存大户。
局限与未知
- 结果目前只来自作者论文。72.0%、1.94 倍和 39.3% 均为“最多”值,依赖具体模型、任务、硬件、并发配置与基线。
- 实验覆盖三种 MoE 模型,并依赖特定的 Any-Precision 权重格式、敏感度指标和配套 CUDA 内核;作者将扩展到其他兼容量化格式列为未来工作。
- “FP16-equivalent accuracy”按具体评测指标判断,不等于动态降精度始终无损。提示词级敏感度目前也只是估计,作者仍计划探索更好的方法。