# PR #41710 完整报告

- 仓库：`vllm-project/vllm`
- 标题：fix: remove unused norm for dpskv4
- 合并时间：2026-05-18 18:33
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/41710

---

# 执行摘要

- 一句话：移除 DPSKV4 未使用的 k_norm LayerNorm
- 推荐动作：该 PR 值得合并，是一个正确的清理修复。建议关注后续是否还有其他未使用的层或权重需要清理，以保持代码整洁。

# 功能与动机

`k_norm` 在 DeepSeek V4 中未被使用，但在非量化模型（如 FP8 转 bfloat16）加载时会因严格检查而报错，提示权重未初始化。该 PR 旨在移除未使用的 norm，恢复模型加载的正确性。

# 实现拆解

1. **移除导入**：在 `vllm/model_executor/layers/deepseek_v4_attention.py` 中，将 `from vllm.model_executor.layers.layernorm import LayerNorm, RMSNorm` 改为 `from vllm.model_executor.layers.layernorm import RMSNorm`，去除未使用的 `LayerNorm`。
2. **移除定义**：在 `DeepseekV4Indexer` 类的 `__init__` 方法中，删除 `self.k_norm = LayerNorm(self.head_dim, eps=1e-6)` 这一行。
3. **影响**：由于 `k_norm` 在 `forward` 中从未被引用，删除后不会影响推理逻辑，同时避免了非量化模型加载时的权重不匹配错误。

关键文件：
- `vllm/model_executor/layers/deepseek_v4_attention.py`（模块 注意力层；类别 source；类型 data-contract）: 主要变更文件，删除了未使用的 `k_norm` LayerNorm 定义及其导入，是解决模型加载错误的直接修改。

关键符号：未识别

## 关键源码片段

### `vllm/model_executor/layers/deepseek_v4_attention.py`

主要变更文件，删除了未使用的 `k_norm` LayerNorm 定义及其导入，是解决模型加载错误的直接修改。

```python
# 变更前导入 :
# from vllm.model_executor.layers.layernorm import LayerNorm, RMSNorm
# 变更后导入 :
from vllm.model_executor.layers.layernorm import RMSNorm  # 仅保留实际使用的 RMSNorm

# 在 __init__ 中，删除了以下行 :
# self.k_norm = LayerNorm(self.head_dim, eps=1e-6) # k_norm 从未在 forward 中使用

```

# 评论区精华

没有实质性的 review 讨论。审核人员 `zyongye` 直接批准并留言 "Thank you"，说明该变更简单且直接。

- 暂无高价值评论线程

# 风险与影响

- 风险：**低风险**。变更仅移除未使用的属性和导入，不涉及任何前向逻辑改动。回归风险极低，但建议确认 DeepSeek V4 模型的 `forward` 中确实没有引用 `self.k_norm`（根据 PR 描述和代码审查，确认无引用）。
- 影响：**影响范围小**。只修改了一个文件，影响仅限于 DeepSeek V4 模型的注意力层。修复了非量化模型加载时的错误，提高了模型兼容性。
- 风险标记：缺少测试覆盖

# 关联脉络

- PR #42810 [ROCm] [Bugfix] Fix DeepSeek V4 Functionality and Accuracy: 同为 DeepSeek V4 的修复 PR，涉及同一文件的不同部分，展示了持续的维护工作。