Qwen3-Next 使用指南¶
Qwen3-Next 是阿里云 Qwen 团队开发的先进大型语言模型。它具有多项关键改进
- 混合注意力机制
- 高度稀疏的混合专家 (MoE) 结构
- 对训练稳定性友好的优化
- 多 token 预测机制,以实现更快的推理速度
安装 vLLM¶
使用 vLLM 启动 Qwen3-Next¶
您可以使用 4 x H200/H20 或 4 x A100/A800 GPU 来启动此模型。
基本多 GPU 设置¶
vllm serve Qwen/Qwen3-Next-80B-A3B-Instruct \
--tensor-parallel-size 4 \
--served-model-name qwen3-next
如果您遇到 torch.AcceleratorError: CUDA error: an illegal memory access was encountered 错误,可以在启动参数中添加 --compilation_config.cudagraph_mode=PIECEWISE 来解决此问题。此 IMA 错误可能在数据并行 (DP) 模式下发生。
对于 FP8 模型¶
我们可以使用 FP8 FlashInfer TRTLLM MoE 内核来加速 SM100 机器上的性能。
VLLM_USE_FLASHINFER_MOE_FP8=1 \
VLLM_FLASHINFER_MOE_BACKEND=latency \
VLLM_USE_DEEP_GEMM=0 \
VLLM_USE_TRTLLM_ATTENTION=0 \
VLLM_ATTENTION_BACKEND=FLASH_ATTN \
vllm serve Qwen/Qwen3-Next-80B-A3B-Instruct-FP8 \
--tensor-parallel-size 4
对于 SM90/SM100 机器,我们可以启用 fi_allreduce_fusion,如下所示:
vllm serve Qwen/Qwen3-Next-80B-A3B-Instruct-FP8 \
--tensor-parallel-size 4 \
--compilation_config.pass_config.enable_fi_allreduce_fusion true \
--compilation_config.pass_config.enable_noop true
使用 MTP 进行高级配置¶
Qwen3-Next 还支持多 token 预测 (MTP),您可以使用以下参数启动模型服务器来启用 MTP。
vllm serve Qwen/Qwen3-Next-80B-A3B-Instruct \
--tokenizer-mode auto --gpu-memory-utilization 0.8 \
--speculative-config '{"method": "qwen3_next_mtp", "num_speculative_tokens": 2}' \
--tensor-parallel-size 4 --no-enable-chunked-prefill
speculative-config 参数使用 JSON 格式配置推测解码设置。方法 "qwen3_next_mtp" 指定系统应使用 Qwen3-Next 的专用多 token 预测方法。"num_speculative_tokens": 2 设置表示模型将在生成过程中向前推测 2 个 token。
性能指标¶
基准测试¶
我们使用以下脚本演示如何对 Qwen/Qwen3-Next-80B-A3B-Instruct 进行基准测试。
vllm bench serve \
--backend vllm \
--model Qwen/Qwen3-Next-80B-A3B-Instruct \
--served-model-name qwen3-next \
--endpoint /v1/completions \
--dataset-name random \
--random-input 2048 \
--random-output 1024 \
--max-concurrency 10 \
--num-prompt 100
使用技巧¶
调整 MoE 内核¶
启动模型服务时,您可能会在服务器日志中遇到以下警告 (假设 GPU 为 NVIDIA_H20-3e)。
(VllmWorker TP2 pid=47571) WARNING 09-09 15:47:25 [fused_moe.py:727] Using default MoE config. Performance might be sub-optimal! Config file not found at ['/vllm_path/vllm/model_executor/layers/fused_moe/configs/E=512,N=128,device_name=NVIDIA_H20-3e.json']
您可以使用 benchmark_moe 为您的硬件执行 MoE Triton 内核调优。调优完成后,将生成一个名为 E=512,N=128,device_name=NVIDIA_H20-3e.json 的 JSON 文件。您可以使用环境变量 VLLM_TUNED_CONFIG_FOLDER 为您的部署硬件指定包含此文件的目录,例如:
VLLM_TUNED_CONFIG_FOLDER=your_moe_tuned_dir vllm serve Qwen/Qwen3-Next-80B-A3B-Instruct \
--tensor-parallel-size 4 \
--served-model-name qwen3-next
您应该会在服务器日志中看到以下信息。这表示已加载调优后的 MoE 配置,这将提高模型服务的性能。
(VllmWorker TP2 pid=60498) INFO 09-09 16:23:07 [fused_moe.py:720] Using configuration from /your_moe_tuned_dir/E=512,N=128,device_name=NVIDIA_H20-3e.json for MoE layer.
数据并行部署¶
vLLM 支持多并行组。您可以参考 数据并行部署文档,并尝试更适合此模型的并行组合。
函数调用¶
vLLM 还支持调用用户定义的函数。请确保使用以下参数运行您的 Qwen3-Next 模型。
已知限制¶
- Qwen3-Next 目前不支持自动前缀缓存。