Source:
有几种重新排序模型是 RAG 管道的热门选择:
Cohere Rerank 使用一个复杂的神经网络(可能基于 Transformer 架构)充当交叉编码器。它将查询和文档一起处理,以精确判断相关性。它是一个专有模型,可通过 API 访问。
首先安装 Cohere 库。
设置 Cohere 和 ContextualCompressionRetriever。
输出:
这些模型来自北京人工智能研究院 (BAAI),并且是开源的(Apache 2.0 许可证)。它们基于 Transformer,可能是交叉编码器,专为重排序任务而设计。它们提供不同大小,例如基础版和大型版。
输出:
Voyage AI 提供专有的神经网络模型(voyage-rerank-2、voyage-rerank-2-lite),可通过 API 访问。这些模型可能是经过精细调整的高级交叉编码器,旨在实现最高的相关性评分。
首先安装 voyage 库
设置 Cohere 和 ContextualCompressionRetriever
输出:
它提供重排序解决方案,包括 Jina Reranker v2 和 Jina-ColBERT 等神经模型。Jina Reranker v2 可能是一种跨编码器风格的模型。Jina-ColBERT 使用 Jina 的基础模型实现了 ColBERT 架构(下文将进行解释)。
使用 JIna 进行重新排名
输出:
ColBERT(语境化后期交互 BERT)是一个多向量模型。它不是用一个向量来表示文档,而是创建多个语境化向量(通常每个标记一个)。它采用“后期交互”机制,将查询向量与编码后的多个文档向量进行比较。这使得文档向量可以预先计算并索引。
安装 Ragtouille 库以使用 ColBERT 重排序器。
现在设置 ColBERT 重新排序器
输出:
FlashRank 被设计为一个非常轻量级且快速的重排序库,通常利用较小且经过优化的 Transformer 模型(通常是较大模型的精简或修剪版本)。它旨在以最小的计算开销,在简单的相似性搜索的基础上显著提升相关性。它的功能类似于交叉编码器,但使用了一些技术来加速处理过程。它通常以开源 Python 库的形式提供。
此代码片段利用 ContextualCompressionRetriever 中的 FlashrankRerank 来提升检索到的文档的相关性。它根据查询“总统对 Ketanji Jackson Brown 的评价如何”的相关性,对基础检索器(用 检索器 表示)获取的文档进行重新排序。最后,它会打印文档 ID 以及压缩后、重新排序后的文档。
输出:
该系列由 Mixedbread AI 提供,包括 mxbai-rerank-base-v2(5 亿个参数)和 mxbai-rerank-large-v2(15 亿个参数)。它们是基于 Qwen-2.5 架构的开源(Apache 2.0 许可证)交叉编码器。其关键区别在于训练过程,在初始训练的基础上融入了三阶段强化学习 (RL) 方法(GRPO、对比学习和偏好学习)。
输出:
评估重排序器非常重要。常用指标有助于衡量其有效性:
选择最佳重排序器需要平衡以下几个因素:
需要权衡利弊:
明智选择:
最佳的重排序器应符合您特定的性能、效率和成本要求。
RAG 的重排序器对于充分利用 RAG 系统至关重要。它们可以优化提供给 LLM 的信息,从而获得更好、更可靠的答案。从高精度交叉编码器到高效的双编码器,再到像 ColBERT 这样的专用模型,各种模型可供选择,开发人员拥有丰富的选择。选择合适的模型需要理解准确度、速度、可扩展性和成本之间的权衡。随着 RAG 的发展,尤其是在处理多样化数据类型方面,RAG 的重排序器将继续在构建更智能、更可靠的 AI 应用中发挥关键作用。谨慎的评估和选择仍然是成功的关键。
全部评论
留言在赶来的路上...
发表评论