• 正文
    • Embedding Model简介
    • Rerank Model简介
    • 常用模型介绍
    • 快速部署模型
  • 相关推荐
申请入驻 产业图谱

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

03/19 09:45
2949
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

在构建基于检索增强生成(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系统的强大潜力。

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录