# PR #25786 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[Bug] Correct Weight Offloader's Attribute Name for torch.nn.Parameter
- 合并时间：2026-05-20 13:28
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/25786

---

# 执行摘要

- 一句话：修复 Parameter 属性名 typo
- 推荐动作：PR 值得合并，但 reviewer 提出的简化建议（`getattr` 和 `isinstance`）可考虑在后续重构中一并优化，以提高代码健壮性和可维护性。

# 功能与动机

PR body 指出此修复是源 PR #24531 的一部分，目的是纠正参数卸载时属性名检查的拼写错误，避免将真正的 weight_loader 遗漏，导致参数行为不正确。

# 实现拆解

1. 定位 `python/sglang/srt/utils/offloader.py` 的 `_move_param_to_meta` 函数中，第 455 行 `hasattr(old_param, "weihgt_loader")` 拼写错误。
2. 将 `"weihgt_loader"` 修正为 `"weight_loader"`，使条件分支能正确检测并复制已存在的 weight_loader 属性。
3. 若旧参数没有 weight_loader 属性，仍保持原有 fallback 逻辑：赋值为一个无操作 lambda。

关键文件：
- `python/sglang/srt/utils/offloader.py`（模块 卸载器；类别 source；类型 core-logic；符号 _move_param_to_meta）: 唯一改动文件，修正了 _move_param_to_meta 函数中属性名检查拼写错误

关键符号：_move_param_to_meta

## 关键源码片段

### `python/sglang/srt/utils/offloader.py`

唯一改动文件，修正了 _move_param_to_meta 函数中属性名检查拼写错误

```python
# python/sglang/srt/utils/offloader.py 第 450-458 行
# 修复前：hasattr(old_param, "weihgt_loader") 导致 weight_loader 属性永远无法被识别
# 修复后：正确检测 weight_loader 属性是否存在
elif old_param_type == torch.nn.Parameter:
    new_param = torch.nn.Parameter(
        data=new_data,
        requires_grad=False,
    )
    if hasattr(old_param, "weight_loader"):  # 修正前为 "weihgt_loader"
        new_param.weight_loader = old_param.weight_loader
    else:
        new_param.weight_loader = lambda *args, **kwargs: None

```

# 评论区精华

Code review 中 gemini-code-assist[bot] 提出两点改进建议：(1) 可用 `getattr(old_param, 'weight_loader', lambda *args, **kwargs: None)` 简化 if-else 判断；(2) 第 450 行的精确类型检查 `old_param_type == torch.nn.Parameter` 不够灵活，建议改用 `isinstance` 以兼容更多子类。这些建议未在本 PR 中处理。

- 简化赋值逻辑及类型检查建议 (design): 未采纳，当前仅做最小修复。

# 风险与影响

- 风险：风险极低。本次变更仅为单字符拼写修正，使用 `hasattr` 检查属性存在性，不会引入回归或新错误。
- 影响：仅影响权重卸载（weight offloading）功能中使用 torch.nn.Parameter 的场景（如部分模型参数）。修正后，原本因 typos 未被正确保留的 weight_loader 现在会正常复制，确保卸载行为与预期一致。不会影响不涉及卸载的模型。
- 风险标记：暂无

# 关联脉络

- PR #24531 [Offload] Add parameter offloading support for Lora & MTP models (source PR): 本 PR 是源 PR #24531 的一部分，修正其中的拼写错误。