Prhub

#29376 Fix test_type_based_dispatcher after TokenizedGenerateReqInput field changes

原始 PR 作者 yctseng0211 合并时间 2026-06-30 13:22 文件变更 1 提交数 2 评论 9 代码增减 +6 / -2

执行摘要

修复测试适配 struct 字段变更

test/registered/utils/test_type_based_dispatcher.py 在 AMD CI 中因 TokenizedGenerateReqInput.__init__() 缺少 input_embedstoken_type_ids 抛出 TypeError。根因是 PR #29214 重构了 IPC 结构体定义,但未同步更新测试构造器。

该 PR 属于常规测试修复,值得精读程度低。但可关注 PR #29214 的结构体变更,若使用相关 IPC 类需注意参数变化。

讨论亮点

无 review 评论或争议。HaiShaw 直接批准并触发 CI。

实现拆解

  1. 添加 input_embeds=Nonetoken_type_ids=None:在两个 TokenizedGenerateReqInput(...) 构造调用中增加缺失的参数,以匹配新的必需字段签名。
  2. 重命名 image_inputsmm_inputs:在两个 TokenizedEmbeddingReqInput(...) 调用中将参数名同步更新为新名称。
  3. 批量构造:对 BatchTokenizedGenerateReqInput 内的嵌套 TokenizedGenerateReqInput 同样应用上述修改。
文件 模块 状态 重要度
test/registered/utils/test_type_based_dispatcher.py 测试 modified 3.4

关键源码片段

test/registered/utils/test_type_based_dispatcher.py test-coverage

唯一变更文件,修正了因 IPC 结构体字段重排和重命名导致的测试失败。

# 修改后的测试构造调用片段
# TokenizedGenerateReqInput:补充新必需的 input_embeds 和 token_type_ids 字段
test_requests.append(
    TokenizedGenerateReqInput(
        input_text="",
        input_ids=[1, 2],
        input_embeds=None, # 新增:从可选变为必需,默认为 None
        mm_inputs=dict(),
        token_type_ids=None, # 新增:从可选变为必需,默认为 None
        sampling_params=SamplingParams(),
        return_logprob=False,
        logprob_start_len=0,
        top_logprobs_num=0,
        token_ids_logprob=[1, 2],
        stream=False,
    )
)# TokenizedEmbeddingReqInput:将 image_inputs 重命名为 mm_inputs
test_requests.append(
    TokenizedEmbeddingReqInput(
        input_text="",
        input_ids=[1, 2],
        mm_inputs=dict(), # 原 image_inputs=dict()
        token_type_ids=[1, 2],
        sampling_params=SamplingParams(),
    )
)

评论区精华

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

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

风险与影响

无风险。仅修正测试文件中的参数匹配问题,不涉及生产代码。

影响范围极小,仅修复单个测试文件,使其通过 CI。对系统稳定性、性能、安全无影响。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论