Shortcuts

提示词预览与调试

修改 Prompt 后不要直接跑完整基准。先预览模型最终接收的输入,再用少量样本验证生成与答案抽取。

Prompt Viewer

python tools/prompt_viewer.py my_eval.py -n -c 3
  • -n:非交互模式,选择第一个模型和数据集;

  • -c:输出的样本数量;

  • -a:检查所有模型—数据集组合;

  • -p PATTERN:只选择简称匹配的 Dataset。

传入完整实验配置时,工具会构建 tokenizer 并展示模型模板处理后的输入,同时报告 token 数;只传数据集配置时,通常只能检查数据集侧 Prompt。

只导出消息

若评测后端或模板不适合 Prompt Viewer,可以使用 --dump-only-message-path 导出构造后的输入。该参数目前仅支持使用 GenInferencer 的数据集配置,建议同时指定 --mode infer,避免继续进入评测阶段:

opencompass my_eval.py \
    --mode infer \
    --dump-only-message-path /opencompass-messages \
    --debug

导出目录按照模型和数据集的 abbr 组织:

/opencompass-messages/
└── gpt-6-astra-response/
    └── demo_gsm8k.jsonl

JSONL 文件每行对应一个样本:

{"message": [{"role": "system", "content": "Answer concisely."}, {"role": "user", "content": "What is 1 + 1?"}], "gold": "2"}

message 是数据集模板完成字段替换和 few-shot 拼接后,再经过模型 meta_template 处理的结果;gold 是未经评测后处理的原始参考答案。导出发生在 model.generate() 之前,因此不会应用其内部的 tokenizer chat template、分词或 API 请求转换,也不会执行模型生成。任务仍会初始化模型对象,且不会产生可用于评分或复用的正式 predictions/ 文件。

@沪ICP备2021009351号-23 OpenCompass Open Platform Service Agreement