AI在线 AI在线

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

作者:
2025-03-26 11:05
在构建基于检索增强生成(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过程中:常见误解与澄清,内含项目升级预告

春节之后的一个月的时间内,微信和小红书上数了下大概有 150 多个过来咨询 RAG 在企业落地的网友,一路聊下来按照对方的诉求大概分为三类,第一种是最多的就是年后返工公司领导让落地 RAG,但是一时没有头绪的过来咨询的;第二种是看过我公众号上的相关案例后,想外包给我来做具体实施的;第三种有点出乎意料的是,相关的媒体来交流行业观察的。 第一种类型也是最开始比较多的,最初我也是问啥答啥,但是大概聊了五六个之后发现情况有点不对,大部分其实是比较基础的问题,或者我认为问大模型能比问我更快扫盲的,再加上后来确实肉眼可见的人在变多,我索性和每个人说如果是咨询的话 200 块每小时(现在涨到了 500),这样就大部分人就索性不问了,虽说前后也是有十几个人很干脆的问完问题后直接发了红包,不过不得不说收费确实是个很好的互相筛选。 以上是碎碎念,言归正传,这篇给大家介绍下我目前几个项目实践踩坑过程中总结出的些经验。
3/4/2025 10:53:59 AM
韦东东

RAG(三)GraphRAG进阶:GraphReader-- 基于图的Agent,让大模型“读懂”长文本

上一篇论文介绍了GraphRAG,今天来看一篇算是其进阶版的方法--GraphReader。 对于其研究动机,简单来说,LLMs具有强大的规划和反思能力,但在解决复杂任务时,如函数调用或知识图谱问答(KGQA),以及面对需要多次推理步骤的问题时,仍然面临困难。 特别是当涉及到长文本或多文档的处理时,现有的方法往往难以充分利用这些模型的能力来捕捉全局信息,并有效地进行决策。
3/13/2025 12:24:34 PM
Glodma