4 什么样的数据不应该直接进入知识库
P1 · rag
🏷 标签:rag, data-filtering, privacy, quality
1️⃣ 考察意图
面试官想考察你对 RAG 知识库“数据准入”的工程判断力,而非简单背诵。核心是:你是否理解“知识库不是垃圾桶”,能识别出哪些数据会污染检索结果、降低生成质量,甚至引发合规风险。刁钻点在于:候选人常只提“低质量数据”,忽略隐私(PII)、时效性(过时信息)、版权(侵权内容)和冗余(重复片段)这四类隐形杀手。答好了,能展示你从数据源头把控 RAG 系统可靠性的硬实力,以及处理真实业务场景(如金融、医疗)的合规意识。
2️⃣ 标准答
数据进入知识库前,必须经过四道“安检门”。以下是不应直接入库的典型类型及处理策略:
- 个人隐私信息(PII):如身份证号、手机号、邮箱、银行卡号。直接入库会导致检索时泄露用户隐私,违反 GDPR、个人信息保护法等。工程取舍:完全排除 vs 脱敏。排除最安全,但会丢失上下文(如“张三的病例”)。脱敏(如正则替换为
[REDACTED])保留语义,但需注意脱敏后检索匹配度可能下降。 - 实际坑:正则无法覆盖所有 PII 变体(如“1-2-3-4-5”可能被误判)。解法:叠加 NER 模型(如 spaCy 的
en_core_web_trf)做二次校验,并设置置信度阈值(如 0.85),低于阈值则人工审核。 过时或错误信息:如 2020 年的疫情政策、已下架的产品规格。检索到这类数据会直接误导 LLM 生成。 - 解法:对每个文档打时间戳,入库时设置
expiry_date。检索时用时间过滤器(如timestamp > 2023-01-01)或结合 BM25 的时间衰减权重(score * exp(-λ * days_since_publish))。λ 值需调参,过大会丢弃长尾有用信息。 低质量内容:包括乱码(如 � 字符)、无意义文本(如“abc123”)、机器翻译的垃圾、重复片段(如网页导航栏)。 - 质量评分:用困惑度(perplexity)模型(如 GPT-2 的
perplexity)或规则(如字符熵 < 3.0、重复率 > 0.8)过滤。实际落地中,规则优先(快、无成本),困惑度作为兜底。 - 坑:困惑度对短文本(< 50 tokens)不敏感,容易误判。解法:对短文本单独用规则(如长度 < 20 字符直接丢弃)。 版权受限内容:如付费论文、商业机密、未授权爬取的数据。直接入库可能引发法律诉讼。
- 解法:入库前用哈希(如 SHA-256)与已知版权库比对,或通过元数据(如
source: "proprietary")标记为“仅内部检索”。工程上,对爬虫数据必须做robots.txt合规检查。 冗余数据:如同一篇文章的多个版本(v1、v2),或相似度 > 0.95 的重复块。 - 解法:用 MinHash + LSH 做去重,或基于 embedding 的余弦相似度(阈值 0.9)过滤。注意:embedding 去重计算成本高,适合离线批处理;MinHash 适合流式数据。
总结:数据准入是 RAG 的“守门员”,核心原则是“宁可少入库,不可乱入库”。每类数据需对应具体过滤策略,并记录过滤比例(如“PII 过滤率 5%”)用于监控。
3️⃣ 答题模板(30 秒电梯版)
“这个问题我从数据质量、隐私合规、时效性和冗余控制四个层面回答。质量层面,乱码和低困惑度文本应过滤;隐私层面,PII 需脱敏或排除;时效层面,过时数据要打时间戳并衰减权重;冗余层面,用 MinHash 去重。总结一句:知识库只接受‘干净、合规、新鲜、唯一’的数据。”
4️⃣ 高频追问 & 应对
追问 1:如果用户上传的 PDF 里包含 PII,但脱敏后语义丢失严重,怎么办?
这是典型 trade-off。优先评估业务场景:如果是医疗诊断,PII 必须脱敏(如替换为
[PATIENT]),语义丢失可通过上下文补全(如用 LLM 生成占位符描述)。如果是客服问答,直接排除 PII 片段,因为检索到也无用。实际工程中,我会对脱敏后的 chunk 做一次检索质量测试(如 recall@5 对比),若下降 > 10%,则改用“仅索引脱敏版本,但检索时用原始版本”的混合方案(需严格权限控制)。
追问 2:如何判断一个文档是否“过时”?有没有具体指标?
指标分两类:显式(文档自带时间戳)和隐式(内容暗示)。显式用
last_modified字段,设置过期策略(如 90 天)。隐式用 LLM 做“时效性分类”(如 prompt:“这个文档描述的事件是否已过时?”),但成本高。实际中,我会对高频更新领域(如新闻)用时间衰减权重(λ=0.01),对低频领域(如历史)用静态权重。坑:文档可能部分过时(如“2020 年政策,但 2023 年有修订”),解法是 chunk 级别打时间戳,而非文档级别。
追问 3:低质量数据过滤中,规则和模型怎么分工?
规则负责“快准狠”:正则过滤乱码、长度过滤短文本、重复率过滤垃圾。模型负责“兜底”:困惑度模型过滤语义不通的文本。分工原则:规则处理 80% 的明显问题,模型处理 20% 的模糊案例。实际落地中,规则优先(O(1) 复杂度),模型作为异步后处理(如每小时跑一次)。坑:模型可能误判专业术语(如“ABCD 综合征”被当成乱码),解法是维护一个白名单词典,在困惑度计算前替换。
5️⃣ 避坑 · 常见错误答法
- ❌ 答:“所有数据都可以进知识库,只要做好清洗就行。” → ✅ 正确切入:强调“准入原则”而非“清洗”,指出隐私和版权是红线,清洗无法解决合规问题。
- ❌ 答:“只过滤乱码和重复数据。” → ✅ 正确切入:补充 PII、时效性和版权,展示对 RAG 系统全生命周期的理解。
- ❌ 答:“用 LLM 判断数据质量。” → ✅ 正确切入:指出 LLM 成本高、延迟大,应先用规则和轻量模型(如困惑度)过滤,LLM 仅用于边缘案例。
6️⃣ 简历呼应
- 如果你有 RAG 项目:从“数据过滤模块”切入,描述你如何用正则 + NER 过滤 PII,并统计过滤比例(如 3%),体现工程落地能力。
- 如果你只做过传统 NLP:用“文本分类”类比,说明你如何将困惑度模型(如 GPT-2)迁移到质量评分任务,并对比规则和模型的 F1 值。
- 如果你是校招无项目:聚焦“隐私合规”论文(如《Differential Privacy for RAG》),复现一个 PII 检测 demo,并讨论脱敏对检索 recall 的影响。
- 《RAG 系统数据准入最佳实践》(博客,重点看 PII 脱敏和时效性管理)
- 《MinHash for Near-Duplicate Detection》(论文,理解冗余去重原理)
- 《Perplexity as a Quality Metric for Text》(论文,低质量过滤理论基础)
- 《GDPR 对 RAG 系统的合规要求》(技术报告,隐私红线)
- 《Time-Aware Retrieval in RAG》(博客,时间衰减权重实现细节)