Nano-vLLM-MS
Nano-vLLM-MS项目地址喜欢可以点点star这是一个基于 nano-vLLM 的轻量级 vLLM 实现增强了对 MoE 模型和 Speculative Decoding推测解码的支持。核心特性✅MoE 模型支持- 在 nano-vLLM 推理流水线中支持 Qwen3-MoE 模型包含基于 router 的 top-k expert 选择与融合专家计算。✅Speculative Decoding 流水线- 实现了端到端的推测解码路径包含 N-gram 草稿 token 提案。高效 N-gram proposer- 使用基于 prompt 查找的方法并结合 Numba 加速与自适应线程控制降低大 batch 场景下的草稿生成开销。⚡面向性能的运行时- 保留了 nano-vLLM 的优化能力例如 prefix cache、tensor parallel、CUDA graph capture 等。可复现示例与基准测试- 提供example_moe.py、example_sd.py和bench.py可快速验证功能并与 vLLM 对比吞吐。安装pip install githttps://github.com/banfeb/nano-vLLM-MS2.git模型下载如果你想手动下载模型权重可使用以下命令huggingface-cli download --resume-download yujiepan/qwen3-moe-tiny-random \ --local-dir ~/huggingface/qwen3-moe-tiny-random/ \ --local-dir-use-symlinks False快速开始使用方式可参考example_moe.py或example_sd.py。API 基本与 vLLM 接口一致LLM.generate方法有少量差异from nanovllm import LLM, SamplingParams llm LLM(/YOUR/MODEL/PATH, enforce_eagerTrue, tensor_parallel_size1,speculative_config{}) sampling_params SamplingParams(temperature0.6, max_tokens256) prompts [Hello, Nano-vLLM-MS.] outputs llm.generate(prompts, sampling_params) outputs[0][text]基准测试基准测试请参考bench.py。下面给出两组基准测试结果用于验证 Qwen3-MoE 执行路径的 MoE 推理基准测试。基于 Qwen3-0.6B 的 Speculative Decoding 基准测试用于衡量 N-gram 草稿生成流水线带来的吞吐提升。MoE 推理基准测试这组测试数据来自 MoE 模型路径不包含Speculative Decoding。所使用的 Qwen3-MoE 模型是一个随机参数 checkpoint因此这里的测试主要用于功能验证与吞吐评估而不是生成质量评估。测试配置硬件RTX 309024GB模型yujiepan/qwen3-moe-tiny-random总请求数256 条序列输入长度在 100 到 1024 token 范围内随机采样输出长度在 100 到 1024 token 范围内随机采样性能结果推理引擎输出 Token 数耗时s吞吐tokens/svLLM133,9665.5324,242.19Nano-vLLM-MS133,9666.3723,214.07Speculative Decoding 基准测试为了评估 Speculative Decoding 的效果我们另外在Qwen3-0.6B上测试了 Nano-vLLM-MS。该模型也是当前 speculative decoding 示例所使用的基础稠密模型。这里对比的是普通解码与开启 N-gram speculative path 后的吞吐表现。测试配置模型Qwen3-0.6B推理引擎Nano-vLLM-MS对比方式普通解码 vs. Speculative Decoding性能结果模式吞吐tokens/s普通解码1,418.09Speculative Decoding1,996.81在该配置下Speculative Decoding 将吞吐从1418.09 tok/s提升到1996.81 tok/s约提升40.8%。