检索增强生成(RAG)是一种新兴的 AI 技术栈,通过为大型语言模型(LLM)提供额外的 “最新知识” 来增强其能力。
基本的 RAG 应用包括四个关键技术组成部分:
上述的基础 RAG 架构可以有效解决 LLM 产生 “幻觉”、生成内容不可靠的问题。
但是,一些企业用户对上下文相关性和问答准确度提出了更高要求,需要更为复杂的架构。一个行之有效且较为流行的做法就是在 RAG 应用中集成 Reranker。
什么是 Reranker?
Reranker (重排器)是信息检索(IR)生态系统中的一个重要组成部分,用于评估搜索结果,并进行重新排序,从而提升查询结果相关性。
在 RAG 应用中,主要在拿到向量查询(ANN)的结果后使用重排器,能够更有效地确定文档和查询之间的语义相关性,更精细地对结果重排,最终提高搜索质量。
目前,重排器类型主要有两种 —— 基于统计和基于深度学习模型的 Reranker:
基于统计的重排器会汇总多个来源的候选结果列表,使用多路召回的加权得分或倒数排名融合(RRF)算法来为所有结果重新算分,统一将候选结果重排。这种类型的重排器的优势是计算不复杂,效率高,因此广泛用于对延迟较敏感的传统搜索系统中。
基于深度学习模型的重排器,通常被称为 Cross-encoder Reranker。由于深度学习的特性,一些经过特殊训练的神经网络可以非常好地分析问题和文档之间的相关性。这类重排器可以为问题和文档之间的语义的相似度进行打分。因为打分一般只取决于问题和文档的文本内容,不取决于文档在召回结果中的打分或者相对位置,这种重排器既适用于单路召回也适用于多路召回。
将重排器整合到 RAG 应用中,可以显著提高生成答案的精确度,因为重排器能够在单路或多路的召回结果中挑选出和问题最接近的文档。
此外,扩大检索结果的丰富度(例如多路召回)配合精细化筛选最相关结果(Reranker)还能进一步提升最终结果质量。
使用重排器可以排除掉第一层召回中和问题关系不大的内容,将输入给大模型的上下文范围进一步缩小到最相关的一小部分文档中。
通过缩短上下文, LLM 能够更 “关注” 上下文中的所有内容,避免忽略重点内容,还能节省推理成本。
追求回答高精度和高相关性的场景中,特别适合使用重排器,例如专业知识库或者客服系统等应用。因为这些应用中的查询都具有很高的商业价值,提升回答准确性的优先级远高于系统性能和控制成本。使用重排器能够生成更准确的答案,有效提升用户体验。
重排器在提高检索相关性的同时,也会增加延迟和计算成本。因此,在检索质量、搜索延迟、使用成本之间进行权衡之后,当前可选择的重排工具并不多,下面介绍三款:
Cohere Rerank 、 BGE Re-Ranker、Jina Reranker
。
Cohere Rerank
Cohere Rerank 是在业界被广泛使用的重排工具,它通常集成在 LangChain 和 LlamaIndex 框架中,使用相对简单。
其背后公司 Cohere 的来头不简单。Cohere 成立于 2019 年,由曾在 Google Brain 和 Cortex 工作的研究人员和工程师创立,其联合创始人之一 Aidan Gomez,是 Transformers 架构的作者之一。
根据不完全统计,Cohere 累计融资已经超过 4.45 亿美元。今年 3 月,还爆出 Cohere 的新一轮融资已进入后期谈判阶段,筹集超 5 亿美元资金,估值有望达到 50 亿美元。
今年 4 月, Cohere 发布了 Rerank 3,各方面都提升了不少,包括:
不过,它是商业闭源的。原本每 1000 次搜索,用户需要花费 1 美元,在升级到 Rerank 3 之后,每 1000 次搜索,需要 2 美元。
BGE Re-Ranker
BGE Re-Ranker 是智源研究院推出检索排序模型,今年 3 月发布了 2.0 版本。
该模型是智源团队在 BGE 系列基础上的新尝试。BGE(BAAI General Embedding)是智源研究院打造的通用语义向量模型。
自 2023 年 8 月发布以来,智源团队陆续发布了中英文模型 BGE v1.0、v1.5 以及多语言模型 BGE-M3。
BGE Re-Ranker v2.0 系列排序模型采用了两种不同尺寸的模型基座:
来看看 BGE Re-Ranker 2.0 的特性:
开源模型现已通过 Hugging Face、Github 等平台发布,采用免费、商用许可的开源协议:
https://github.com/FlagOpen/FlagEmbedding
https://huggingface.co/BAAI
截至今年 3 月,BGE 系列模型全球下载量超过 1500 万,位居国内开源 AI 模型首位。BGE-M3 模型一度跃居 Hugging Face 热门模型前三,其所属代码仓库 FlagEmbedding 位居 GitHub 热门项目前 10;BGE-M3 所带来的全新的通用检索模式也相继被 Milvus、Vespa 等主流向量数据库集成。
Jina Reranker
Jina Reranker 是由神经搜索公司 Jina AI 开发。2022 年,Jina AI 完成 A 轮融资,融资总额已经超过 2 亿人民币。其开发的神经搜索框架 Jina 多次登上 GitHub 全球 Trending 排行榜第一名。
Jina Reranker v2 在今年 6 月发布,在速度、多语言支持和功能上都有显著提升,尤其适用于检索增强生成(RAG)场景。
Jina Reranker v2 的主要优势:
Jina Reranker v2 的特性:
Jina Reranker v2 的应用方式:
Jina Reranker 也是收费的,不过前 100 万个 token 可以免费。10 亿 个 token 是 20 美元,110 亿个 token 要 200 美元。