评估集版本:结果变化之前,先确认样本有没有变
模型评估结果前后不同,可能是模型变化,也可能是测试问题或标签被修改。没有数据版本,就很难归因。
问题从哪里出现
模型评估结果前后不同,可能是模型变化,也可能是测试问题或标签被修改。没有数据版本,就很难归因。
理解核心机制
为样本使用稳定 ID,并为排序后的内容生成摘要,可识别一份评估集的具体版本。结果记录还应包含模型、提示词、评分器与运行配置。
动手做一个小实验
Python 3.11 或更新版本,仅使用标准库;将示例保存为 demo.py 后执行 python3 demo.py。数字与样本均为教学演示,不代表真实模型或服务器的测量结果。
import hashlib
import json
cases = [{"id": "q2", "question": "2+2?", "expected": "4"},
{"id": "q1", "question": "1+1?", "expected": "2"}]
assert len({case["id"] for case in cases}) == len(cases)
payload = json.dumps(sorted(cases, key=lambda case: case["id"]),
sort_keys=True, ensure_ascii=False).encode()
version = hashlib.sha256(payload).hexdigest()[:16]
print("dataset:", version, "size:", len(cases))适用边界与常见误区
摘要不保证样本有代表性,也不防止训练数据污染。评估集还需要来源、许可、标注说明和分层覆盖;公开开发集与最终测试集应有所区分。
继续练习
修改一条期望答案并观察版本变化,再为每条样本加上类别和来源,检查哪些业务场景仍未覆盖。