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

FastGPT 引申:混合检索完整实例

文章目录

    • FastGPT 引申:混合检索完整实例
      • 1. 各检索方式的初始结果
      • 2. RRF合并过程
      • 3. 合并后的结果
      • 4. Rerank重排序后
      • 5. 最终RRF合并
      • 6. 内容总结

FastGPT 引申:混合检索完整实例

下边通过一个简单的例子说明不同检索方式的分值变化过程,假设我们有一个查询:“如何使用Python进行数据分析”

1. 各检索方式的初始结果

向量检索结果 (相似度分数0-1):

1. {
   id: "doc1",
   q: "Python数据分析基础教程",
   score: 0.85,
   type: "embedding"
}
2. {
   id: "doc2",
   q: "数据分析工具pandas使用",
   score: 0.78,
   type: "embedding"
}

全文检索结果 (BM25分数):

1. {
   id: "doc2",
   q: "数据分析工具pandas使用",
   score: 8.5,
   type: "fullText"
}
2. {
   id: "doc3",
   q: "Python编程基础",
   score: 6.2,
   type: "fullText"
}

2. RRF合并过程

使用公式: score = 1/(k + rank),这里 k=60

向量检索RRF分数:

doc1: 1/(60 + 1) = 0.0164
doc2: 1/(60 + 2) = 0.0161

全文检索RRF分数:

doc2: 1/(60 + 1) = 0.0164
doc3: 1/(60 + 2) = 0.0161

3. 合并后的结果

1. {
   id: "doc2",  // 出现在两个结果中
   q: "数据分析工具pandas使用",
   score: [
     {type: "embedding", value: 0.78},
     {type: "fullText", value: 8.5},
     {type: "rrf", value: 0.0325}  // 0.0161 + 0.0164
   ]
}

2. {
   id: "doc1",
   q: "Python数据分析基础教程",
   score: [
     {type: "embedding", value: 0.85},
     {type: "rrf", value: 0.0164}
   ]
}

3. {
   id: "doc3",
   q: "Python编程基础",
   score: [
     {type: "fullText", value: 6.2},
     {type: "rrf", value: 0.0161}
   ]
}

4. Rerank重排序后

假设重排序模型对这些文档评分:

1. {
   id: "doc2",
   q: "数据分析工具pandas使用",
   score: [
     {type: "embedding", value: 0.78},
     {type: "fullText", value: 8.5},
     {type: "rrf", value: 0.0325},
     {type: "rerank", value: 0.92}
   ]
}

2. {
   id: "doc1",
   q: "Python数据分析基础教程",
   score: [
     {type: "embedding", value: 0.85},
     {type: "rrf", value: 0.0164},
     {type: "rerank", value: 0.88}
   ]
}

3. {
   id: "doc3",
   q: "Python编程基础",
   score: [
     {type: "fullText", value: 6.2},
     {type: "rrf", value: 0.0161},
     {type: "rerank", value: 0.75}
   ]
}

5. 最终RRF合并

将重排序结果作为第三个来源(k=58)进行最终 RRF 合并:

doc2: 0.0325 + 1/(58 + 1) = 0.0325 + 0.0169 = 0.0494
doc1: 0.0164 + 1/(58 + 2) = 0.0164 + 0.0167 = 0.0331
doc3: 0.0161 + 1/(58 + 3) = 0.0161 + 0.0164 = 0.0325

6. 内容总结

展示如下环节:

  1. 不同检索方式的分数范围不同
  2. RRF 如何将不同分数统一到相同尺度
  3. 多次出现的文档如何累加 RRF 分数
  4. 重排序如何提供额外的相关性评分

文档排序综合考虑:

  • 语义相似度(向量检索)
  • 关键词匹配(全文检索)
  • 语义理解(重排序)
  • 在不同搜索结果中的排名位置(RRF)

相关文章:

  • SSL: CERTIFICATE_VERIFY_FAILED Error in Python 是什么问题?
  • AES/CBC/PKCS5Padding加密
  • A-LOAM工程笔记(一):工程编译及运行(ubuntu20.04 + ros_noetic)
  • Week3_250303~250309_OI日志(待完善)
  • python学习第四天
  • 3.1 ARM体系结构
  • 【Linux 下Web(Apache/Nginx)入口安全事件及日志溯源流程】
  • 32.C++二叉树进阶1(二叉搜索树)
  • idea实现热部署
  • Leetcode 3469. Find Minimum Cost to Remove Array Elements
  • 在线量化算法(QAT) --学习记录2
  • FastGPT 引申:信息抽取到知识图谱的衔接流程
  • 播放器系列3——解码
  • VLM-E2E:通过多模态驾驶员注意融合增强端到端自动驾驶
  • 如何基于VBA在word中嵌入AI模型实现实时问答(SiliconflowDeepSeek)
  • 编译可以在Android手机上运行的ffmpeg程序
  • nginx accesslog 打印自定义header
  • 厦门大学第3弹:DeepSeek大模型及其企业应用实践(150页PPT,企业人员的大模型宝典)
  • 21.<基于Spring图书管理系统②(图书列表+删除图书+更改图书)(非强制登录版本完结)>
  • 历年湖南大学计算机复试上机真题
  • 哪里有网站开发公司/网站关键词优化办法
  • 新疆维吾尔族城乡建设厅网站/廊坊seo培训
  • 苏州网站建设方法/大量微信群推广代发广告
  • 山东做网站的/google网站搜索
  • 做英语题目的网站/神马网站快速排名软件
  • 自己做网站 需要会什么6/百度经验发布平台