Re-Ranking 是 如何帮助大模型和RAG实现优化检索

检索增强生成(RAG)-重新排序方法 如图 1 所示,重新排序的任务就像一个智能过滤器。当检索器从索引集合中检索出多个上下文时,这些上下文可能与用户的查询具有不同的相关性。有些上下文可能非常相关(图 1 中红色方框中突出显示的内容),而其他上下文可能只是略有相关甚至不相关(图 1 中绿色和蓝色方框中突出显示的内容)。重新排序的任务是评估这些上下文的相关性,并优先选择最有可能提供准确和相关答案的上下文。这样,LLM 就能在生成答案时优先考虑这些排名靠前的上下文,从而提高答案的准确性和质量。 阅读详情

基于大型语言模型 (LLM) 的聊天机器人可以通过检索增强生成 (RAG) 提供外部知识来改进。这种外部知识可以减少错误答案(幻觉),并且还可以让模型访问不属于其训练数据的信息。通过 RAG,我们可以提供 LLM 信息,例如 PDF 文档或维基百科文章,作为提示中的附加上下文。

基本RAG的问题

基本的 RAG 管道:使用编码器模型和向量数据库来有效搜索相关文档块。

然而,RAG 聊天机器人遵循数据科学的旧原则:**garbage in, garbage out。**如果文档检索失败,LLM模型就没有机会提供好的答案。

对基本 RAG 管道的改进是使用Re-Ranking。重新排序器将用户的问题和所有最初检索到的文档作为输入,并根据这些文档与问题的匹配程度对这些文档进行重新排序。

下图显示了高级两步检索 RAG 管道,使用双编码器模型进行初始候选检索,并使用交叉编码器模型进行重新排序:

两步检索

使用双编码器进行初始检索

基本的 RAG 管道依赖于矢量数据库,其中我们所有的外部知识都存储为许多文本块的句子嵌入。

给定用户查询,我们将查询转换为嵌入向量,然后在查询嵌入和所有存储的块嵌入之间执行向量相似性搜索(通常通过计算点积)。

这种类型的编码器模型也称为双编码器,它将所有输入独立地转换为嵌入向量。

RAG 系统的基本向量数据库检索:将查询嵌入与所有存储的文档嵌入进行比较。图片由作者提供

由于我们的数据库中可能有数千个文档,并且每个文档都包含许多文本块,因此这个过程需要高效且快速。

另一方面,嵌入向量是文本的压缩表示,最终导致信息丢失。

使用embedding进行相似性搜索速度很快,但不是最可靠的检索技术。

使用交叉编码器Re-Ranking

为什么我们不能直接使用k = 1000双编码器检索文档并将它们填充到提示的上下文中?

首先,上下文长度是有限的。例如,Llama 2 最多有 4,096 个token,GPT-4 最多有 8,192 个token。

其次,如果我们只是将文档塞到上下文中,它们可能会“迷失在上下文中”。因此,最佳文档匹配应该位于上下文的最开始处 [1]。

检索到的文档在上下文中的位置很重要。如果相关文档被填充在上下文中间的某个位置,它将被忽略。

这就是 re-ranking作用所在。

重新排序器的任务是估计每个候选文本与给定文本查询的相关程度的分数。与双编码器不同,交叉编码器同时处理两个输入文本对 [2]。

交叉编码器处理句子对并输出文本相似度得分。

这个想法是首先使用双编码器和嵌入相似性搜索检索候选文档。然后我们使用较慢但更准确的方法对这些文档进行重新排序。

例如,使用重新排序器,我们可以将top_k1 = 25检索到的文档块缩小到最相关的top_k2 = 3块。

实施两步检索

这里我将重点介绍Python中两步检索组件的实现。

为了激励 RAG,我向 Google 的LLM Gemma-2b-it 提出了一个没有任何有关哈利·波特背景的问题:

哈利·波特系列的第一本书最初出版于哪一天?

而LLM给了我这个错误答案,其中两个日期都不正确。

《哈利波特》系列的第一本书《哈利波特与魔法石》最初于 1997 年 9 月 26 日由布鲁姆斯伯里在英国出版,并于 1997 年 11 月 26 日在美国出版。

让我们用 RAG 来解决这个问题!

首先,使用 pip 安装所有必需的库。我在本文中使用 Python 3.10。

!pip install pypdf~=4.2.0``!pip install tiktoken~=0.6.0``!pip install wikipedia~=1.4.0``!pip install langchain~=0.1.16``!pip install torch~=2.2.2``!pip install transformers~=4.40.0``!pip install sentence-transformers~=2.7.0``!pip install faiss-cpu~=1.8.0

在矢量数据库中存储维基百科文章

维基百科目前拥有近700万篇文章,包含超过45亿个单词。

让我们首先将维基百科的一些知识存储在矢量数据库中。

使用LangChain WikipediaLoader,我们可以查询多篇维基百科文章并将它们存储在变量中pages。

from langchain_community.document_loaders import WikipediaLoader``   ``pages = WikipediaLoader(query="Harry Potter", load_max_docs=3, lang="en").load()
`pages`包含检索到的文档的列表。该属性`page_content`包含维基百科文章的全文,该属性`source`包含维基百科文章的 URL。
[Document(page_content="Harry Potter is a series of seven fantasy novels ...", 'source': '<https://en.wikipedia.org/wiki/Harry_Potter>'}),` `Document(page_content="Harry Potter is a film series ...", 'source': '<https://en.wikipedia.org/wiki/Harry_Potter_(film_series)>'}),` `Document(page_content="Harry Potter and the Philosopher\\'s Stone ...", 'source': '<https://en.wikipedia.org/wiki/Harry_Potter_and_the_Philosopher%27s_Stone>'})]``   
完整的文章太长了,所以我们必须使用 LangChain 的文本分割器将它们分割成更小的部分。
from langchain.text_splitter import RecursiveCharacterTextSplitter``   ``text_splitter = RecursiveCharacterTextSplitter.from_huggingface_tokenizer(`    `tokenizer=AutoTokenizer.from_pretrained("sentence-transformers/all-MiniLM-L12-v2"),`    `chunk_size=256,`    `chunk_overlap=16,`    `strip_whitespace=True,``)``docs = text_splitter.split_documents(pages)``   
这将我们的 3 个文档列表减少到具有 18 个较小文档块的`pages`列表。`docs`

现在,让我们加载双编码器模型,我们将使用该模型将所有 18 个文档文本块嵌入到 384 维密集向量中。

from langchain_community.embeddingsimport HuggingFaceEmbeddings``   ``bi_encoder = HuggingFaceEmbeddings(`    `model_name="sentence-transformers/all-MiniLM-L12-v2" , model_kwargs={"device" :"cpu" }``)
我们可以测试编码器模型,看看它是如何工作的:
import numpy as np``embedding1 = bi_encoder.embed_query("Harry Potter")``embedding2 = bi_encoder.embed_query(docs[0].page_content)``   ``print(len(embedding1))``>> 384``   ``print(np.dot(embedding1, embedding2))``>> 0.6636567339217812

接下来,我们创建向量数据库来存储所有嵌入。Faiss 是一个用于高效相似性搜索和密集向量聚类的库,来自 Facebook 研究。

from langchain.vectorstores import FAISS``from langchain_community.vectorstores.utils import DistanceStrategy``   ``faiss_db = FAISS.from_documents(`    `docs, bi_encoder, distance_strategy=DistanceStrategy.DOT_PRODUCT``)

现在我们已经将维基百科文章块存储在 Faiss 数据库中,我们可以在其中搜索新查询:

question = (`    `"On what date was the first book in the Harry Potter series originally published?"``)``retrieved_docs = faiss_db.similarity_search(question, k=25)``   
这将为我们提供前 k 个embeddings。

Re-ranking

CrossEncoder我们可以使用sentence_transformers 库中的类从 Hugging Face 加载交叉编码器模型。以下是在 MS MARCO 数据集上训练的一些交叉编码器的列表。

from sentence_transformers import CrossEncoder``   ``cross_encoder = CrossEncoder(`    `"cross-encoder/ms-marco-TinyBERT-L-2-v2", max_length=512, device="cpu"``)

使用交叉编码器,我们可以对多个文档的查询进行评分。**分数越高,比赛越好。这是一个例子:

cross_encoder.rank(`    `query="Do I like cats?",`    `documents=["I like cats", "I like horses", "I like dogs"],`    `return_documents=True,``)``>>[{'corpus_id': 0, 'score': 9.002287, 'text': 'I like cats'},``>> {'corpus_id': 2, 'score': -6.411062, 'text': 'I like dogs'},``>> {'corpus_id': 1, 'score': -9.557424, 'text': 'I like horses'}]``   
以下是我们如何使用该`rank`函数以及从 Faiss 矢量数据库检索到的文档来获取前 k 个文档:
reranked_docs = cross_encoder.rank(`    `question,`    `[doc.page_content for doc in retrieved_docs],`    `top_k=3,`    `return_documents=True,``)

要提取 LLM 提示的上下文,我们需要组合text每个文档中的密钥:

context ="" .join(doc["text" ] +"\\n"for docin reranked_docs)``   ``print (context)``>>《哈利·波特与魔法石》是英国作家 JK 罗琳创作的奇幻小说。第一部小说在《哈利·波特》系列和罗琳的处女作小说中,故事讲述了一位年轻的巫师哈利·波特在十一岁生日时发现了自己的魔法遗产,当时他收到了霍格沃茨魔法学校的录取通知书,哈利结交了一些亲密的朋友。在学校的第一年里,他遇到了敌人,在朋友罗恩·韦斯莱和赫敏·格兰杰的帮助下,他面临着黑巫师伏地魔的卷土重来,伏地魔杀死了哈利的父母,但在哈利只有 15 个月大时却未能杀死哈利。``该书于 1997 年 6 月 26 日由 Bloomsbury 在英国首次出版,次年由 Scholastic Corporation 出版,书名为《哈利·波特与魔法石》,赢得了大部分英国图书奖。在美国由儿童和其他奖项评判。该书于 1999 年 8 月登上《纽约时报》畅销小说排行榜榜首,并在 1999 年和 2000 年的大部分时间里一直保持在该排行榜的榜首附近。它已被翻译成至少 73 种其他语言,并已被制作成改编成同名长片,以及所有六部续集。该小说已售出超过 1.2 亿册,成为有史以来第四畅销书。``自第一部小说《哈利·波特与魔法石》于 1997 年 6 月 26 日发行以来,这些书籍在全球范围内获得了巨大的受欢迎程度、好评和商业成功。它们吸引了广泛的成年读者和年轻读者,并被广泛认为是现代文学的基石。截至 2023 年 2 月,这些书在全球已售出超过 6 亿册,成为历史上最畅销的系列丛书,并有 85 种语言版本。后四本书连续创下历史上最畅销书籍的记录,最后一期在发行后 24 小时内在英国售出约 270 万册,在美国售出 830 万册。``原七本书被华纳兄弟影业改编成八集同名电影系列。2016 年,《哈利·波特》系列的总价值估计为 250 亿美元,使《哈利·波特》成为有史以来票房收入最高的媒体系列之一。《哈利·波特与被诅咒的孩子》是根据罗琳合写的故事改编的戏剧。”``   
最后,我们可以向 Gemma-2b-it 提问,同时`context`在提示中包含额外的 Wikipedia RAG。现在我们得到了正确的答案:

哈利·波特系列的第一本书《哈利·波特与魔法石》最初由 Bloomsbury 于 1997 年 6 月 26 日出版。

为了更好的可追溯性,我们可以访问前 k 个重新排序的文档的元数据:

print ("对于这个答案,我使用了以下文档:" )``for docin reranked_docs:`    `corpus_id = doc["corpus_id" ]``print (``f"Chunk{corpus_id} from '{retrieved_docs[corpus_id].metadata['title' ]} ' (URL:{retrieved_docs[corpus_id].metadata['source' ]} )"`     `)``   ``>>"对于这个答案,我使用了以下文档:``《哈利·波特与魔法石》中的块 4 (URL: https:// en.wikipedia.org/wiki/Harry_Potter_and_the_Philosopher%27s_Stone)``来自“哈利·波特与魔法石”的块 3 (URL: <https://en.wikipedia.org/wiki/Harry_Potter_and_the_Philosopher%27s_Stone>)``来自“哈利·波特”的块 0 (网址:<https://en.wikipedia.org/wiki/Harry_Potter)”>``   ``使用第一个 URL,我们可以对 LLM 进行事实检查,并发现 1997 年 6 月 26 日是正确的日期。

对于本文顶部的聊天机器人图像,我只需将WikipediaLoader和跨编码器模型添加到我已经存在的 RAG LLM 聊天机器人中即可获得reranked_docs。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

深入浅出:理解RAG中的Re-Ranking机制 Re-Ranking机制作为RAG模型中的一个关键环节,起着至关重要的作用。它在检索完成后对候选文档进行再排序,从而提高了最终生成结果的质量和相关性。本文旨在深入探讨RAG模型中Re-Ranking机制的原理、方法和应用,以便读者更好地理解这一重要组成部分,并能够在实际应用中灵活运用。 阅读详情

相关推荐

ADS交叉耦合振荡器VCO相位噪声优化仿真实践

本文详细介绍了在ADS软件中搭建和优化交叉耦合VCO相位噪声的完整仿真实践。通过谐波平衡与瞬态仿真分析电路性能,并重点阐述了通过提升谐振腔Q值、优化晶体管工作点及改善尾电流源来有效降低相位噪声的具体方法,为射频电路设计提供了实用指南。

weixin_29235923的博客 633

使用Python和LangChain加载Wikipedia内容:一个实用指南

Wikipedia是一个多语言的免费在线百科全书,由志愿者社区(称为Wikipedians)通过开放协作方式编写和维护。它使用名为MediaWiki的基于wiki的编辑系统。作为历史上最大和最受欢迎的参考工具,Wikipedia包含了海量的信息,涵盖了几乎所有领域的知识。本文介绍了如何使用Python和LangChain库来加载Wikipedia的内容。这为开发者提供了一个强大的工具,可以轻松访问和处理大量的结构化知识。

qq_29929123的博客 897

神州数码防火墙(DCN)NAT SSL-VPN配置

SSL-VPN是基于应用层的VPN,采用SSL协议来实现远程接入的一种新型VPN技术,比L2TP更加灵活的VPN方案。是天然的安全远程接入方案。用户可以通过浏览器的HTTPSs登录VPN的网址。SSL-VPN的认证方式包括LDAP,radius,CA,USB Key等方式。 SSL VPN的主要应用场景是保证远程用户能够在企业外部安全\高效的访问企业内部的网络资源

qq_50966485的博客 4558

如何使用 Re-Ranking 改进大模型 RAG 检索

基于大型语言模型(LLMs)的聊天机器人可以通过检索增强生成(RAG)提供外部知识来改进。这种外部知识可以减少错误答案(幻觉),并且使模型能够访问其训练数据中未包含的信息。通过RAG,我们将信息,如PDF文档或维基百科文章,作为额外的上下文提供给我们的LLM。然而,RAG聊天机器人遵循数据科学的老原则:输入垃圾,输出垃圾。如果文档检索失败,LLM模型就没有机会提供一个好的答案。

2301_78285120的博客 1565

新手小白 必须精进的 “ FLASH分区管理Code and Data ” !!!最强文章解析!!!

FLASH“代码区”和“数据区”不是每个项目都必须显式管理,但只要你的产品功能越来越丰富,对可靠性和扩展性要求提高,就一定要学会科学划分和使用。这也是嵌入式工程师进阶路上的必修课!

qq_75157958的博客 933

kali2020.2安装出现的问题并附详细解决办法

kali2020.2的安装

weixin_48776804的博客 3048

使用大模型检索增强 Rerank 模型,检索效果提升太明显了!

RAG 是一种结合了信息检索和文本生成的语言模型技术。简单来说,当你向大语言模型(LLM)提出一个问题时,RAG 首先会在一个大型的文档集合中寻找相关信息,然后再基于这些信息生成回答。Rerank 的工作就像是一个智能的筛选器,当 RAG 从文档集合中检索到多个文档时,这些文档可能与你的问题相关度各不相同。有些文档可能非常贴切,而有些则可能只是稍微相关或者甚至是不相关的。这时,Rerank 的任务就是评估这些文档的相关性,然后对它们进行重新排序。它会把那些最有可能提供准确、相关回答的文档排在前面。

2201_75499313的博客 7132

关于深度可分离卷积

关于深度学习中的深度可分离卷积

qq_45670407的博客 1796

LLM in Reranking——利用LLM进行重排

作者|酯基整理|NewBeeNLPhttps://zhuanlan.zhihu.com/p/660596492后台留言『交流』,加入 NewBee算法讨论组重排器(Reranker)作为信息检索的第二阶段,需要根据查询和文档的相关性,对候选文档做细粒度的排序。经典的重排方法一般使用交叉编码器,结合文档和查询的语义信息进行打分和排序。现有的涉及LLM的重排方法大致可以分为三类:用重排任务微...

Kaiyuan_sjtu的博客 1876

VSCode配置C/C++开发环境:从零安装MinGW-w64并运行第一个C程序

在Windows系统上搭建C语言开发环境时,很多初学者混淆编辑器、编译器与调试器的分工,导致配置过程屡屡受挫。理解VSCode作为轻量级编辑器的定位,以及MinGW-w64提供的gcc编译器在源码编译中的核心作用,是顺利完成环境配置的关键。环境变量的正确设置直接影响gcc命令能否全局调用,而C/C++插件则赋予编辑器语法高亮与智能提示能力。通过安装VSCode、配置MinGW-w64、安装插件、汉化界面并运行一个最简单的hello.c程序,就能系统掌握这套开源工具链的完整工作流。无论是用于课程学习、算法练习

weixin_42531923的博客 533

NSGA-II 多目标优化 —— 理论、案例与交互式 GUI 实现

本文详细介绍了 NSGA-II 多目标优化算法的基本原理、数学模型和实现流程。从非支配排序、拥挤距离计算到遗传操作,NSGA-II 通过对种群进行分层和排序,能够有效求解多目标优化问题,获得 Pareto 前沿解集。通过机械结构优化、资源分配和控制参数调优等典型案例,我们展示了 NSGA-II 在实际工程中的广泛应用。为帮助工程师和研究者更直观地理解算法求解过程,本文提供了基于 Python 与 PyQt6 的交互式 GUI 演示系统代码示例。

闲人编程的博客 2120

RAG 04:重排序(Re-ranking)技术探讨

重排序(Re-ranking)技术在检索增强生成(Retrieval Augmented Generation,RAG)全流程中起着至关重要的作用。在最原始的 RAG 方法中,可能会检索到大量的上下文,但并非所有上下文都与问题相关。

DEVELOPERAA的博客 1万+

【3天快速入门WPF】1-从最简单的xaml开始

首先我们要知道xaml语法中声明即定义,意思就是“见到元素就相当于创建实例”,MainWindow.xaml的主干是一个元素里包含着一个 元素。这段程序就是在定义一个Window类的实例,这个实例的一个组成部分是一个Grid类的实例。

Zy100Papa的博客 1623

RAG系统检索排序技术深度解析:提升检索质量,大模型开发面试加分秘籍!

本文深入解析RAG系统中的检索排序技术,强调融合排序(稀疏+密集)对提升检索质量的重要性。详细介绍了融合策略、Re-rank方法、Query理解优化及效果评估方案,并提供了面试应对技巧和项目经验撰写建议。掌握这些技术不仅能提升RAG系统性能,也是大模型开发面试中的加分项。

Gaga246的博客 1535

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

《Advanced RAG》-04-深度研究RAG技术Re-ranking

如图 1 所示,重新排序的任务就像一个智能过滤器。当检索器从索引集合中检索出多个上下文时,这些上下文可能与用户的查询具有不同的相关性。有些上下文可能非常相关(图 1 中红色方框中突出显示的内容),而其他上下文可能只是略有相关甚至不相关(图 1 中绿色和蓝色方框中突出显示的内容)。重新排序的任务是评估这些上下文的相关性,并优先选择最有可能提供准确和相关答案的上下文。这样,LLM 就能在生成答案时优先考虑这些排名靠前的上下文,从而提高答案的准确性和质量。

静愚AGI 3784

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Advanced RAG 04:重排序(Re-ranking)技术探讨

本文介绍了两种主要的 Re-ranking 方法,并演示了如何将其融入到 RAG 系统中,提高系统性能。分别是:(1) 使用 Re-ranking 模型直接对检索到的文档和 query 之间的相关性进行评分和排序。作者介绍了一些可用的开源和商业 Re-ranking 模型;(2) 利用大语言模型(LLM)对文档和 query 进行深入理解,通过对相关性程度进行排序来实现 Re-ranking 。文中介绍了 RankGPT 这种基于 LLM 的 Re-ranking 方法。

Baihai_IDP的博客 2823

RAG检索排序优化:大模型开发面试加分项!

本文深入解析RAG系统中的检索排序技术,强调融合排序(稀疏+密集)对提升检索质量的重要性。详细介绍了融合策略、Re-rank方法、Query理解优化及效果评估方案,并提供了面试应对技巧和项目经验撰写建议。掌握这些技术不仅能提升RAG系统性能,也是大模型开发面试中的加分项。

2401_84494441的博客 1110

Re-ranking 从原理到实现的两种主流方法

Re-ranking 从原理到实现的两种主流方法

安静的软件工程师 8904

RAG 中的 Re-ranking(重排序)

是指在初步检索(如向量相似度搜索)得到一个候选片段列表后,用更复杂、更精细的模型或方法对这些候选重新排序,把最相关的结果排到前面,再送给 LLM 生成答案。

find_element_by_id的博客 628

Re-ranking技术如何重塑RAG系统的效率边界?从算法优化到工程实践

本文深入探讨了Re-ranking技术如何优化RAG系统的效率边界,从算法原理到工程实践。通过对比专用Re-ranking模型与LLM方案的优缺点,分析了工业级部署中的延迟与精度权衡、资源优化技巧及混合排序策略。Re-ranking技术能显著提升MRR指标30%以上,是优化信息检索效率的关键工具。

weixin_29189987的博客 380

RAG检索排序深度解析:面试加分+实战技巧,从入门到精通必看

本文深入解析RAG系统中的检索排序技术,强调其决定"检索内容是否靠谱"的关键作用。文章提出融合排序(Hybrid Ranking)策略,结合稀疏检索(BM25)和密集检索(向量相似度)的优势,通过线性加权或Re-ranking模型优化结果。详细介绍了Query理解、效果评估方法及项目经验展示技巧,帮助开发者提升RAG系统召回质量,应对面试挑战,打造高含金量项目经历。

lvaolan的博客 1260

RAG性能优化实战:Chunking、Re-Ranking与Query Transformation三阶精调

RAG(检索增强生成)是一种将外部知识库与大语言模型结合的关键技术,其核心原理在于通过索引、检索、生成三阶段协同工作,缓解幻觉、提升事实准确性。技术价值体现在不改变LLM本身的前提下,显著增强领域问答的可靠性与可控性。典型应用场景包括企业知识库问答、政策法规咨询、医疗文献辅助分析等对信息溯源和精度要求高的工程落地环节。本文聚焦RAG系统中最常失效的三大瓶颈环节——Chunking(语义分块)、Re-Ranking(重排序)与Query Transformation(查询改写),结合真实项目数据与可复现代码,

weixin_30888413的博客 306

RAG技术实战:从文档分块到混合检索的全面优化指南|大模型原理

文章深入探讨了RAG技术的实现细节与优化策略,指出RAG常被视为黑盒导致问题定位困难。文章从文档分块、索引增强、编码、混合检索到重排序等关键环节进行了详细解析,强调需结合具体场景对各模块进行调优,以提升召回率与精确率的平衡。文章倡导从快速使用走向深度优化的实践路径,帮助开发者更好地诊断问题、找到可优化节点,做出更合理的迭代设计。

libaiup的博客 809

RAG 每日一技(七):只靠检索还不够?用Re-ranking给你的结果精修一下

向量检索的Top1就是最佳答案吗?未必!本文揭秘能让RAG效果倍增的进阶技巧:Re-ranking(重排序)。学习如何用Cross-Encoder模型为你的搜索结果“精修”,将真正相关的答案从候选集中“提拔”到首位,告别答非所问

RAG 1116

RAG - 通过 ColBERT的重排了解Re-ranking

re-ranking(重排序)” 是信息检索流程中非常关键的步骤,核心目的是弥补初步召回阶段的不足,提升最终结果的相关性与用户体验。

wangkai6666的博客 895

收藏!一文掌握RAG技术:让大模型“开卷考试“,提升事实准确性

文章全面介绍了RAG(检索增强生成)技术,解释了大模型需要RAG的原因(解决领域知识缺失、幻觉问题等),详细阐述了RAG的核心思想和系统架构。深入探讨了优化RAG系统的方法,包括文档解析、切分策略、嵌入模型选择、索引构建、查询改写、混合检索和重排序等技术,并介绍了评估框架和开发者工具,为构建高效RAG系统提供了全面指导。

datian1234的博客 1054
上一篇: 从做菜的角度来更形象的理解什么是大模型的参数,训练原理与过程,以及为什么要训练?
下一篇: 大语言模型在预训练过程中是如何获取事实知识的?
Python_金钱豹
博客等级 码龄5年 1万+粉丝 2835原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值