数据的“信噪比”:我为什么开始重视自动化数据清洗

RAG 的幻觉问题,一半是模型的问题,另一半是喂进去的数据本身就是一锅馊饭。今天被一个客户案例打脸了,他们用自己那套混乱的 CRM 对话记录做知识库,问个标准流程,AI 能给你编出三个版本,还都引用了“原文”,点开一看,全是销售跟客户扯皮的废话和错别字。垃圾进,垃圾出,大模型只是个诚实的垃圾放大器。

我花了整整两天,不是调 prompt,不是改 chunk 策略,而是回到最脏最累的环节:清洗那堆原始数据。这感觉太熟悉了,2017年做爬虫那会儿,跟反爬策略斗智斗勇,最后 80% 的精力都花在解析混乱的 DOM 结构、处理编码错误和去重上。当时觉得是必要之恶,现在明白了,那是数据工程的本质——在噪声里挖信号。现在的噪声更高级了,是语义层面的混乱。

我的自动化清洗流水线现在跑在 n8n 上,核心逻辑就三层。第一层是“物理过滤”:靠规则干掉明显无效数据,比如长度少于 20 字符的碎片、纯数字或乱码字符串、重复率超过 95% 的条目。这里用了简单的指纹算法(SimHash)做初筛,先把量降下来。

第二层是“结构提纯”:针对半结构化数据,比如日志、聊天记录。用正则和简单的 NLP(主要是 spaCy 的实体识别)抽离出“人-时间-事件”核心三元组,把“王总您好我明天下午三点把方案发您邮箱谢谢”这种句子,压成 `{“person”: “王总”, “time”: “明天下午三点”, “action”: “发方案”}` 的干净格式。多余的寒暄、表情符号、语气词,在这一层被剥离。

第三层最耗时,我称之为“语义降噪”。这才是现在的主战场。我用多个轻量级模型(比如 sentence-transformers)做交叉验证。一条信息进来,先用一个模型判断它是否是事实陈述(vs. 观点、疑问、指令)。再用另一个模型,对照已有的高质量知识条目,计算语义相似度,如果和已知正确信息高度相似,只是表述不同,就标准化它;如果和任何可靠信息都低相关,但自信度很高,就打上“待核实”标签,隔离起来,而不是直接丢弃或采纳。这里的关键是设置阈值,太激进会误杀,太保守则洗不干净。

搞这套东西,产品经理的优势反而出来了。程序员兄弟可能想着用一个更牛逼的模型端到端解决,但我知道业务数据里的脏东西有多少种奇葩变体,知道销售为了跳过必填项会在备注栏里塞进整个合同,知道客服会把内部吐槽误发到客户对话流里。这些“脏”的模式,需要被翻译成过滤规则和特征,这不是纯技术问题,这是对业务脏数据的“体感”。

AI 时代,大家都在卷模型选型、卷提示工程、卷向量数据库优化。但没人爱干清洗的脏活。可恰恰是这里,决定了天花板。你喂给 AI 的是米其林食材,它才能做出好菜;你喂的是潲水,就别怪它拉肚子。以前 PM 的核心能力是拆解需求、画原型、写文档,现在我觉得得加一条:数据品位。你得能一眼看出数据集的“成色”,能设计出把脏数据加工成高质量信息饵料的流水线。这不是体力活,这是判断力。没有干净的数据燃料,再漂亮的 RAG 架构都是空中楼阁,一上线就塌。

今天调完流水线,跑了一遍客户数据,回答的准确率从 68% 提到了 89%。提升的这 21 个点,没有一个来自 GPT-4 的升级,全来自我手动给数据“搓澡”。搓澡工不好听,但能治病。

© 版权声明
THE END
喜欢就支持一下吧
点赞35 分享