Prhub

#42330 [Frontend] Forward X-data-parallel-rank header on /inference/v1/generate

原始 PR 作者 hallerite 合并时间 2026-05-20 16:58 文件变更 1 提交数 4 评论 0 代码增减 +4 / -0

执行摘要

修复 disagg 端点缺失 data_parallel_rank 转发

/v1/chat/completions/v1/completions 已读取 X-data-parallel-rank 头并传递 data_parallel_rank,但 disagg /inference/v1/generate 端点未实现,导致路由器注入的 DP 路由在 disagg 场景下静默无效。PR body 明确指出这是不一致性(inconsistency),而非新功能。

值得合入,修复明确且安全。PR 本身简单,但可作为理解 disagg 服务与数据并行路由交互的参考。

讨论亮点

无人工 review 评论,仅 claude[bot]gemini-code-assist[bot] 的自动化评论,后者表示无反馈。Reviewed by NickLucche (APPROVED)。

实现拆解

  1. vllm/entrypoints/serve/disagg/serving.pyserve_tokens 方法中,获取 trace_headers 之后、调用 engine_client.generate 之前,新增两行代码:
    • 调用继承自 OpenAIServingself._get_data_parallel_rank(raw_request) 提取请求头中的 data_parallel_rank
    • engine_client.generate 调用中新增 data_parallel_rank=data_parallel_rank 参数。
  2. 无其他文件修改。
  3. 测试:已通过 disagg 服务器端到端测试(7 passed, 1 deselected),未新增单元测试,因为 _get_data_parallel_rank 已有父类测试覆盖。
文件 模块 状态 重要度
vllm/entrypoints/serve/disagg/serving.py 入口服务 modified 5.07

关键符号

serve_tokens

关键源码片段

vllm/entrypoints/serve/disagg/serving.py core-logic

核心修改文件,在 serve_tokens 方法中新增 data_parallel_rank 提取与传递。

# 位于 vllm/entrypoints/serve/disagg/serving.py# ... 前面的代码获取 trace_headers ...
trace_headers = (
    None
    if raw_request is None
    else await self._get_trace_headers(raw_request.headers)
)# 新增 : 从请求头中提取 data_parallel_rank,路由器可注入此头实现 DP 路由
data_parallel_rank = self._get_data_parallel_rank(raw_request)result_generator = self.engine_client.generate(
    engine_input,
    sampling_params,
    request_id,
    lora_request=lora_request,
    trace_headers=trace_headers,
    priority=request.priority,
    data_parallel_rank=data_parallel_rank, # 新增 : 传递 DP rank
)

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低:

  • 仅新增两行代码,调用已有父类方法,路径已在其地端点验证。
  • 当请求头缺失时 data_parallel_rank 默认为 None,行为与 OpenAI 兼容端点一致,无回归路径。
  • 不涉及性能、安全或兼容性风险。

影响范围小,仅 disagg 的 /inference/v1/generate 端点。用户如果已通过路由器注入 X-data-parallel-rank 头,此修复后将正确路由到指定 DP rank。不影响未使用该头的客户端。

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论