目录
随着大模型和RAG(Retrieval-Augmented Generation)技术的发展,构建高效、精准的检索系统成为关键挑战。传统的向量检索虽然在语义理解上具有优势,但在召回覆盖率和精确匹配方面仍有提升空间。为了解决这些问题,研究者们提出了多种 索引扩展技术,主要包括:
-
离散索引扩展
-
连续索引扩展
-
混合索引召回
-
Small-to-Big 策略
本文将逐一讲解这些方法的原理、应用和优势,帮助你构建更强大的 RAG 检索系统。
一、离散索引扩展:用关键词与实体提升检索精度
离散索引基于传统文本匹配方式,如关键词提取、实体识别等,是对语义向量检索的有效补充。通过构建关键词和命名实体等索引,可以提升系统在 精准匹配 场景下的召回能力。
1.1 关键词抽取
关键词是反映文档核心内容的词语,通过 TF-IDF、TextRank 等算法从文档中提取。
示例文档:
本文介绍了深度学习模型训练中的优化技巧,包括:
使用 AdamW 优化器替代传统的 SGD;
采用混合精度训练,减少显存占用;
使用分布式训练加速模型训练。
抽取关键词:
["深度学习", "模型训练", "优化技巧", "AdamW", "混合精度训练", "分布式训练"]
当用户查询“如何优化深度学习模型训练?”时,这些关键词可实现高效匹配。
1.2 实体识别(NER)
实体识别是识别文本中的 专名词(人名、地点、奖项等),可以通过 SpaCy、BERT-NER 等模型提取。
示例文档:
2023年诺贝尔物理学奖授予了三位科学家,以表彰他们在量子纠缠领域的研究成果。
识别实体:
["2023年", "诺贝尔物理学奖", "量子纠缠"]
若用户查询“2023年诺贝尔物理学奖的获奖者是谁?”,这些实体可用于快速召回相关文档。
1.3 离散索引(如关键词、实体)
-
特点:基于字符串精确匹配(如 BM25、关键词、NER 实体等)
-
优势:高精度召回
-
匹配度高、歧义少,尤其适合有明确关键词的查询。
-
-
劣势:低覆盖率
-
对措辞差异、语义变化不敏感,容易漏掉相关但表述不同的内容。
-
二、连续索引扩展:融合多种向量模型提升召回能力
连续索引是指基于向量模型构建的语义索引,能够捕捉上下文之间的深层含义。但不同向量模型对语言理解的侧重点不同,因此引入多模型 多路召回 成为一种有效策略。
2.1 多模型融合
将多种向量模型(如 OpenAI Ada、智源BGE、Cohere、E5 等)应用于同一语料构建多个索引。每种模型负责不同语义维度的召回。
模型 | 特点 |
---|---|
OpenAI Ada | 泛化能力强,适合多语言 |
智源 BGE | 对中文任务表现优异 |
E5 | 多任务预训练,支持多领域 |
最终可以通过多路召回、打分融合等方法集成多种结果,提升召回的覆盖率和鲁棒性。
2.2 连续索引(如语义向量、嵌入检索)
-
特点:基于深度模型生成的语义向量表示(如 OpenAI Ada、BGE)
-
优势:高覆盖率
-
能理解相似含义、上下文相关内容,扩大召回范围。
-
-
劣势:相对低精度
-
有时会召回“看起来相关但不准确”的内容,语义泛化可能带来误召。
-
三、混合索引召回:语义+关键词的协同召回
**混合索引(Hybrid Retrieval)**结合了离散索引和连续索引的优点,能够实现 高覆盖率 + 高精度召回。
3.1 实战案例:医疗领域
示例文档:
本文介绍了人工智能在医疗领域的应用,包括:
医学影像分析;
NLP提取电子病历信息;
开发智能诊断系统辅助医生决策。
关键词抽取:
["人工智能", "医疗", "深度学习", "医学影像分析", "自然语言处理", "电子病历", "智能诊断系统"]
实体识别:
["人工智能", "医疗", "自然语言处理"]
结合关键词、实体和语义向量三者,在用户输入“人工智能在医疗中的应用”时能实现更强召回能力和更丰富上下文支撑。
四、Small-to-Big 策略:快速定位 + 深度理解
Small-to-Big 是一种适用于 长文档或大语料库 的检索策略。
4.1 核心思路:
-
索引小规模内容(摘要、关键句、短段落),快速定位目标;
-
链接大规模内容(全文、PDF、上下文),供RAG生成使用;
-
提升效率与连贯性。
4.2 示例:
小规模内容:
-
摘要1:介绍 Transformer 在机器翻译中的应用;
-
关键句:BERT 是基于 Transformer 的预训练模型。
链接内容:
-
完整论文 PDF,包含实验细节和模型结构。
流程:
查询 → 匹配摘要或关键句 → 跳转到全文 → 提供背景给RAG → 输出连贯答案。
这种方式兼顾了 速度(召回小内容) 与 深度(拉取全内容),特别适合多文档和文献类场景。
总结:构建强大检索系统的“索引三件套”
策略类型 | 描述 | 适用场景 |
---|---|---|
离散索引扩展 | 使用关键词、实体补充向量召回 | 精确匹配、高精度检索 |
连续索引扩展 | 多向量模型并行召回 | 提高语义覆盖、多语言任务 |
混合索引召回 | 融合关键词与向量结果 | 提升多样性与准确率 |
Small-to-Big | 小内容索引+大内容跳转 | 文献类、长文档场景 |
对比表:
特性 | 离散索引 | 连续索引 |
---|---|---|
匹配机制 | 关键词/实体匹配 | 语义相似度匹配 |
召回覆盖率 | ⭐较低 | ✅⭐较高 |
召回精度 | ✅⭐较高 | ⭐中等偏低 |
适用场景 | 精准问答、事实匹配 | 模糊搜索、意图理解 |
附:专业术语对照表
专业名词 | 解释 |
---|---|
RAG | Retrieval-Augmented Generation,检索增强生成 |
离散索引 | 基于关键词、实体等离散特征构建的检索索引 |
向量索引 / 连续索引 | 使用语义向量模型构建的索引,捕捉深层语义 |
TF-IDF | 基于词频与逆文档频率的关键词提取算法 |
TextRank | 基于图的关键词提取方法 |
命名实体识别(NER) | 提取文本中人名、地点、组织等命名实体 |
SpaCy / BERT-NER | 常用的实体识别工具或模型 |
Ensemble Retriever | 用于融合多种检索结果的策略模块 |
Small-to-Big | 先检索小内容后链接大内容的检索策略 |
OpenAI Ada | OpenAI 提供的文本嵌入模型 |
智源 BGE | 北京智源研究院开源的中文嵌入模型 |
多路召回 | 多模型或多策略并行召回的机制 |
上下文补充 | 为大模型提供语境信息以生成更优答案 |