执行摘要
支持 Kimi 图像预计算 grid_thws 元数据
允许上游预处理模块将已计算好的 grid_thws 直接注入元数据,减少重复计算。PR body 提到:"Allow Kimi-K2.5 image embedding to read grid_thws from preprocessed multimodal metadata."
该 PR 改动很小,属于对已有预处理管道的适配。建议关注后续是否有统一的多模态元数据方案。
允许上游预处理模块将已计算好的 grid_thws 直接注入元数据,减少重复计算。PR body 提到:"Allow Kimi-K2.5 image embedding to read grid_thws from preprocessed multimodal metadata."
该 PR 改动很小,属于对已有预处理管道的适配。建议关注后续是否有统一的多模态元数据方案。
仅修改 python/sglang/srt/models/kimi_k25.py 中 get_image_feature 方法的 grid_thws 获取逻辑:
item.image_grid_thw 改为优先从 item.model_specific_data 字典中获取 image_grid_thw。model_specific_data["image_grid_thw"] 为 None,则回退使用 model_specific_data["grid_thws"] 作为备用字段。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
python/sglang/srt/models/kimi_k25.py |
多模态 | modified | 6.18 |
python/sglang/srt/models/kimi_k25.py
data-contract
核心模型文件,修改了 grid_thws 的获取逻辑,支持从预处理元数据读取。
# python/sglang/srt/models/kimi_k25.py
# 修改后的 get_image_feature 方法片段
# 优先从 item.model_specific_data 中读取 image_grid_thw,
# 若不存在则回退读取 grid_thws 作为兼容
image_grid_thws = []
for item in items:
grid_thw = item.model_specific_data.get("image_grid_thw")
if grid_thw is None:
grid_thw = item.model_specific_data["grid_thws"] # 备用字段,确保上游已设置
image_grid_thws.append(grid_thw)
grid_thws = torch.concat(image_grid_thws, dim=0).to(device)
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
model_specific_data 中同时存在 image_grid_thw 和 grid_thws 但值不同,当前逻辑会优先用 image_grid_thw,可能掩盖错误。item.image_grid_thw 路径被替代为字典访问,若调用方未填充 model_specific_data,get 返回 None 会走 grid_thws 备用字段;只有当 model_specific_data 不包含任何相关键时才会抛出 KeyError。仅影响 Kimi-K2.5(kimi_k25.py)模型加载图像特征时的 grid_thws 来源路径。对其他模型无影响。对用户透明,但需要确保上游预处理模块正确设置 model_specific_data。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论