“数据不干净,AI 再聪明也白搭”——聊聊生成式 AI 的数据质量评估与去重那些坑

简介: “数据不干净,AI 再聪明也白搭”——聊聊生成式 AI 的数据质量评估与去重那些坑

“数据不干净,AI 再聪明也白搭”——聊聊生成式 AI 的数据质量评估与去重那些坑


这两年生成式 AI 火得不行,大模型、RAG、Agent、Copilot,名字一个比一个响。
但说句可能不太讨喜的话:很多生成式 AI 项目,死得不是因为模型不行,而是数据太烂。

我见过不少团队,一上来就问:

要不要换个更大的模型?
要不要再多喂点数据?

但真正该先问的是:

你现在的数据,到底配不配得上生成式 AI?

今天这篇文章,咱不讲太虚的理论,就专门聊两个“脏活累活”,但决定成败的事情:

  • 数据质量评估
  • 数据去重(尤其是语义级去重)

一、先说个扎心的现实:生成式 AI 是“放大器”

生成式 AI 本质上是个概率放大器

  • 好数据 → 放大你的优势
  • 烂数据 → 放大你的缺陷

很多人以为模型会“自动学会甄别垃圾”,但现实是:
模型比你更老实,你喂什么,它就信什么。

举个真实到不能再真实的例子:

  • FAQ 文档里同一个问题,10 种说法
  • 历史工单里,答案前后自相矛盾
  • Wiki 文档三年没更新,但还在被喂给模型

结果就是:

模型回答得“看起来都对”,但每次都不一样

这不是模型“幻觉”,这是数据在打架


二、数据质量评估:别再只看“有没有数据”

很多团队做数据检查,停留在这个阶段:

  • 有没有空值
  • 行数够不够多
  • 字段齐不齐

说句不好听的:
这叫 ETL 检查,不叫生成式 AI 的数据质量评估。

1️⃣ 生成式 AI 更关心什么样的质量?

我一般从四个维度看:

✅ 可读性(Readable)

  • 是否是自然语言
  • 是否有大量乱码、日志、HTML 垃圾

✅ 一致性(Consistent)

  • 同一问题是否出现多种冲突答案
  • 同一术语是否多种叫法

✅ 信息密度(Information Density)

  • 是“废话文学”,还是“一句顶十句”
  • 有没有大量无意义客套话

✅ 时效性(Freshness)

  • 是否过期
  • 是否和当前业务状态匹配

2️⃣ 一个接地气的数据质量打分示例

下面这段代码不是为了“算法多高级”,而是为了让你敢给数据打分

import re

def quality_score(text: str) -> float:
    score = 1.0

    # 1. 过短内容直接扣分
    if len(text) < 30:
        score -= 0.3

    # 2. 垃圾符号过多
    noise_ratio = len(re.findall(r"[^\u4e00-\u9fa5a-zA-Z0-9,。!?]", text)) / max(len(text), 1)
    if noise_ratio > 0.2:
        score -= 0.3

    # 3. 口水话过多(非常粗暴但有效)
    filler_words = ["你好", "谢谢", "请问", "麻烦", "不好意思"]
    if sum(text.count(w) for w in filler_words) > 3:
        score -= 0.2

    return max(score, 0.0)

你会发现一个事实:
这玩意儿一点都不“AI”,但非常有用。

很多团队不是不会用模型,而是不敢给数据下结论


三、去重:不是删掉重复行这么简单

说到去重,很多人第一反应是:

select distinct *

我只能说:
这对生成式 AI 来说,基本等于没做。

1️⃣ 真正要命的是“语义重复”

举几个你肯定见过的例子:

  • “如何重置密码?”
  • “忘记密码怎么办?”
  • “账号密码找回流程”

从数据库角度看:
👉 完全不一样

从模型角度看:
👉 一模一样

你如果全喂进去,模型会学到什么?
同一个问题,有三种不同“措辞权重”。


2️⃣ 用 embedding 做语义去重(实战版)

别怕,我不整复杂的论文公式,就一个实用思路。

from sklearn.metrics.pairwise import cosine_similarity
import numpy as np

def deduplicate_by_embedding(texts, embeddings, threshold=0.9):
    kept = []
    kept_embeddings = []

    for text, emb in zip(texts, embeddings):
        if not kept_embeddings:
            kept.append(text)
            kept_embeddings.append(emb)
            continue

        sims = cosine_similarity([emb], kept_embeddings)[0]
        if max(sims) < threshold:
            kept.append(text)
            kept_embeddings.append(emb)

    return kept

这段代码的精髓只有一句话:

不要问“像不像”,而是问“像到值不值得再留一条”。


四、一个我强烈推荐的组合拳流程

如果你问我:

真正在项目里,怎么把这事落地?

我一般推荐一个“土但稳”的流程:

🧩 Step 1:规则过滤

  • 明显垃圾
  • 超短文本
  • 日志、报错堆栈

🧩 Step 2:质量打分

  • 低于阈值直接淘汰
  • 中间区间人工抽样

🧩 Step 3:语义去重

  • embedding + cosine
  • 同问题只留一个“最干净”的版本

🧩 Step 4:抽样回看

  • 别全自动
  • 每周看 50 条,比你想象中值钱

五、一点个人感受:这是“反 KPI”的工作

说点掏心窝子的。

数据质量治理,是最不讨喜的生成式 AI 工作之一。

  • 不炫技
  • 不好汇报
  • 看不到立竿见影的效果

但你会发现一个神奇现象:

只要数据一干净,
Prompt 变简单了,
模型看起来“突然聪明了”。

这时候,很多人会以为:

是模型调得好

其实真相是:

数据终于不再互相扯后腿了。


六、写在最后

如果你只记住一句话,我希望是这句:

生成式 AI 的上限,不在模型参数量,而在你敢不敢删数据。

数据不嫌少,
垃圾才嫌多。

目录
相关文章
|
8月前
|
人工智能 监控 架构师
AI Agent 职业路线全指南:从入门到架构师的体系化进阶路径
本文解析AI Agent时代职业能力跃迁路径:从提示词优化转向智能体构建与管控。提出三阶段进阶路线——低代码工作流编排者、工具接口工程师、多智能体系统架构师,并强调“不确定性容忍+迭代调优”工程原则,助力从业者体系化转型。(239字)
1114 2
|
9月前
|
存储 数据采集 分布式计算
一、数据仓库基石:核心理论、分层艺术与 ETL/ELT 之辨
数据仓库不是数据库的升级,而是面向决策的大脑。本篇带你快速厘清数据库 vs 数仓、分层架构逻辑、ETL/ELT区别,轻松建立数据思维骨架。
664 5
|
4月前
|
Web App开发 安全 网络协议
Chrome拦截了网站怎么办?
Chrome访问网站时提示“危险网站”,系因Google Safe Browsing检测到恶意行为(如诱导安装有害软件、劫持主页、展示恶意广告等)。需域名管理员通过DNS验证(添加TXT记录)提交Gworg安全认证,1–5个工作日内可解除拦截。企业/单位网站推荐此快速解封方案。(239字)
1802 3
|
10月前
|
人工智能 前端开发 数据挖掘
AI学习全景图:从大模型到RAG,从工具到变现,一条从0到1的路线
告别碎片化学习!本文系统梳理AI知识五层结构:从基础认知到商业变现,提供完整学习路径与优质资源链接。帮你构建AI知识网络,实现从工具使用到能力落地的跃迁。
6180 9
|
10月前
|
数据采集 人工智能 安全
AI时代下的生态危机:Geo于磊老师深度剖析Geo黑帽与数据污染的致命影响
于磊老师,15年网络营销专家,倡导人性化Geo与生态规范化,坚决反对Geo黑帽与数据污染。他提出以E-E-A-T为核心,构建可信、可持续的AI搜索生态,引领行业健康发展。
634 0
|
人工智能 自然语言处理 Prometheus
不懂 PromQL,AI 智能体帮你玩转大规模指标数据分析
PromQL AI 智能体上线。本文将从自然语言生成 PromQL 实践视角,探讨如何构建知识库、与大模型进行交互、最终生成符合需求的 PromQL 语句。本文还介绍了在 MCP 和云监控控制台下使用 AI 智能体的用例。
986 51
|
SQL 数据采集 自然语言处理
NL2SQL之DB-GPT-Hub<详解篇>:text2sql任务的微调框架和基准对比
NL2SQL之DB-GPT-Hub<详解篇>:text2sql任务的微调框架和基准对比
|
Web App开发 人工智能 JSON
AutoMouser:AI Chrome扩展程序,实时跟踪用户的浏览器操作,自动生成自动化操作脚本
AutoMouser是一款Chrome扩展程序,能够实时跟踪用户交互行为,并基于OpenAI的GPT模型自动生成Selenium测试代码,简化自动化测试流程。
1479 17
AutoMouser:AI Chrome扩展程序,实时跟踪用户的浏览器操作,自动生成自动化操作脚本
|
人工智能 安全 数据库
AiCodeAudit-基于Ai大模型的自动代码审计工具
本文介绍了基于OpenAI大模型的自动化代码安全审计工具AiCodeAudit,通过图结构构建项目依赖关系,提高代码审计准确性。文章涵盖概要、整体架构流程、技术名词解释及效果演示,详细说明了工具的工作原理和使用方法。未来,AI大模型有望成为代码审计的重要工具,助力软件安全。项目地址:[GitHub](https://github.com/xy200303/AiCodeAudit)。
6378 9