AI产品经理,别急着删数据:真正要交付的是一套可回滚的清洗规则

1 评论 753 浏览 0 收藏 19 分钟

AI项目中的数据清洗远非简单的表格整理,一条看似不规范的记录可能是关键业务信息。本文深入剖析清洗规则制定中的常见误区,提出用规则卡和保留清单确保数据价值不流失,帮助产品经理在AI项目中做出更明智的数据处理决策。

做AI项目时,产品经理经常会收到一句看起来很简单的任务:

这批数据有点脏,上线前先清洗一下。

技术同学开始跑脚本,空值补了,重复项删了,格式统一了。处理后的数据少了一大截,报表里的指标也变得很漂亮。

接入模型一测,效果没提升,原本能回答的问题反而答不上来了。

继续往下查,常见的情况是这样的:缺少标题的文档被当成无效数据删掉了,里面偏偏有一批业务人员整理的常见问题;相似问答被批量合并,不同产品版本的操作说明混成了一条;系统看到手机号和地址就整段过滤,顺手把客服处理这类问题时必须参考的业务规则也删了。

脚本执行得没毛病,数据确实更整齐了。

业务信息一起被洗没了。

这就是AI项目里的数据清洗和普通表格整理最不一样的地方。

以前做报表,看到空值、重复值、格式错误,处理目标相对清楚。到了AI项目里,一条看起来不规范的数据,到底是噪声、异常样本,还是用户真实表达,要结合产品场景判断。

用户输入里的错别字,放在正式知识库中显得很脏,放在Query改写和容错评测中却很有用。

客服聊天里的重复问法,做数据统计时应该去重,训练模型识别高频意图时,它又能反映真实需求。

一份已经过期的产品说明,不能继续参与当前答案生成,但它还要支持历史订单查询,也不能一键删除。

AI产品经理不需要亲自写完所有清洗脚本,但必须回答一件事:哪些数据允许AI学习,哪些只能在特定场景使用,哪些需要人工确认,哪些才可以真正删除。

一、数据清洗最容易出错的地方,不是脚本,是规则

很多刚接触AI项目的产品经理,会把数据清洗理解成技术团队的工作。

技术负责写Python、SQL或者搭清洗工作流,产品给一句需求:把重复的删掉,把错误的修正,把敏感信息过滤掉。

听起来分工挺合理,真正执行时却很容易翻车。

技术可以判断两条文本的相似度,却没法替业务决定什么程度的相似才算重复

两个问题只有一个词不同,既可能是在表达同一个意图,也可能分别对应退款和换货两套流程。两份制度文件大部分内容相同,也可能只是生效日期和适用客户不同。

如果产品只写一句删除重复数据,技术就只能自己猜。

类似的模糊需求还有很多:

  • 删除无效内容,到底什么叫无效
  • 修复错误数据,正确答案以哪个系统为准
  • 过滤过期知识,历史业务是否还需要查询
  • 统一字段格式,原始表达要不要保留
  • 清理敏感信息,是删除整条数据还是局部脱敏
  • 处理异常样本,它是录入错误还是值得保留的长尾场景

这些不是工具自己能做的决定。

产品经理要把模糊的业务判断,翻译成机器可以执行的条件。一条规则得说清楚对谁生效、什么情况下触发、触发后怎么处理、哪些情况属于例外、处理错了怎么恢复。

比如删除重复问答就不算一条合格规则。至少要写成:

当两条问答来自同一产品版本、意图标签相同、审核答案完全一致时,保留最近更新的一条。不同产品版本的数据不得自动合并,先进入隔离区等待业务确认。

规则写到这个颗粒度,开发知道怎么做,业务知道怎么查,产品也能解释某条数据为什么被处理。

如果团队手里只有一份清洗后的文件,没有规则、命中记录和修改版本,后面模型效果出了问题,大家连该从哪里查都不知道。

二、拿到数据先别洗,先问它准备给谁用

举一个AI客服项目里很常见的情况。

业务部门导出一批历史客服会话,里面有错别字、重复咨询、寒暄、表情符号,还有不少只说了半句话的记录。数据团队看完觉得太乱,准备先把无效内容清掉,再交给模型使用。

问题就出在无效这两个字上。

如果这批数据要整理成客服知识库,那么您好、请稍等、感谢您的咨询这类话术确实没什么用。保留标准问题、准确答案和对应的产品版本就够了。

如果要拿它训练意图分类模型,高频重复不能随便删。很多用户都在问怎么退款,这些重复记录反映的是一个真实且高频的需求。只留一条,数据是清爽了,问题的重要程度也被一起抹平了。

如果它要成为AI客服的评测集,错别字、口语和省略句反而应该留下。

真实用户不会按照知识库标题提问。他们会输入退钱怎么还没到、会员关哪儿、买错了咋办。把这些问法全部改成标准书面语,评测结果肯定很好看,上线之后照样挨打。

同一批客服会话,换一个使用目的,清洗方法就得跟着换。

所以,产品经理拿到数据以后,先拉业务、算法和数据同学对齐用途。先别讨论正则表达式,也别急着选工具,把下面四件事说清楚:

  1. 这批数据最后进入哪个环节
  2. 它需要帮助AI完成什么任务
  3. 哪种错误最不能接受
  4. 哪些看起来很脏的数据必须保留

最后一个问题特别容易漏。

大家做数据清洗时,注意力都放在删什么上,很少专门列一份不能删的内容。真到批量处理的时候,没人记得某些错别字要用于容错测试,也没人记得旧版说明还要支持历史订单查询。

所以,清洗规则之外还要有一份保留清单

拿AI客服知识库来说,这份清单可以这样写:不同产品版本的答案不能直接合并;涉及金额、时间和适用条件的句子不能只保留摘要;用户真实口语要单独留一份,用于评测和问题改写;无法判断是否过期的内容先隔离;已经在线上出现过的Bad Case必须进入回归测试集。

这份清单不用写得多漂亮。它的作用就是提醒团队,别顺手把有用的东西也扔了。

三、把一句清掉垃圾数据,写成一张规则卡

用途对齐之后,才轮到写清洗规则。

这里最容易犯的错,是把清洗规则写成动作清单:去重、去空、统一格式、过滤敏感词。看着每一项都对,开发拿到手还是不知道边界在哪里。

我建议把每条规则单独写成一张卡。它不需要另起一份几十页的PRD,用团队现成的文档或表格就能做。

一张能落地的规则卡,至少要包含下面这些内容:

这里有一个很实用的原则:拿不准的数据,先隔离,不要直接删除。

隔离区不是什么复杂系统。小项目用一张单独的数据表就够了,把原始内容、命中规则、隔离原因、处理人和最终结论记下来。

它能解决一个很现实的问题。业务不可能在项目初期把所有边界一次想全,产品也没必要为了等一个模糊答案卡住整批数据。先让确定的规则继续跑,把有争议的数据单独收好,后面集中处理。

处理动作也别只剩下删除。

例如知识库里出现手机号,真正需要处理的是号码本身,可以用占位符替换,没必要删掉整段服务流程。两条问答高度相似,但适用版本不同,可以补充版本标签,而不是强行合并。内容已经过期,可以从当前检索库下架,原文仍然保存在历史库里。

删除很省事,也最难补救。能修正就修正,能补标就补标,拿不准先隔离,确认无用再删除。

四、规则写完别直接全量跑,先看看它准备删谁

清洗脚本最吓人的地方,不是它跑得慢,而是它跑得太快。

一条写错的规则,人工处理一天也就改错几十条。自动化脚本几分钟就能把整批数据处理完。如果原始文件还被覆盖了,基本就是加班套餐。

所以,清洗规则也要像产品功能一样走一遍安全发布。

1、原始数据只读保存

原始层不能被清洗结果覆盖。文件从哪里来、什么时候导出、包含哪些字段、是否已经脱敏,都要有记录。

后面发现规则有问题,原始层就是重跑和恢复的底线。

2、先选一批有代表性的样本

不要只拿最整齐的数据试跑。正常样本、边界样本和高风险样本都要放进去。

比如测试重复问答合并规则,样本里既要有真正的重复,也要有文字相似但产品版本不同的问答,还要放入金额、日期、适用条件略有差异的内容。

只测简单样本,规则几乎都会通过,没什么参考价值。

3、强制输出清洗前后差异

每次试跑都应该输出Diff,让产品和业务看见哪些数据被修改、哪些被删除、哪些进入隔离区。

很多团队验收时只看清洗后的结果,很少回头看被删掉的内容。可真正容易误伤的,恰好都在那里面。

抽检时也别只抽正常数据。删除、改写、合并这三类动作风险最高,优先看它们。

4、重跑旧的Bad Case

数据变干净不等于AI效果变好。每次修改重要规则,都要用已有评测集和线上Bad Case重新跑一遍。

比如知识去重之后,重复率下降了,但同一产品的不同版本也被合并了。数据指标变好,模型回答却开始串版本。这种问题只看清洗报表根本发现不了。

5、规则和数据都要带版本

至少要能回答三个问题:这批数据用的是哪版规则,哪版脚本处理的,最后进入了哪个模型或知识库版本。

线上突然出现错误答案时,团队才能沿着版本往回查。否则大家只能围着最新文件猜来猜去。

小团队不一定要搭复杂平台。规则文档、执行脚本、结果文件和发布记录按同一个版本号管理,已经比临时传文件稳很多。

五、重复率下降了,不代表AI真的变好了

数据清洗完成后,最常见的验收方式是看清洗指标。

重复率降了多少、空值还剩多少、格式错误处理了多少、敏感信息命中了多少。这些都该看,但只能说明数据发生了变化。

它们没法证明产品因此变好了。

假设团队把知识库重复率从很高降到了很低,看起来成绩不错。上线后用户问旧订单规则,AI却拿新版政策回答。清洗过程成功了,业务结果是错的。

清洗验收至少要看三层:

不用每个项目都塞满所有指标。做RAG知识库,就重点看召回和答案准确性;做意图分类,就看分类准确率和长尾意图表现;做智能客服,还要看问题解决率和转人工率。

关键是每一条清洗规则都能对应到一个具体问题。

为什么要删这类数据,它影响了哪个任务指标?为什么要补这个标签,它准备解决哪类错误回答?如果团队说不清,先别急着把规则放进全量流程。

六、线上出了错,先别急着怪模型

AI产品上线以后,Bad Case肯定会来。

用户问会员关闭入口,AI给了旧版路径。用户问退款到账时间,AI把原路退回和余额退回混在了一起。用户用了一个很口语的问法,系统直接说没有相关内容。

这时最没用的一句话就是模型效果不好,再调一下。

答案出错可能发生在很多地方:原始资料本来就错了,文档解析时漏了一段,清洗规则误删了条件,切分把关键上下文拆开了,检索拿错内容,模型生成时又自行发挥了。

产品经理要把Bad Case继续拆下去。

每条Bad Case至少记录:用户原始问题、错误答案、正确答案、命中的知识片段、数据来源、清洗规则版本、知识库版本、问题归因和处理结论。

如果最后确认是清洗规则导致的,就补充例外、调整处理动作或者升级规则版本。这个Bad Case同时进入回归测试集,以后每次发布都重新测。

这里还有一个容易踩的坑。

不要看到模型答错,就立刻修改清洗规则。先确认错误真的发生在数据清洗环节。如果正确知识已经被检索出来,只是模型没按知识回答,问题就在生成侧。硬改数据,不但解决不了,还会引入新的变量。

错题本不是用来攒一堆失败截图的。它得能告诉团队,这次错误改了哪条规则,以及下次怎么确保不再发生。

七、新手第一次接数据清洗项目,先把这5样东西交出来

如果你刚开始做AI产品经理,暂时不用研究一套庞大的数据治理平台。

先把下面五样东西做扎实:

1、数据源和用途清单:数据从哪里来,给哪个AI环节使用,谁对内容正确性负责

2、清洗规则卡:每条规则的触发条件、动作、例外、风险和负责人

3、保留与隔离清单:哪些内容不能删,哪些暂时无法判断,需要人工确认

4、回归测试集:典型问题、边界问题和线上出现过的Bad Case

5、验收与版本记录:这次处理改了什么,谁确认的,进入了哪个数据和模型版本

这五份材料都不复杂,也不一定需要新系统。文档、表格、项目管理工具都能做。

真正重要的是,团队再也不用靠口头记忆回答这些问题:这条数据为什么被删,哪版规则删的,谁确认过,删错了还能不能恢复。

数据清洗不是把文件扔给技术以后等结果,也不是产品经理自己熬夜改Excel。

它更像一次没有界面的产品发布。规则是需求,脚本是实现,抽检和回归是测试,版本记录负责追溯,线上Bad Case继续推动下一轮迭代。

数据不需要被洗得像一张白纸。AI最后要面对的,本来就是充满错别字、省略、冲突和例外的真实业务。

产品经理要做的,是让这些复杂数据在该出现的地方出现,在不该影响结果的地方被拦住。

本文由 @怂怂的AI脑内小剧场 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自作者提供

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. AI项目里的数据清洗,难点不在脚本,在规则。同样一批客服会话,做知识库要删寒暄,做意图分类要留重复,做评测集还得保留错别字。先把用途对齐,再写规则卡和保留清单,拿不准的先隔离,删除前留原始层和版本记录。最后落到一句话:数据不需要洗成白纸,让复杂数据在该出现的地方出现,在该拦住的地方被拦住,这才是真正要交付的东西。

    来自广东 回复