@agenticgirl: Nokia Applied Research 开源了 WiSP,这是一个 vLLM 插件,用于在完全专家池不适合时运行 MoE 模型……

X AI KOLs Timeline 工具

摘要

Nokia Applied Research 已开源 WiSP,这是一个 vLLM 插件,用于在显存不足的 GPU 上运行 MoE 模型,通过智能地对专家进行分页并利用 KV 缓存重新分配内存,实现了高达 2.0 倍的解码吞吐量提升。

Nokia Applied Research 开源了 WiSP,这是一个 vLLM 插件,用于在完整专家池不适合 GPU 显存时运行 MoE 模型。WiSP 不是卸载整个 MoE 层,而是将专家视为 GPU 工作集:保留重要的路由专家,将其余的从主机内存分页,并让正常的模型路由器决定需要什么。它进一步通过 MV-WSA 实现了这一点,MV-WSA 将专家权重和 KV 缓存视为同一显存预算的两个消费者,并根据每字节的预期延迟效益在它们之间动态重新分配内存。该实现不改变模型数学或精度,并保持字节完全相同的输出。arXiv 论文报道,在实际 24 GiB RTX 3090 上,在相同内存预算下,比静态卸载实现了高达 2.0 倍的解码吞吐量提升。其在线专家/KV 调整控制器比固定分割改进了端到端时间高达 1.19 倍。作者还发现,推测性专家预取对单流解码没有帮助,因为瓶颈是 PCIe 带宽,而不是专家预测。GitHub 仓库:https://github.com/nokia-applied-research/WiSP…
查看原文
查看缓存全文

缓存时间: 2026/09/26 13:02

诺基亚应用研究部门开源了WiSP,这是一个vLLM插件,用于在专家池总量超出显存容量的情况下运行MoE模型。WiSP不会卸载整个MoE层,而是将专家视为GPU的活动工作集:将关键的路由专家保留在显存中,其余部分从主机内存按需调页,并让常规模型路由器决定所需内容。它通过MV-WSA更进一步,将专家权重与KV缓存视为同一显存预算的两个消耗者,并根据每字节的预期延迟收益动态重新分配内存。该实现不改变模型数学运算或精度,并保证输出字节级一致。arXiv论文显示,在24 GiB的RTX 3090上,在相同显存预算下,其解码吞吐量比静态卸载最高提升2.0倍。其在线专家/KV尺寸控制器相比固定分配方案最高可将端到端时间缩短1.19倍。作者还发现专家预测性预取对单流解码并无助益,因为瓶颈在于PCIe带宽而非专家预测。GitHub仓库:https://github.com/nokia-applied-research/WiSP


nokia-applied-research/WiSP

来源:https://github.com/nokia-applied-research/WiSP

WiSP — 适用于显存受限MoE服务的路由感知专家分页

WiSP像vLLM对KV分页那样对专家进行分页——然后在固定的显存预算内,决定为每部分分配多少字节。
MV-WSA 35秒演示——在固定显存预算(等效显存)下,控制器发现
KV池大多处于空闲状态,因此回收这些字节用于保留专家
(容量从32增至35,KV从2.79 GiB降至1.53 GiB),以1.19倍的速度服务同一追踪任务
(db;os为1.07倍),零中断且输出字节级一致。基于
真实24 GiB RTX 3090测量(vLLM 0.11.2)。动画循环播放;交互式
演示见 demo/animate/。

这是论文中报告的MV-WSA 在线双重尺寸控制器。其代码将随会议版本发布(见路线图);此v1版本
包含专家分页器+以下等效显存静态复现与字节一致性验证。

WiSP是vLLM的即插即用插件(https://github.com/vllm-project/vllm),允许在显存无法容纳全部专家权重的GPU上运行混合专家(MoE)模型。保留的专家被视作缓存,其余专家按需从固定主机内存调页,与KV缓存共享统一显存预算进行换入换出。在24 GiB的RTX 3090上,该插件可服务原本无法运行的Qwen3-30B-A3B(BF16约57 GiB),在相同显存预算下解码吞吐量比原生vLLM的静态--cpu-offload-gb最高提升2.0倍。

在温度0的未量化融合MoE路径上,解码输出与原生vLLM字节级一致:每token组合是按路由顺序对每个token的路由专家集合进行加权求和,因此与专家占用的物理缓存槽无关。WiSP仅改变权重的存储位置,不改变数学运算。可通过 scripts/check_byte_identity.py 自行验证(见下文)。

测试基于 vLLM 0.11.2。关于模型支持能力的描述均针对该版本。

本次发布内容(及非内容)

这是WiSP论文的随附成果。包含论文关键指标所依赖的部分:

  • 路由感知专家分页器作为纯净的vLLM插件——基于“将保留专家视为缓存“的已知思想构建,实现即插即用且字节级精确;
  • 在真实消费级显卡上的等效显存复现;
  • 字节一致性验证。

不包含从零开始的研究模拟器、离线上限预言机或在线双重尺寸控制器——这些是支撑分析图表的工具,超出本v1版本范围。

安装

# 1) 安装与CUDA匹配的torch,然后安装vLLM 0.11.2
pip install torch --index-url https://download.pytorch.org/whl/cu121
pip install vllm==0.11.2

# 2) 安装WiSP(注册vLLM插件入口点)
pip install -e .

或使用固定镜像:docker build -t wisp . && docker run --gpus all -it wisp
安装后插件自动注册至vLLM。设置 WISP_PLUGIN_DISABLE=1 可使其失效(便于同一安装环境下的A/B基准测试)。

快速开始

服务模式(兼容OpenAI)

export WISP_MODE=paged
WISP_CAP_EXPERTS=8
vllm serve Qwen/Qwen3-30B-A3B --enforce-eager \
  --gpu-memory-utilization 0.45 --max-model-len 4096

在24 GiB显卡上,若无插件会显存溢出;启用后模型加载约需10 GiB,并通过HTTP提供服务。

离线模式(Python)

from wisp.integrations.vllm import install_wisp_moe

install_wisp_moe()  # 必须在vLLM导入模型前调用

from vllm import LLM, SamplingParams
llm = LLM("Qwen/Qwen3-30B-A3B", enforce_eager=True, gpu_memory_utilization=0.45)
print(llm.generate(["Hello, world."], SamplingParams(temperature=0))[0].outputs[0].text)

复现论文结论

reproduce.sh 可在任何显存≥16 GiB且主机内存≈80 GiB的CUDA GPU上运行两个核心结果(主专家权重常驻DRAM):

bash reproduce.sh  # 字节一致性 + 等效显存帕累托扫描
STEP=identity bash reproduce.sh  # 仅字节一致性
STEP=isovram bash reproduce.sh   # 仅等效显存扫描

直接验证字节一致性:

# 原生参考方案从CPU流式加载权重以适应显存(相同数学运算)
python scripts/check_byte_identity.py --mode vanilla --out vanilla.json --cpu-offload-gb 48 --gpu-memory-utilization 0.90
python scripts/check_byte_identity.py --mode wisp --cap-experts 8 --out wisp.json --gpu-memory-utilization 0.45
python scripts/check_byte_identity.py --compare vanilla.json wisp.json
# -> 字节级一致

配置参数

环境变量默认值说明
WISP_MODEpagedpaged=LRU分页(省内存);resident=全常驻(不分页);copy=朴素全量复制(仅验证正确性)。兼容旧称day2b/day2a/day1。
WISP_CAP_EXPERTSmin(num_experts, 24)paged模式下每层保留的专家槽位数(缓存容量)。
WISP_PLUGIN_DISABLE0设为1时插件失效。

文件结构

src/wisp/integrations/vllm/   vLLM插件(install_wisp_moe)
src/wisp/oracle/cooccur.py    基于层条件的路由共现分析
scripts/                       复现与基准测试脚本
reproduce.sh                   一键复现脚本

适用范围与限制

  • 字节一致性仅保证按路由顺序组合的未量化融合MoE路径。量化/DeepGEMM/原子归约内核不在保证范围内。
  • WiSP针对单流/低并发场景下的受限显卡解码。高批量且有重叠机会时权衡方式不同。
  • 单流解码受限于PCIe带宽而非预测精度;预测性预取是显存调节手段而非延迟优化手段(详见论文)。
  • 首次加载会将全部专家权重(约模型体积)锁定至主机内存,因此主机需提供相应锁定内存,且初始加载可能较慢——尤其在通过网络文件系统时(曾观察到57 GiB模型需15分钟以上)。本地NVMe加载更快,且操作系统页缓存会加速后续加载。此为一次性开销,非程序卡死。

路线图

本v1版本包含插件与两项核心复现。下一步计划:

  • 将字节一致性保证与测试扩展至量化/FP8融合MoE路径。
  • 在等效显存帕累托曲线上与其他专家卸载服务系统进行直接对比。
  • 在线MV-WSA双重尺寸控制器(专家↔KV)集成至多进程服务循环——即演示中展示的控制器(论文报告优于最佳固定分配1.07–1.19倍)。
  • 扩展模型与硬件覆盖(更多MoE架构、额外消费级/边缘GPU)。

欢迎贡献代码与提交问题报告。

许可证

Apache-2.0

引用

@misc{zhang2026wisp,
  title = {WiSP: 极低资源硬件上混合专家服务的工作集视角},
  author = {Jiamu Zhang and Liang Wu and Mayank Darbari and Liangjie Hong},
  year = {2026},
  eprint = {2606.21868},
  archivePrefix = {arXiv},
  primaryClass = {cs.LG},
  doi = {10.48550/arXiv.2606.21868},
  url = {https://arxiv.org/abs/2606.21868}
}

相似文章

SpecPrefetch:面向稀疏MoE基础模型的参数高效专家预取

arXiv cs.AI

SpecPrefetch提出了一种面向稀疏MoE模型的参数高效专家预取框架,使用轻量级适配器预测下一层专家以进行异步传输,同时保留原生路由语义。在Snapdragon 8 Elite设备上,它实现了高达20%的解码吞吐量提升,展示了在内存受限部署中的实用优势。