MMMU 数据集下 dataset-args.prompt_template 被写入配置但未实际生效
自查清单
在提交 issue 之前,请确保您已完成以下步骤:
问题描述
在使用 evalscope eval 评测 MMMU 数据集时,我通过 --dataset-args 传入了自定义的 prompt_template。从生成的 task_config_*.yaml 中可以看到:
dataset_args.mmmu.prompt_template已经被正确设置为我传入的字符串。
但是在实际评测过程中,我抓取到发送给 OpenAI 兼容接口的请求后发现:
- 模型收到的 prompt 仍然是 MMMU 内置的默认模板样式,而不是我自定义的
prompt_template; - 看起来
dataset-args中的prompt_template虽然被解析并写入配置,但在构造实际 prompt 时被忽略或没有完整生效。
我想确认:
- MMMU 目前是否应该支持通过
dataset-args.prompt_template来覆盖默认 prompt? - 如果理论上应该支持,这是否是 MMMU adapter 或 DataAdapter 部分的 bug?
- 如果目前设计上不支持覆盖,是否可以在文档中说明,或者考虑后续支持?
EvalScope 版本(必填)
v1.1.1
使用的工具
- [x] Native / 原生框架(
evalscope eval,使用--eval-type openai_api调用 OpenAI 兼容服务) - [ ] Opencompass backend
- [ ] VLMEvalKit backend
- [ ] RAGEval backend
- [ ] Perf / 模型推理压测工具
- [ ] Arena / 竞技场模式
执行的代码或指令
evalscope eval \
--model 'Qwen3-VL-8B-Instruct' \
--api-url 'http://127.0.0.1:8801/v1/chat/completions' \
--eval-type 'openai_api' \
--datasets mmmu \
--limit 10 \
--dataset-args '{
"mmmu": {
"few_shot_num": 0,
"prompt_template": "Answer the following multiple choice question directly, without showing any reasoning or explanation. Respond strictly in the format: '\''ANSWER: $LETTER'\'' (without quotes), where LETTER is one of {letters}.\n\n{question}\n\n{choices}"
}
}' \
--generation-config '{"max_tokens":256,"temperature":0}'
这个主要是因为MMMU有两个prompt,分别对应多选题和开放问答,两个prompt是固定下来的,因此设置prompt_template并不生效。后续会开发一个prompt管理模块,方便prompt使用和覆盖,参考 https://github.com/modelscope/evalscope/issues/930
这个主要是因为MMMU有两个prompt,分别对应多选题和开放问答,两个prompt是固定下来的,因此设置prompt_template并不生效。后续会开发一个prompt管理模块,方便prompt使用和覆盖,参考 https://github.com/modelscope/evalscope/issues/930
好的好的,也就是说MMMU比较特殊是吧,是不是其他大多数多模态Benchmark的prompt template是可以自己指定的?我想改这个prompt template的主要原因是这个template是cot的,我想不cot直接出答案,这样评测快一点
这个主要是因为MMMU有两个prompt,分别对应多选题和开放问答,两个prompt是固定下来的,因此设置prompt_template并不生效。后续会开发一个prompt管理模块,方便prompt使用和覆盖,参考 #930
好的好的,也就是说MMMU比较特殊是吧,是不是其他大多数多模态Benchmark的prompt template是可以自己指定的?我想改这个prompt template的主要原因是这个template是cot的,我想不cot直接出答案,这样评测快一点
是的,大部分都支持修改prompt template
这个主要是因为MMMU有两个prompt,分别对应多选题和开放问答,两个prompt是固定下来的,因此设置prompt_template并不生效。后续会开发一个prompt管理模块,方便prompt使用和覆盖,参考 #930
好的好的,也就是说MMMU比较特殊是吧,是不是其他大多数多模态Benchmark的prompt template是可以自己指定的?我想改这个prompt template的主要原因是这个template是cot的,我想不cot直接出答案,这样评测快一点
是的,大部分都支持修改prompt template
好的多谢,希望以后evalscope能够支持非CoT评测~