双层 RAG:为什么"结构化知识条目 + 原始切片"比单一向量库更好用

7 阅读5分钟

双层 RAG:为什么"结构化知识条目 + 原始切片"比单一向量库更好用

脱敏说明:本文素材来自一个销售话术知识库项目,原始数据为某主流即时通讯软件的聊天记录。文中将数据来源统称为"业务会话数据",所有平台、厂商、模型名称均已通用化。

一、朴素 RAG 的两个现实问题

最常见的 RAG 做法:把文档切块、向量化、检索 Top-K、塞给模型。用到真实业务会话数据上会立刻撞上两堵墙:

  1. 原始切片质量参差不齐。 一段 5 分钟窗口内的聊天记录里可能有寒暄、跑题、半截对话,直接检索出来喂给模型,噪音很大。
  2. 检索粒度只有一种。 要么全是碎片(模型要自己拼凑),要么全是长篇文档(token 浪费、重点淹没)。

项目的解法是构建两个知识层,检索时分层命中、互为补充。

二、双层知识库的结构

层表(通用命名)内容怎么来的
精炼层知识条目表场景 + 客户说法 + 推荐回复 + 关键要点 + 置信度LLM 从已标注会话中提炼,人工可验证
原始层知识切片表按时间窗口切分的原始会话块规则切片 + 向量化,自动入库

两层都存 Embedding,检索策略是先精后粗、加权融合:

-- 第一步:优先检索精炼层(结构化条目)
SELECT scene, customer_says, recommended_response,
       1 - (embedding <=> :vec) AS similarity
FROM knowledge_articles
WHERE embedding IS NOT NULL
ORDER BY embedding <=> :vec
LIMIT 15;

-- 第二步:精炼层命中不足时,用原始切片补充上下文
SELECT content_block, 1 - (embedding <=> :vec) AS similarity
FROM knowledge_chunks
ORDER BY embedding <=> :vec
LIMIT 10;

<=> 是余弦距离运算符(0~2,越小越相似),1 - 余弦距离 才是通常说的余弦相似度。

三、三个让效果显著变好的细节

1. 人工验证条目加权

经过人工审核的条目,相似度分数乘以 1.3 的权重。这背后是一个朴素的质量观:模型提炼的内容可能有幻觉,人确认过的内容应该优先。加权而非硬过滤,保证了未验证的新内容也有曝光机会。

2. 时间窗口切片而非固定字数切片

会话数据和文章不同,语义边界由"对话停顿"决定。项目以 5 分钟为窗口合并连续消息,比按 500 字硬切更能保持话题完整。切片规则要匹配数据形态,这是常被忽略的一点。

3. 提炼结果带置信度

LLM 提炼每个条目时同时输出置信度评分(0~1)。低置信度条目不进精炼层的前排,只作为候选等人工确认。置信度给了后续排序和审核排序一个统一抓手。

四、数据是怎么流到两层的:完整管线

业务会话库(多个分片数据库)
   │  ETL:账号 ID → 显示名映射、群聊解析、消息类型过滤
   ▼
原始消息表(只追加,不可修改)
   │  清洗:去系统消息/表情/超短消息、PII 脱敏
   ▼
暂存会话表(AI 预标注:分类 + 质量打分)
   │  人工审核界面:确认 / 改分类 / 编辑
   ▼
已标注会话表 ──► ① 时间窗口切片 → 向量化 → 知识切片表(原始层)
              └► ② LLM 提炼"场景-说法-回复-要点" → 知识条目表(精炼层)

这里有一个值得学习的工程纪律:原始表只追加、不可修改。所有清洗和标注都在下游表进行,任何环节出错都能从原始数据重跑,不会"洗坏了就再也找不回来"。

五、什么场景该用双层,什么场景没必要

  • 适合:原始数据噪音大(聊天记录、工单、会议记录)、对回答准确性要求高、有一定人力做抽检。
  • 没必要:数据源本身就是高质量规范文档(产品手册、规章制度),单层切片 + 良好检索已足够,双层反而增加提炼成本和延迟。

六、技术演进与最新差异(2025—2026)

  1. 混合检索成为默认配置。 2026 年的行业共识是纯向量检索不够:关键词/全文检索对专有名词、编号、精确匹配不可替代。pgvector 0.8 起在 SQL 内支持向量搜索与全文搜索的混合排序(hybrid search);独立向量库则普遍提供向量 + BM25 融合。新建系统建议直接做混合检索,而不是在本文的纯余弦方案上再补。
  2. Rerank(重排序)模型普及。 召回阶段用便宜的双塔 Embedding 多取(Top 30~50),再用 Cross-Encoder 重排模型精排到 Top 5,是 2025 年后 RAG 的标准两段式架构,对"原始层噪音大"的问题尤其有效,某种程度上可以替代部分人工加权逻辑。
  3. Agentic RAG 出现。 检索不再是一次性动作:Agent 可以根据第一轮结果改写查询、多轮检索、自主决定查哪个库。2026 年的评测表明,动态多轮检索能显著缩小纯向量 RAG 与 GraphRAG 的差距——但复杂多跳推理上图结构仍有明显优势(后续 GraphRAG 文章会讲)。
  4. 嵌入模型侧。 主流商用嵌入模型已普遍支持 1024 维及以上、Matryoshka 可变维度输出(一个模型可按需截断到 512/256 维),维度选择可以按成本灵活调整,不必死守 1536。

七、小结

双层 RAG 的核心思想是承认原始数据的不完美,用一条"AI 提炼 + 人工确认"的精炼层兜底质量,用原始层保证覆盖。三个可直接抄走的细节:人工验证加权、按数据语义边界切片、提炼结果自带置信度。再往前演进,记得加上混合检索和重排序这两块 2026 年的标准拼图。