diff --git a/python/sglang/srt/models/qwen2_moe.py b/python/sglang/srt/models/qwen2_moe.py index d0186f870..40b2b108d 100644 --- a/python/sglang/srt/models/qwen2_moe.py +++ b/python/sglang/srt/models/qwen2_moe.py @@ -540,6 +540,7 @@ class Qwen2MoeSparseMoeBlock(nn.Module): use_fused_gate = ( self.shared_expert_gate is not None and not use_intel_amx_backend(self.shared_expert_gate) + and not is_npu() ) if hidden_states.shape[0] == 0: diff --git a/python/sglang/srt/models/qwen3_5.py b/python/sglang/srt/models/qwen3_5.py index e8648b4b0..4273be43c 100644 --- a/python/sglang/srt/models/qwen3_5.py +++ b/python/sglang/srt/models/qwen3_5.py @@ -983,7 +983,11 @@ class Qwen3_5AttentionDecoderLayer(nn.Module): attn_output = self.attn(q, k, v, forward_batch) if self.attn_output_gate: - attn_output = fused_sigmoid_mul(attn_output, gate, inplace=True) + if not _is_npu: + attn_output = fused_sigmoid_mul(attn_output, gate, inplace=True) + else: + gate_val = gate.reshape(gate.shape[0], -1) if gate.ndim == 3 else gate + attn_output.mul_(torch.sigmoid(gate_val)) output, _ = self.o_proj(attn_output) return output