检索处理
检索前处理
- 优化分块策略
- 元数据索引
- 结构化索引
- 查询扩展
- 查询重写
检索后处理
- 重排序
- 上下文压缩
检索方式
常见检索方式主要有三类:
- 通过混合检索,能够同时兼容关键词以及语义的匹配, 生成的回答会更准确
| 检索方式 | 核心依据 | 擅长什么 | 不擅长什么 |
|---|---|---|---|
| BM25 检索 | 关键词匹配 | 精确词、术语、编号、标题、代码、专有名词 | 语义理解弱,同义词/换种说法容易漏 |
| 向量检索 | 语义相似度 | 同义表达、自然语言问题、模糊问题 | 精确关键词、数字、编号、短词可能不稳定 |
| 混合检索 | BM25 + 向量 | 同时兼顾关键词精确匹配和语义召回 | 实现和调参更复杂 |
BM25算法检索理解
- BM25理解:Best Matching 25 表示最佳匹配的关键词检索
- 25是算法研究过程中的版本编号,这个算法的最佳匹配的第25个版本
- BM25 通过关键词检索文档 / chunk,然后用 score 分数排序,根据这个score分数来进行文档排序,通过top–k来取高分文档,以及上下文来给到LLM大模型去生成答案
- Elasticsearch (es搜索),这个搜索引擎通过BM25算法来搜索关键词