AIGC宇宙 AIGC宇宙

RAG检索全攻略:Embedding与Rerank模型的终极指南

在构建基于检索增强生成(RAG)的系统时,Embedding Model和Rerank Model扮演着至关重要的角色。 比如你正在搭建一个智能搜索引擎,Embedding Model就像是帮你快速找到相关书籍的“图书管理员”,而Rerank Model则像是一位经验丰富的“资深书评人”,负责从一堆书里精准挑选出最符合你需求的那几本。 两者配合,就像一对完美搭档,确保RAG系统既能找到大量信息,又能精准提炼出最关键的内容。

RAG检索全攻略:Embedding与Rerank模型的终极指南

在构建基于检索增强生成(RAG)的系统时,Embedding Model和Rerank Model扮演着至关重要的角色。比如你正在搭建一个智能搜索引擎,Embedding Model就像是帮你快速找到相关书籍的“图书管理员”,而Rerank Model则像是一位经验丰富的“资深书评人”,负责从一堆书里精准挑选出最符合你需求的那几本。两者配合,就像一对完美搭档,确保RAG系统既能找到大量信息,又能精准提炼出最关键的内容。

RAG这玩意儿听起来高大上,其实就是个“外挂大脑”,能让AI在回答问题时不光靠自己那点小聪明,还能从外部知识库里捞点干货出来。核心呢?就是Embedding(嵌入)和Rerank(重排序)。

下面我们逐步解析这两类模型的作用、推荐模型及其部署方法。

Embedding Model简介

Embedding Model的核心任务是将文本、图像或其他数据类型转化为密集向量(Dense Vector),这种向量形式便于快速检索和相似度计算。RAG系统中,Embedding Model主要用于构建知识库并实现高效召回。

Embedding Model的原理(结合RAG)在RAG系统中,Embedding Model的工作原理可以归纳为以下步骤:

文本编码:将文本片段转换为向量(Embedding),该向量捕获了文本的语义信息。

向量存储:将这些Embedding向量存储到如FAISS、Milvus、Qdrant等向量数据库中。

查询编码:用户输入的查询也会通过Embedding Model编码成向量。

相似度检索:利用向量相似度算法(如内积、余弦相似度)在向量数据库中检索最接近的候选文档。

RAG系统的整体效果很大程度上依赖Embedding Model的召回质量,好的Embedding Model能够在第一步就筛出高质量候选文本,极大提升系统性能。

简单理解Embedding:

这家伙就像是给文本办了个“身份证”。我每次看到一段话,脑子里想的都是“怎么把它变成AI能懂的玩意儿?”Embedding就干了这事儿:把文字变成一串数字(向量),而且这串数字还能反映出文字的“灵魂”。比如,“猫”和“狗”在向量世界里靠得近,“汽车”就离得老远。简单来说,它就是个翻译官,把人类语言翻译成AI的数学语言。

在RAG里,我用Embedding把用户的问题和知识库里的文档都变成向量,然后一比对,找出最像的几个。这种“速配”靠的是啥?余弦相似度啊,欧几里得距离啊这些数学小把戏。效率高,覆盖广,这就是Embedding。

Rerank Model简介

Rerank Model的核心任务是在Embedding Model召回的候选文档中,进一步筛选和重新排序,以确保最相关的内容排在前列。Rerank Model通常使用更复杂的深度学习模型来更精准地捕获文本间的语义关系。

简单理解Rerank:

光靠Embedding粗筛还不够,毕竟它有时候会给我捞一堆“歪瓜裂枣”。这时候,Rerank就上场了。这家伙是个挑剔的“二筛大师”,专门从Embedding挑出的Top-K候选里再精选出Top-N。

它不像Embedding那样简单粗暴地比向量,而是用更聪明的方式(比如交叉注意力机制)去算:“喂,这个文档跟问题到底有多搭?”最后,它给我一个分数,我就按分数高低重新排个序,挑出最靠谱的答案。

常用模型介绍

常用Embedding模型及使用场景分类:

图片

常用Rerank模型及使用场景分类:

图片

快速部署模型

本次我们使用Xinference来部署这些模型。

先简单介绍一下Xinference。它是Xorbits团队搞的一个开源推理框架,号称能让你“一行代码换模型”,支持各种语言模型(LLM)、语音识别模型和多模态模型。部署方式也很灵活,云端、本地、甚至笔记本都能跑。听起来挺好,对吧?但咱们得看看它具体能不能搞定这些Embedding和Rerank模型。

Xinference github 地址:

https://github.com/xorbitsai/inference

根据Xinference的GitHub页面和文档,它主打的是:

开源语言模型:比如LLaMA、Mistral、Grok。

嵌入模型(Embedding Models):明确提到支持,像BAAI/bge-large-en、sentence-transformers/all-MiniLM-L6-v2这种。

Rerank模型:也支持,比如BAAI/bge-reranker-large。

所以,从官方宣称来看,Embedding和Rerank模型都可以部署。尤其是BGE系列(包括bge-large-zh、bge-reranker-large),文档里直接点名支持,说明这些热门模型已经适配好了。

本次我们使用Docker进行部署Xinference,执行如下命令拉取镜像:

复制
docker pull xprobe/xinference

执行如下命令运行Xinference:

复制
docker run --name xinference -d -p 9997:9997 -e XINFERENCE_HOME=/data -v </on/your/host>:/data --gpus all xprobe/xinference:latest xinference-local -H 0.0.0.0

详细操作可参考官方文档。

Xinference 绝对能部署前面提到的绝大多数模型,尤其是BGE、SBERT、Cross-Encoder这种热门模型,基本是“开箱即用”。BERT、Chinese-RoBERTa这种需要点手动配置,但也在能力范围内。

Embedding Model与Rerank Model在RAG系统中相辅相成,分别承担着“海选”和“精挑细选”的重要职责。

选择合适的Embedding Model可以提升系统的召回质量,而搭配强大的Rerank Model则能进一步优化结果的相关度和准确性。

无论是构建知识库、智能问答系统,还是搜索引擎,合理地组合这两类模型,才能充分发挥RAG系统的强大潜力。

相关资讯

一文读懂大模型 RAG:检索、增强与生成的技术详解

大模型(Large Language Model,LLM)的浪潮已经席卷了几乎各行业,但当涉及到专业场景或行业细分领域时,通用大模型往往面临专业知识不足的问题。 相对于成本昂贵的“Post-Training”或“Supervised Fine-Tuning”(监督微调,SFT),基于RAG的技术方案成为了一种更优选择。 本文笔者将从RAG所解决的问题及模拟场景入手,详细总结相关技术细节,与大家分享~一、初识:RAG所解决的问题及模拟场景1.
3/4/2025 9:10:00 AM
小喵学AI

RAG系列:问题优化 - 意图识别&同义改写&多视角分解&补充上下文

在实际业务场景中,知识库不会只有单一领域的知识,可能会存在多个领域的知识,如果对用户问题不提前做领域区分,在对基于距离的向量数据库进行检索时,可能会检索出很多与用户问题不属于同一个领域的文档片段,这样的上下文会存在较多的噪音或者不准确的信息,从而影响最终的回答效果。 另一方面知识库中涵盖的知识表达形式也是有限的,但用户的提问方式却是千人千面的,用户遣词造句的方式以及描述问题的角度可能会与向量数据库中存储的文档片段存在差异,这就可能导致用户问题和知识库之间不能很好匹配,从而降低检索效果。 为了解决此问题,我们可以对用户问题进行查询增强,比如对用户问题进行意图识别、同义改写、多视角分解以及补充上下文,通过这几个查询增强方式来更好地匹配知识库中的文档片段,提升检索效果和回答效果。
5/27/2025 12:40:00 AM
燃哥讲AI

基于图的 RAG 方法总结(GraphRAG、 GraphReader、LightRAG、HippoRAG和KAG)

在自然语言处理领域,检索增强生成(RAG)技术通过结合外部知识库与语言模型,显著提升了模型在知识密集型任务中的表现。 近年来,基于图结构的 RAG 方法成为研究热点,通过引入知识图谱的实体关系建模能力,有效解决了传统 RAG 在多跳推理、长文本理解和全局语义捕捉中的局限性。 本文详细分析五种代表性方法:GraphRAG、GraphReader、LightRAG、HippoRAG和KAG ,从实现细节、优缺点及适用场景展开对比。
5/27/2025 12:15:00 AM
Goldma
  • 1