# PR #7369 完整报告

- 仓库：`verl-project/verl`
- 标题：[sglang] fix: make DeepSeek-V4 full weight sync work with SGLang + Megatron
- 合并时间：2026-09-01 21:03
- 原文链接：http://prhub.com.cn/verl-project/verl/pull/7369

---

# 执行摘要

- 一句话：修复 SGLang 权重同步中 DeepSeek-V4 融合参数跨桶断裂问题。
- 推荐动作：

# 功能与动机

根据 PR body 和评论，主要动机是解决两个阻塞点：
1. SGLang 环境固定了旧版 Transformers（5.3.0），不识别 `deepseek_v4` 模型类型（注：该部分因即将升级 Transformers 而被回退）。
2. SGLang 在加载 DeepSeek-V4 权重时，会在一个 `load_weights` 调用中拼接两个张量（如 `wq_a.weight` 和 `wkv.weight`），但原有的基于字节的分桶逻辑可能将这两个张量分开到不同的桶中，导致 SGLang 内部的加载器缓存未清空断言失败（`assert len(cache_wqkv_a_weight) == 0`）。

# 实现拆解

变更主要分为以下步骤：
1. **定义融合组**：在 `verl/workers/rollout/sglang_rollout/utils.py` 中，新增常量 `_DEEPSEEK_V4_FUSION_MEMBERS` 和 `DEEPSEEK_V4_FUSION_GROUPS`，明确列出了 DeepSeek-V4 模型中需要保持在同一桶内的所有参数对后缀，覆盖了注意力层（`self_attn`/`attn`）的权重、缩放因子以及相关压缩器的权重，同时包含 FP8 量化的 `.scale` 和 `.weight_scale_inv` 两种命名。
2. **改造分桶逻辑**：修改核心函数 `get_named_tensor_buckets`，为其新增可选参数 `fusion_groups`。函数内部引入一个 `staged` 字典来暂存已识别但未集齐的融合组成员。新增内部函数 `_place` 来处理不可分割的张量组（如完整的融合组）的放置逻辑。只有当融合组的所有成员都到达后，才会作为一个整体尝试放入当前桶。
3. **条件调用入口**：在 `verl/workers/rollout/sglang_rollout/sglang_rollout.py` 的 `update_weights` 方法中，根据 `self.model_config.hf_config.model_type` 是否为 `

关键文件：
- `verl/workers/rollout/sglang_rollout/utils.py`（模块 verl/workers；类别 source；类型 core-logic；符号 _fusion_key, _place）: 源码主路径；涉及符号 _fusion_key, _place；包含 控制流调整、配置键调整、异常路径调整；+65/-8
- `tests/checkpoint_engine/test_sglang_fusion_bucketing_on_cpu.py`（模块 sglang/fusion/bucketing/on/cpu；类别 test；类型 test-coverage；符号 _tensor, _buckets, collect, test_deepseek_v4_fusion_group_stays_in_one_bucket）: 测试配套；涉及符号 _tensor, _buckets, collect, test_deepseek_v4_fusion_group_stays_in_one_bucket；包含 测试覆盖调整、导入关系调整、控制流调整；+52/-0
- `verl/workers/rollout/sglang_rollout/sglang_rollout.py`（模块 verl/workers；类别 source；类型 core-logic）: 源码主路径；包含 控制流调整、配置键调整；+9/-1

关键符号：_fusion_key, _place, _tensor, _buckets, collect, test_deepseek_v4_fusion_group_stays_in_one_bucket, test_fusion_grouping_is_opt_in_for_non_deepseek_models, test_deepseek_v4_incomplete_group_fails_loudly


# 评论区精华



- 暂无高价值评论线程

# 风险与影响

- 风险：
- 影响：
 - 风险标记：暂无

# 关联脉络

- 暂无明显关联 PR