Prhub

#42822 add gelu_tanh to xpu moe backend supported activations

原始 PR 作者 yintong-lu 合并时间 2026-05-29 14:37 文件变更 1 提交数 2 评论 1 代码增减 +1 / -0

执行摘要

XPU MoE 支持 gelu_tanh 激活函数

Gemma4-26B-A3B 模型在 Intel XPU 上运行时失败,报错 NotImplementedError: No Unquantized MoE backend supports the deployment configuration,原因是 Gemma4 的 MoE 激活函数已由 gelu 改为 gelu_tanh(见 PR#41574),而 XPU MoE 后端未支持该激活函数。当前暂用方案是手动修改 gemma4.py 将激活函数改回 gelu

该 PR 为简单的兼容性修复,建议快速合并,但需确保关联的 xpu-kernels PR 已合入并更新依赖。

讨论亮点

无实质讨论。jikunshang 评论表示此 PR 需等待 vllm-xpu-kernels v0.1.9 发布并升级依赖后合并。

实现拆解

  1. vllm/model_executor/layers/fused_moe/experts/xpu_moe.py_supports_activation 静态方法中,于支持列表中添加 MoEActivation.GELU_TANH 枚举值。
  2. 该修改仅一行,使得 XPU 后端在 MoE 激活函数为 gelu_tanh 时也能正确匹配。
  3. 配套的 XPU 内核支持已由关联 PR(vllm-xpu-kernels#354)实现,需同步升级 xpu kernels 版本。
文件 模块 状态 重要度
vllm/model_executor/layers/fused_moe/experts/xpu_moe.py 模型层 modified 4.79

关键符号

_supports_activation

关键源码片段

vllm/model_executor/layers/fused_moe/experts/xpu_moe.py data-contract

在 XPU MoE 后端的激活函数支持列表中添加 `MoEActivation.GELU_TANH`,是修复的唯一变更文件。

# vllm/model_executor/layers/fused_moe/experts/xpu_moe.py ( 变更后 )@staticmethod
def _supports_activation(activation: MoEActivation) -> bool:
    """判断 XPU MoE 后端是否支持给定的激活函数。
    当前支持 SILU、GELU、GELU_TANH (新增)、SWIGLUOAI、RELU2_NO_MUL。
    """
    return activation in [
        MoEActivation.SILU,
        MoEActivation.GELU,
        MoEActivation.GELU_TANH, # 新增:支持 Gemma4 等使用 gelu_tanh 的模型
        MoEActivation.SWIGLUOAI,
        MoEActivation.RELU2_NO_MUL,
    ]

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低:仅为在支持列表中添加一个枚举值,不影响现有逻辑。但需注意,若内核层未正确实现 gelu_tanh 的计算,则可能产生错误结果。此风险由关联 PR 覆盖。

影响范围:修复 Intel XPU 上 Gemma4 模型的运行问题,仅影响 XPU 平台使用 MoE 且激活函数为 gelu_tanh 的场景。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论