加载中...
加载中...
评测集分数高不等于 Agent 强——测试集一旦被模型见过(进过 few-shot、微调数据、检索语料或缓存日志),分数就会虚高到不可信;评测集污染不报错,只是让你在所有决策上都得出错误结论。
评测集是 AI 测试里唯一说真话的地方,而污染是它最隐蔽的失效模式:题目或答案在你不注意的时候流进了模型能看见的地方,指标依然漂亮,结论已经全错。
污染不需要攻击者,一次「顺手」的 few-shot 取材、一次没去重的微调数据准备、一次把题库写进知识库的操作就够了。它不产生异常日志,不触发告警,只产生虚高的分数——而你会拿这个分数去做上线决策、去写汇报、去应付审计。
所以评测集必须像生产数据一样被管理:版本化、访问控制、按周期换血,并且在每次重大变更后用一份从不参与任何环节的留出集做盲测。
泄漏的四条通道
污染的三种形态
为什么污染极难发现
量化污染的三个可操作抓手
银行语境的额外要求
测试1:n-gram 重叠扫描,把泄漏通道逐个查一遍
测试2:成员推断攻击,测的是「答案泄漏」而不是「题目泄漏」
测试3:时间切片留出集,用三次切分看分数稳不稳
测试4:检索回填检测,专查 RAG 通道
测试5:留出集盲测,上线前最后一道关
坑点1:把评测集当 few-shot 素材库用
改 prompt 时「顺手」从黄金集里挑几个例子贴进去,评测集当天就废了,而且没有任何报错。
正确做法:示例集与评测集物理隔离。示例从独立的训练池取,或固化成单独文件并纳入版本管理,任何人不得从评测集直接复制示例。
坑点2:只查题目重复,不查答案泄漏
n-gram 扫描很容易扫出「题目重复」,但更危险的是「答案泄漏」——题目被改写过,答案却原样留在语料或日志里。只做重叠扫描会漏掉这一类。
正确做法:重叠扫描、成员推断、留出集盲测三件套一起上,任何单一手段都不足以排除污染。
坑点3:一套黄金集用一年不换血
评测集会被反复微调、反复缓存、反复被当示例引用,污染是累积的。用得越久,越不能代表真实水平。
正确做法:按季度换血,旧集转入训练池并保留使用记录,换血时间和原因写进评测报告——银行审计要看这一条。
坑点4:训练和评测共用同一套环境
同一个容器镜像、同一个 prompt cache 目录、同一套 trace 存储,泄漏会在你不知道的情况下发生,而且事后无法归因。
正确做法:评测跑在独立命名空间和独立缓存前缀下,训练产物与评测资产的访问权限分开授权。
「分享到微信」:手机浏览器打开时一键调起系统分享面板,选择微信即可分享到朋友圈或聊天。电脑上回退为复制文案。
暂无留言,来说两句吧