当前位置: 首页 > ai >正文

【RAG 系统高效召回1】评估指标

目录

🧠 RAG 高效召回方法全景图

🔹 1. 数据处理优化

✅ Chunk 粒度调整

✅ 保留结构与元信息

🔹 2. 检索方式增强

✅ Dense 向量检索

✅ Sparse 检索(关键词检索)

✅ Hybrid 检索(混合方式)✅推荐

🔹 3. 查询增强(Query Reformulation)

✅ Query Expansion

✅ Query Rewriting(上下文感知)

✅ Multi-Query Retrieval

🔹 4. 重排序(Re-ranking)

✅ Reranker 模型

🔹 5. 检索流程优化(系统级)

✅ Two-stage 检索

✅ Tool-based 检索

✅ LangGraph + DSPy 任务流程优化

🚀 实战推荐组合(易用 + 高性能)

🧪 Bonus:召回效果评估指标(RAGAS)


🧠 RAG 高效召回方法全景图

 


🔹 1. 数据处理优化

✅ Chunk 粒度调整

  • 常见设置:100~500 tokens

  • 太长 → 检索不准;太短 → 无法传递上下文

  • 推荐用 滑动窗口 + 语义分段

✅ 保留结构与元信息

  • 如:标题 + 正文 拼接

  • 增强查询时的语义匹配能力


🔹 2. 检索方式增强

✅ Dense 向量检索

  • 使用语义向量(Embedding)

  • 适合“语义相关但字面不同”的问题

  • 工具:FAISS, Qdrant, Weaviate

✅ Sparse 检索(关键词检索)

  • 基于关键词(TF-IDF/BM25)

  • 更适合:法律/技术词汇精准命中

  • 工具:Elasticsearch, BM25Retriever

✅ Hybrid 检索(混合方式)✅推荐

  • 将 Dense 与 Sparse 同时使用,做 score 融合

  • 示例:LangChain 的 MultiRetriever

retriever = MultiRetriever(retrievers=[dense_retriever, bm25_retriever],search_type="mmr"
)

 

🔹 3. 查询增强(Query Reformulation)

✅ Query Expansion

  • 将 query 拓展为多个变体(同义、上下位词)

  • 示例:

    • 用户问:“什么是 RAG?”

    • 系统扩展为:“什么是检索增强生成?”、“RAG 的原理是什么?”

✅ Query Rewriting(上下文感知)

  • 基于上下文重写问题,更利于检索

  • 工具:LlamaIndex 的 QueryTransform / LangChain ReAct Agent

from llama_index.query_engine.transform_query_engine import HyDEQueryTransform
query_engine = HyDEQueryTransform(...)

✅ Multi-Query Retrieval

  • 用多个查询同时发起检索(再聚合 Top-k)

  • 示例(LangChain):

retriever = MultiQueryRetriever.from_llm(retriever=base_vector_retriever,llm=ChatOpenAI(),
)

🔹 4. 重排序(Re-ranking)

✅ Reranker 模型

  • 用一个 Cross-Encoder 对 Top-K 检索结果打分

  • 模型推荐:

    • BAAI/bge-reranker-base

    • nq-distilbert-base-v2

  • 工具支持:

    • rerank=True in LlamaIndex

    • Haystack ReRanker Pipeline

reranker = ReRanker(model="BAAI/bge-reranker-base", top_n=5)

 

🔹 5. 检索流程优化(系统级)

✅ Two-stage 检索

  • 第一阶段:快速粗检索(向量 Top-30)

  • 第二阶段:Re-rank or 再召回 Top-5

✅ Tool-based 检索

  • 通过 ReAct / Agent 调用不同的检索源

  • 示例:网页 + PDF + SQL + API 混合问答

✅ LangGraph + DSPy 任务流程优化

  • 通过节点化流程调度检索、问答、验证逻辑

  • 避免 LLM 一步出错带来的全局误差


🚀 实战推荐组合(易用 + 高性能)

组合策略效果评价工具示例
向量检索 + reranker🚀🚀🚀🚀FAISS + BGE-reranker
Hybrid 检索 + reranker🚀🚀🚀🚀🚀BM25 + Dense + Re-ranking
多查询 + 向量检索🚀🚀🚀LangChain MultiQueryRetriever
Query Rewrite + reranker🚀🚀🚀🚀LlamaIndex + HyDE + bge-reranker


🧪 Bonus:召回效果评估指标(RAGAS)

  • Precision@k:前 k 条中相关的比例

  • Recall@k:召回所有相关信息的能力

  • Faithfulness / Factuality:最终生成是否忠实于检索内容

RAGAS 工具可评估你自己的召回链条效果。

http://www.xdnf.cn/news/7264.html

相关文章:

  • 每日Prompt:自拍生成摇头娃娃
  • 【Unity】Unity中将字典序列化
  • 为什么上传大量大文件推荐是使用 app 应用为不是 web 浏览器下载上传呢?
  • Java合并两个列表到目标列表,并且进行排序
  • 解决使用@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss“, timezone = “GMT+8“)时区转换无效的问题
  • leetcode3371. 识别数组中的最大异常值-medium
  • 软件架构之-论高并发下的可用性技术
  • 团队氛围紧张,如何提升工作积极性?
  • 交叉引用、多个参考文献插入、跨文献插入word/wps中之【插入[1-3]、连续文献】
  • 多类别异常检测新SOTA-MVMCAD
  • 中国城市间交通驾车距离矩阵(2024)
  • 人工智能、机器学习与深度学习:概念解析与内在联系
  • tcp/ip协议
  • Oracle buffer cache的内部结构
  • 国家互联网信息办公室关于发布第十一批深度合成服务算法备案信息的公告
  • POJ3107树的重心
  • 代码随想录算法训练营 Day51 图论Ⅱ岛屿问题Ⅰ
  • 开源模型应用落地-模型上下文协议(MCP)-Resource Template-资源模板的使用逻辑(六)
  • 【TTS回顾】深度剖析 TTS 合成效果的客观评估与主观评价
  • 星际争霸小程序:用Java实现策略模式的星际大战
  • 大模型在股骨干骨折诊疗全流程中的应用研究报告
  • 多卡跑ollama run deepseek-r1
  • DRIVEGPT4: 通过大语言模型实现可解释的端到端自动驾驶
  • 数据治理进阶:精读数据治理培训方案【附全文阅读】
  • 我用 CodeBuddy 打造了一个灵感收集应用 —— SparkNotes 开发实录
  • 一周快讯 | 银发文娱旅游一周新鲜事
  • 【日常笔记】wps如何将值转换成东西南北等风向汉字
  • python fastapi + react, 写一个图片 app
  • Cryosparc里头restack的妙用
  • Linux项目部署全攻略:从环境搭建到前后端部署实战