第 9 章:评估与效果
小模型要诚实看结果:能聊、能写点代码,但知识浅、选择题接近随机。
1先建立尺子
官方主观对比不是严格 benchmark。常见现象:
- 64M Dense:能展开、代码有时能跑,事实错误密(长江说成省份、万有引力安到爱因斯坦头上)
- 198M-A64M MoE:句子更顺、结构更好,幻觉同样重(甚至把长江说成珠峰)
- 同量级的 chatlm-mini-chinese 事实更稳,但代码和摘要更弱
作者借 GPT 打分的参考:MoE 综合约 68,chatlm-mini 62,Dense 61。结论是小参数下「写得顺」和「写得对」很难兼得。
2工具题:RL 确实有用
20 道数学 Tool-Use:full_sft 12/20(60%),agent 17/20(85%)。模型更会决定「该不该调工具」,并把可验证结果做对。
选权重看任务:聊天和常识用 full_sft;多步工具、可验证求解用 agent。不要假设「RL 版全面更强」。
3客观题成绩怎么读
用 lm-evaluation-harness。这类题不是让模型自由生成,而是比较各选项的条件概率,随机线就是很强的下界。
git clone https://github.com/EleutherAI/lm-evaluation-harness
cd lm-evaluation-harness && pip install -e .
HF_ENDPOINT=https://hf-mirror.com lm_eval --model hf \
--model_args pretrained="/path/to/model",dtype=auto \
--tasks "ceval-valid" --batch_size 16 --device cpu \
--trust_remote_code --apply_chat_template
minimind-3 中文 C-Eval / CMMLU 大约 25 分上下,接近瞎蒙。数据量远小于对照模型,且偏中文、没专门对齐选择题格式。作者写「结果仅供娱乐」是认真的。
4YaRN:把上下文撑长
训练长度有限时,可用 YaRN 做 RoPE 外推。原生权重:
python eval_llm.py --weight full_sft --inference_rope_scaling
Transformers 格式在 config.json 里加 rope_scaling(type 为 yarn,并写清原始最大长度)。官方用不同长度的《西游记》白话测 PPL:长文本上开启 YaRN 后困惑度明显下降。