RAG BM25 算法和重排,微调以外的手段

随着LLM 广泛应用,许多开发者开始通过定制化的调优,进一步提升模型性能。

传统模型微调面临许多挑战,尤其是在处理特定领域的任务时。RAG 应运而生。

微调能够提高模型的专门性,但也面临问题:数据需求大、计算资源要求高、隐私与安全问题,RAG 通过将 LLM 与外部知识库结合,在生成答案时检索相关信息,避免微调的高成本和复杂性。

RAG 包括两个主要部分:知识库创建和生成部分。

知识库创建包括文档分割、嵌入计算和向量存储三个步骤:

将大文档拆分为小片段,便于处理;为每个文档片段计算嵌入,转换为向量表示;将计算得到的嵌入存储在数据库中,便于后续检索。

生成部分包括查询处理、检索和生成回答三个环节:

当用户发出查询时,系统会首先计算查询的嵌入向量,根据查询嵌入检索相关的文档片段;系统将检索到的片段与查询一起输入到LLM,生成最终答案。

如此这般,使得模型能够在不进行微调的情况下,获得高质量的领域特定回答。

------ 以上这些是我们熟知的。

结构图、一图胜过千言:

但为进一步提高检索精度,很多RAG系统采用了混合检索方法,结合传统的关键词检索和语义检索。

BM25 就是基于关键词的检索算法之一!

(根据Anthropic的报告,使用混合检索方法能够将检索结果的准确性提高约1%)

BM25 特别适合检索包含精确关键词的文档,语义检索有助于找到语义相似的内容。

对于包含精确关键词的查询,BM25能迅速定位到相关文档,避免纯粹依赖嵌入模型的不足之处。

dart 复制代码
<document> 
{{WHOLE_DOCUMENT}} 
</document> 
Here is the chunk we want to situate within the whole document 
<chunk> 
{{CHUNK_CONTENT}} 
</chunk> 
Please give a short succinct context to situate this chunk within the overall document for the purposes of improving search retrieval of the chunk. Answer only with the succinct context and nothing else

这里,为每个文档片段生成上下文信息。将给定的片段与相关的上下文信息结合,通过嵌入模型处理片段。生成的嵌入将被存储在标准的向量数据库中。

同时更新BM25索引,这种情况下,使用基于关键词的搜索机制TF-IDF(词频-文档逆向),在每个片段中,添加50到100个标记。但是它会增加大量的开销,因为每个片段都要经过LLM处理,产生大量的标记。

所以,除了关键词算法,RAG 系统中,由于检索时主要依赖欧几里得距离或余弦相似度等基础方法,这种做法可能导致提取结果不够精确。为了进一步提高结果的质量,重新排序模型应运而生。

重新排序模型通过跨注意力机制对查询与文档片段进行比对,能够发现查询与文档之间的重要关系,弥补简单相似度计算模型的不足。

它的场景通常用于在提取到一些潜在相关的文档片段后,对它们进行重新排序,确保生成的回答更准确。

检索模型设计用于提取信息片段,通常紧凑高效,但依赖于基本的提取技术,如欧几里得距离或向量间的余弦相似度,优先考虑提取的速度和数量,可能导致结果不够准确。

相比之下,重新排序模型更复杂且较慢,不适合直接处理大量提取结果,通过重新排序检索模型提取的较小片段集合来优化结果。

其核心优势在于能够在用户查询与每个片段之间进行交叉-cross-attention,发现查询与片段之间的重要关系。

小结

从经验来看,RAG 不是万能的,它仍然依赖于高质量的文档片段和高效检索机制。

实战中,可以根据需求来制定优化策略,灵活使用这里介绍的BM25算法或者重排技术。

本篇通译自:medium.com/towards-art...

相关推荐
paopao_wu几秒前
人脸检测与识别-InsightFace:向量相似性搜索Faiss
人工智能·yolo·目标检测·ocr·faiss
GISer_Jing几秒前
SSE Conf大会分享——UTOO WASM:AI时代的浏览器原生极速研发套件
前端·人工智能·架构·wasm
黑客思维者2 分钟前
LLM底层原理学习笔记:上下文窗口扩展技术如何突破记忆瓶颈,解锁大模型的长文本理解力
笔记·学习·llm·长文本·上下文窗口
海边夕阳200610 分钟前
【每天一个AI小知识】:什么是Prompt?
人工智能·prompt
KKKlucifer11 分钟前
数据分类分级为基的跨域流通权限动态管控技术:构建安全可控的跨域数据流通体系
大数据·数据库·人工智能
机器之心16 分钟前
NeurIPS 2025 | DePass:通过单次前向传播分解实现统一的特征归因
人工智能·openai
机器之心17 分钟前
NeurIPS 2025 | 英伟达发布Nemotron-Flash:以GPU延迟为核心重塑小模型架构
人工智能·openai
sali-tec19 分钟前
C# 基于halcon的视觉工作流-章65 点云匹配-基于形状
开发语言·人工智能·算法·计算机视觉·c#
科学最TOP21 分钟前
时间序列的“语言”:从语言模型视角理解时序基础模型
人工智能·深度学习·机器学习·时间序列
_codemonster21 分钟前
深度学习实战(基于pytroch)系列(四十四) 优化与深度学习
人工智能·深度学习