c2c模式的网站,个人中心网页设计,网站每年多少钱,儿童摄影网站建设文章目录 FastGPT 引申#xff1a;混合检索完整实例1. 各检索方式的初始结果2. RRF合并过程3. 合并后的结果4. Rerank重排序后5. 最终RRF合并6. 内容总结 FastGPT 引申#xff1a;混合检索完整实例
下边通过一个简单的例子说明不同检索方式的分值变化过程#xff0c;假设我… 文章目录 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)这里 k60
向量检索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.01613. 合并后的结果
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合并
将重排序结果作为第三个来源(k58)进行最终 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.03256. 内容总结
展示如下环节
不同检索方式的分数范围不同RRF 如何将不同分数统一到相同尺度多次出现的文档如何累加 RRF 分数重排序如何提供额外的相关性评分
文档排序综合考虑:
语义相似度(向量检索)关键词匹配(全文检索)语义理解(重排序)在不同搜索结果中的排名位置(RRF)