脏数据进模型,等于把问题放大
模型会把输入的毛病放大 ✔:字段缺失 → 它去猜 ✔;
单位混乱 → 它算错 ✔;重复行 → 它总结出错误结论 ✔。
在进入模型之前做"数据质量前置检查" ✔,比事后调提示词有效得多 ✔。
一、六项前置检查(按顺序)
① 完整性:必填字段有没有?(缺了别让模型猜)
② 类型与范围:数字是不是数字、日期是否合法、枚举是否在表内
③ 一致性:同一实体的写法是否统一("北京"vs"北京市")
④ 去重:完全重复与近似重复
⑤ 单位与量纲:金额币种、长度单位、时间时区
⑥ 时序:日期是否单调、有没有未来时间
第 ⑤ 项最常出事故 ✗:金额没写币种 ✔、长度混用米与英尺 ✔ ——
模型不会问,它会直接算 ✔。
二、检查之后怎么办(三级处置)
| 情况 | 处置 |
|---|---|
| 可修正(大小写、全角半角、多余空格 ✔) | 自动规范化 + 记录 ✔ |
| 需确认(单位缺失、币种不明 ✔) | 停下来问用户 ✔(见校验分级那篇 ✔) |
| 不可用(关键字段缺失 ✔) | 明确拒绝 + 说明缺什么 ✔ |
关键:不要"带着问题往下走" ✗ ——
模型不会因为数据有问题就变谨慎 ✔,它照样给一个看起来很确定的答案 ✔。
三、把质量检查接进链路
- 进模型前统一过一遍 ✔(不要每个功能各写一套 ✔ —— 见生成与校验分离 ✔);
- 检查结果要留痕(多少条被规范化、多少条被拒 ✔ —— 见仅记录那级 ✔);
- 与数据源方对齐(反复出现的同类问题,是上游该改 ✔)。
四、该观测什么
- 前置拒绝率(高了说明上游质量差或检查过严 ✔);
- 自动修正率(按类型统计 ✔);
- 因数据质量导致的失败占比(用失败类型分类衡量 ✔ —— 见失败分类 ✔);
- 上游改进趋势(同类问题是否逐月减少 ✔)。
五、一条判据
抽 20 条失败案例 ✔,有多少能追溯到"输入的某个字段有问题" ✔?
比例高,说明该做前置检查,而不是继续调提示词 ✗。