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...

相关推荐
学历真的很重要6 分钟前
PyTorch 零基础入门:从张量到 GPU 加速完全指南
人工智能·pytorch·后端·深度学习·语言模型·职场和发展
mit6.8247 分钟前
[Column] Perplexity 如何构建 AI 版 Google | 模型无关架构 | Vespa AI检索
人工智能
xier_ran22 分钟前
深度学习:梯度检验(Gradient Checking)
人工智能·深度学习·梯度检验
尼古拉斯·纯情暖男·天真·阿玮31 分钟前
基于卷积神经网络的手写数字识别
人工智能·神经网络·cnn
2401_8414956437 分钟前
MoE算法深度解析:从理论架构到行业实践
人工智能·深度学习·机器学习·自然语言处理·大语言模型·moe·混合专家模型
kanimito38 分钟前
大语言模型入门指南:从科普到实战的技术笔记(2)
人工智能·笔记·语言模型
笨鸟笃行38 分钟前
人工智能训练师备考——3.1.1题解
人工智能
小蜜蜂爱编程41 分钟前
做DNN的建议 -- 过拟合篇
人工智能·神经网络·dnn
却道天凉_好个秋43 分钟前
OpenCV(二十五):方盒滤波与均值滤波
人工智能·opencv·均值算法
一水鉴天1 小时前
整体设计 全面梳理复盘 之38 3+1 工具套件(思维工具为根)设计共识暨 DevOps 融合落地路径
人工智能·架构·transformer