ReRank重排序提升RAG系统效果

ReRank重排序提升RAG系统效果


Rerank (重排序)

这是什么

Rerank (重排序) 是 RAG 系统中的重要优化技术。它先使用向量检索获取候选文档, 然后使用专门的重排序模型对这些文档进行重新排序,以提高检索结果的相关性和准确性。

核心优势:

  • 提升检索精度:重排序模型能更准确地判断文档与查询的相关性
  • 优化用户体验:返回更相关的结果,减少无关信息
  • 成本效益:只需对少量候选文档重排序,平衡了效果和成本
  • 多语言支持:支持多语言重排序模型(如 rerank-multilingual-v3.0)

有什么用

主要用途:

  • 提升 RAG 系统的检索质量
  • 优化向量检索的结果排序
  • 提高问答系统的准确率
  • 减少幻觉问题(通过提供更相关的上下文)
  • 企业级知识库检索优化
  • 多语言文档检索优化

示例代码

python 复制代码
import dotenv
import weaviate
from langchain_classic.retrievers import ContextualCompressionRetriever
from langchain_cohere import CohereRerank
from langchain_weaviate import WeaviateVectorStore
from weaviate.auth import AuthApiKey
from langchain_community.embeddings import QianfanEmbeddingsEndpoint

dotenv.load_dotenv()

# 1. 创建向量数据库与重排组件
embedding = QianfanEmbeddingsEndpoint()
db = WeaviateVectorStore(
    client=weaviate.connect_to_wcs(
        cluster_url="your-cluster-url",
        auth_credentials=AuthApiKey("your-api-key"),
        skip_init_checks=True,
    ),
    index_name="ParentDocument",
    text_key="text",
    embedding=QianfanEmbeddingsEndpoint(),
)

# 创建重排序模型
rerank = CohereRerank(model="rerank-multilingual-v3.0")

# 2. 构建压缩检索器
retriever = ContextualCompressionRetriever(
    base_retriever=db.as_retriever(search_type="mmr"),
    base_compressor=rerank,
)

# 3. 执行搜索并排序
search_docs = retriever.invoke("关于LLMOps应用配置的信息有哪些呢?")
print(f"找到 {len(search_docs)} 个相关文档")
for doc in search_docs:
    print(f"- {doc.page_content}\n")

流程图

text 复制代码
    User Query
        │
        ▼
 ┌──────────────────┐
 │  Base Retriever  │
 │  (向量检索)       │
 └────────┬─────────┘
          │
          ▼
  ┌────────────────┐
  │  候选文档列表   │
  │  (Top K)       │
  └────────┬───────┘
           │
           ▼
 ┌──────────────────┐
 │   Rerank Model   │
 │  (重排序模型)     │
 │  - Cohere Rerank │
 │  - BGE Reranker  │
 └────────┬─────────┘
          │
          ▼
  ┌────────────────┐
  │  重新排序结果   │
  │  (按相关性)     │
  └────────┬───────┘
           │
           ▼
      Final Docs
     (Top N 返回)
相关推荐
QQ1__8115175151 小时前
Spring boot名城小区物业管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
前端·vue.js·spring boot
钛态1 小时前
前端微前端架构:大项目的救命稻草还是自找麻烦?
前端·vue·react·web
一粒黑子1 小时前
【实战解析】阿里开源 PageAgent:纯前端 GUI Agent,一行JS让网页支持自然语言操控
前端·javascript·开源
独角鲸网络安全实验室1 小时前
2026微信小程序抓包全解析:从实操落地到合规风控,解锁前端调试新范式
前端·微信小程序·小程序·抓包·系统代理绕过·https证书严格校验·进程隔离
紫微AI1 小时前
前端文本测量成了卡死一切创新的最后瓶颈,pretext实现突破了
前端·人工智能·typescript
GISer_Jing1 小时前
AI前端(From豆包)
前端·aigc·ai编程
IT枫斗者1 小时前
前端部署后如何判断“页面是不是最新”?一套可落地的版本检测方案(适配 Vite/Vue/React/任意 SPA)
前端·javascript·vue.js·react.js·架构·bug
测试修炼手册1 小时前
[测试技术] 深入理解 JSON Web Token (JWT)
前端·json
AI老李1 小时前
2026 年 Web 前端开发的 8 个趋势!
前端
里欧跑得慢1 小时前
15. Web可访问性最佳实践:让每个用户都能平等访问
前端·css·flutter·web