先把当时的情况摆出来。同一套评测脚本周一跑出 0.78,周五跑出 0.74,中间只发了一版模型,结论自然写成新版本变差。复盘发现回归集被同事补了 200 条样本而且直接覆盖,没有 tag,两次跑的其实是不同数据。git log 也查不到,文件是手工传上去的。
把日志和配置对完,能解释这个现象的基本就这几处。回归集文件被直接覆盖,没有版本号也没有校验和。还有一种是评测报告只记模型版本,不记数据版本。
还有一种情况,补样本时没有同步更新基线分数。另外,两次评测用了不同的采样比例。
算回归集文件的校验和
python -c "import hashlib;print(hashlib.md5(open('test.jsonl','rb').read()).hexdigest())"
再往下把数据版本写进评测报告
python -c "print('dataset_sha + model_id + git_sha')"
接着用固定版本重跑两次确认结果一致
python -c "print('same dataset two runs equal')"
补样本后重新建立基线
python -c "print('baseline 0.76 on v3 dataset')"
别只看报错消失,验证要多做一步。同一数据版本两次评测的分数差在 0.3 个百分点内,报告里能直接看到数据校验和。
评测结论要能追溯到具体数据版本,报告里缺校验和时,两天的分数差异根本无从解释。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
