eval-scope icon indicating copy to clipboard operation
eval-scope copied to clipboard

MMMU 数据集下 dataset-args.prompt_template 被写入配置但未实际生效

Open tcy6 opened this issue 1 month ago • 4 comments

自查清单

在提交 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 时被忽略或没有完整生效

我想确认:

  1. MMMU 目前是否应该支持通过 dataset-args.prompt_template 来覆盖默认 prompt?
  2. 如果理论上应该支持,这是否是 MMMU adapter 或 DataAdapter 部分的 bug?
  3. 如果目前设计上不支持覆盖,是否可以在文档中说明,或者考虑后续支持?

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}'

tcy6 avatar Nov 11 '25 09:11 tcy6

这个主要是因为MMMU有两个prompt,分别对应多选题和开放问答,两个prompt是固定下来的,因此设置prompt_template并不生效。后续会开发一个prompt管理模块,方便prompt使用和覆盖,参考 https://github.com/modelscope/evalscope/issues/930

Yunnglin avatar Nov 12 '25 06:11 Yunnglin

这个主要是因为MMMU有两个prompt,分别对应多选题和开放问答,两个prompt是固定下来的,因此设置prompt_template并不生效。后续会开发一个prompt管理模块,方便prompt使用和覆盖,参考 https://github.com/modelscope/evalscope/issues/930

好的好的,也就是说MMMU比较特殊是吧,是不是其他大多数多模态Benchmark的prompt template是可以自己指定的?我想改这个prompt template的主要原因是这个template是cot的,我想不cot直接出答案,这样评测快一点

tcy6 avatar Nov 12 '25 06:11 tcy6

这个主要是因为MMMU有两个prompt,分别对应多选题和开放问答,两个prompt是固定下来的,因此设置prompt_template并不生效。后续会开发一个prompt管理模块,方便prompt使用和覆盖,参考 #930

好的好的,也就是说MMMU比较特殊是吧,是不是其他大多数多模态Benchmark的prompt template是可以自己指定的?我想改这个prompt template的主要原因是这个template是cot的,我想不cot直接出答案,这样评测快一点

是的,大部分都支持修改prompt template

Yunnglin avatar Nov 12 '25 10:11 Yunnglin

这个主要是因为MMMU有两个prompt,分别对应多选题和开放问答,两个prompt是固定下来的,因此设置prompt_template并不生效。后续会开发一个prompt管理模块,方便prompt使用和覆盖,参考 #930

好的好的,也就是说MMMU比较特殊是吧,是不是其他大多数多模态Benchmark的prompt template是可以自己指定的?我想改这个prompt template的主要原因是这个template是cot的,我想不cot直接出答案,这样评测快一点

是的,大部分都支持修改prompt template

好的多谢,希望以后evalscope能够支持非CoT评测~

tcy6 avatar Nov 12 '25 11:11 tcy6