AI Agent重排序:检索结果重排一下,答案质量提升30%
🩺 摘要
向量检索的前5个结果不一定是最相关的。让LLM重新排个序,质量立马提升。成本不高,效果明显。
📝 详情
向量检索的工作原理是语义相似度——它找到"看起来像"的文档。但"看起来像"不等于"最有用"。
重排序(Re-ranking)解决的就是这个问题:让LLM对检索结果重新打分,挑出最相关的。
为什么需要重排序?
向量检索找到的前5个结果往往只有2-3个真正相关。直接把5个都塞给LLM,不仅浪费token,还可能被不相关的内容干扰。
重排序的两种方式
方式1:交叉编码器(Cross-encoder) 专门的重排序模型,比向量检索更准但更慢。
from sentence_transformers import CrossEncoder
ranker = CrossEncoder('BAAI/bge-reranker-v2-m3')
scores = ranker.predict([(query, doc) for doc in results])
方式2:LLM重排序 让LLM自己对结果排序。简单灵活,但贵一些。
效果对比
| 方法 | 准确率 | 延迟 | 额外成本 |
|---|---|---|---|
| 纯向量检索 | 62% | 10ms | 0 |
| 向量+重排序 | 89% | +50ms | 低 |
| LLM重排序 | 94% | +500ms | 中 |
总结
重排序是RAG管道里性价比最高的优化。50ms的额外延迟换30%的准确率提升,这个买卖划算。
💬 评论 (0)