RuntimeError: Worker failed with error ‘SWIGLUOAI_UNINTERLEAVE requires clamp_limit’

用户在 vLLM v0.25.0 Docker 环境中,使用 vllm serve 命令加载 MiniMax-M3-W4A16-GPTQ 等 W4A16 INT4 量化模型时触发。启动命令包含 --tensor-parallel-size 4 ,并启用了 chunked prefilling 和 p

RuntimeError: Worker failed with error 'SWIGLUOAI_UNINTERLEAVE requires clamp_limit'

RuntimeError: Worker failed with error ‘SWIGLUOAI_UNINTERLEAVE requires clamp_limit’

快速结论:该报错出现在 vLLM v0.25.0 加载 MiniMax-M3 系列 W4A16(GPTQ/AWQ)量化模型时,源于 CompressedTensorsWNA16MarlinMoEMethod 构建 FusedMoEQuantConfig 时未传递 swiglu_alphaswiglu_betaswiglu_limit,导致 Marlin 内核收到的 clamp_limitNone。优先检查你的 vLLM 是否包含修复 clamp_limit 缺失的补丁。

问题场景

用户在 vLLM v0.25.0 Docker 环境中,使用 vllm serve 命令加载 MiniMax-M3-W4A16-GPTQ 等 W4A16 INT4 量化模型时触发。启动命令包含 --tensor-parallel-size 4,并启用了 chunked prefilling 和 prefix caching,模型加载到 engine warmup 阶段报错,worker 进程退出。

报错原文

RuntimeError: Worker failed with error 'SWIGLUOAI_UNINTERLEAVE requires clamp_limit'

原因分析

CompressedTensorsWNA16MarlinMoEMethod 在创建 FusedMoEQuantConfig 时,没有从模型配置中提取 swiglu_alphaswiglu_betaswiglu_limit。对于 INT4 W4A16 而言,配置结构当前不包含用于这些字段的空间,因此 Marlin 内核收到的 clamp_limitNone,而模型配置(通常是 config.json 中的 clamp_limitswiglu_limit 字段)指定了值(如 7.0)。

可能原因:这是 vLLM v0.25.0 中 WNA16 量化配置路径的一个缺陷,影响所有依赖 SWIGLU_OAI_UNINTERLEAVE 算子且需要 clamp_limit 的 INT4 模型。

环境排查

  • 确认为 vLLM 版本:v0.25.0(Docker 镜像中)。
  • 确认设备:NVIDIA H200 NVL(4卡),Driver Version 580.105.08,CUDA Runtime 13.0。
  • 确认模型:MiniMax-M3-W4A16-GPTQ 或类似 W4A16 AWQ/GPTQ 量化模型。
  • 确认未应用 修复 commit 8277b70 时触发该报错。

解决步骤

  1. 关闭 vLLM 服务进程,并切换到已修复的 vLLM 分支或合入对应补丁。社区贡献者 rathodkunj2005 提供了一个修复分支:https://github.com/rathodkunj2005/vllm/compare/main…fix/wna16-int4-swiglu-config,或者直接 cherry-pick commit 8277b70。该补丁将 layer 中原有的 swiglu_alphaswiglu_betaswiglu_limit 值传入 INT4 的 FusedMoEQuantConfig
  2. 可优先尝试:如果你无法应用此补丁,可尝试临时使用全精度或 FP16/BF16 的模型版本,但并非长久之计。
  3. 重建 Docker 镜像(如果使用):在 vLLM 源码根目录执行 python setup.py develop 或重新构建 wheel,确保补丁生效。
  4. 重新加载模型,使用与之前相同的启动参数。

验证方法

模型能够正常完成 engine warmup,不再弹出 RuntimeError: Worker failed with error 'SWIGLUOAI_UNINTERLEAVE requires clamp_limit' 报错。API server 日志能正常打印模型版本和加载信息,且 CUDA graphs capture 阶段(如存在)不会报错。如果应用补丁后仍有 CUDA graph capture 失败(例如 custom all reduce 相关错误),则可能是该补丁尚需进一步完善(该问题在社区讨论中已提及,但未在本次 Issue 中全面解决)。

参考来源

vllm-project/vllm #48493

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 13834

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注