# PR #25829 完整报告

- 仓库：`sgl-project/sglang`
- 标题：fix: adapt dots_vlm for transformers v5
- 合并时间：2026-05-28 15:26
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/25829

---

# 执行摘要

- 一句话：适配 DotsVLM 与 transformers v5 API 变更
- 推荐动作：建议合并。变更简单、风险低，解决已知的兼容性问题。未来可考虑在多模态 processor 基类中统一处理此类版本兼容逻辑，减少重复适配工作。

# 功能与动机

在 transformers v5 中，`min_pixels` 和 `max_pixels` 属性被移入 `.size` 字典中，直接访问 `image_processor.min_pixels` 会引发 AttributeError。该 PR 旨在兼容这一 API 变化，确保 DotsVLM 模型在多模态流程中能正常初始化。

# 实现拆解

1. **定位问题**：在 `DotsVLMImageProcessor.__init__` 中，原代码直接访问 `_processor.image_processor.min_pixels` 和 `_processor.image_processor.max_pixels`。
2. **引入 `getattr` 加回退**：使用 Python 内置 `getattr` 函数，先尝试直接读取属性，若不存在则回退到 `_processor.image_processor.size` 字典中读取 `shortest_edge`（对应 `min_pixels`）和 `longest_edge`（对应 `max_pixels`）。
3. **保持原有逻辑**：`MAX_RATIO`、`IMAGE_FACTOR` 及 token 相关属性不受影响。仅初始化阶段的属性读取方式改变，不影响后续推理。
4. **无测试变更**：PR 未包含新增单元测试，但通过本地验证确保兼容性。

关键文件：
- `python/sglang/srt/multimodal/processors/dots_vlm.py`（模块 多模态；类别 source；类型 core-logic；符号 DotsVLMImageProcessor.__init__）: 唯一修改的文件，修复 transformers v5 兼容问题。

关键符号：DotsVLMImageProcessor.__init__

## 关键源码片段

### `python/sglang/srt/multimodal/processors/dots_vlm.py`

唯一修改的文件，修复 transformers v5 兼容问题。

```python
# python/sglang/srt/multimodal/processors/dots_vlm.py
# 在 __init__ 方法中，原先直接访问 _processor.image_processor.min_pixels
# 在 transformers v5 中该属性被移除，需要从 .size 字典中回退读取
self.MIN_PIXELS = getattr(
    _processor.image_processor,
    "min_pixels",                         # 优先尝试直接属性
    getattr(_processor.image_processor, "size", {}).get("shortest_edge"),  # 回退到 size 字典
)
self.MAX_PIXELS = getattr(
    _processor.image_processor,
    "max_pixels",
    getattr(_processor.image_processor, "size", {}).get("longest_edge"),
)

```

# 评论区精华

无 reviewer 评论，仅由 sglang-npu-bot 自动批准。PR 提交者 hanwlax 多次触发 CI 重跑（`/tag-and-rerun-ci`、`/rerun-failed-ci`），CI 基本通过，仅 extra 测试有一处失败但未影响合并。

- 暂无高价值评论线程

# 风险与影响

- 风险：风险极低：变更局限于单个文件的一行读取逻辑，使用 Python 内置 `getattr`，语义明确且向下兼容。若 `size` 字典中缺少对应键（极少见），会返回 `None`，但不会崩溃；后续使用这些像素值时可能产生非预期行为，需确保 transformers 版本已正确配置 size 字段。
- 影响：仅影响 `DotsVLMForCausalLM` 和 `DotsOCRForCausalLM` 模型的使用者，且仅在初始化阶段。对于已使用 transformers v5 的用户是必选修复；对于旧版本用户无影响。不涉及推理性能、内存或精度变化。
- 风险标记：低风险

# 关联脉络

- 暂无明显关联 PR