RAG与LLM原理及实践(12)--- Milvus RRFRanker的使用场景及源码分析
目录
背景
rrfRanker 简介与实例
核心逻辑
实例
蕴含思想
rrfRanker VS weightedRanker
rrfRanker
weightedRanker
场景使用区别
RRFRanker 使用场景
weightedRanker 使用场景
代码
代码实现
运行结果
修改代码
再次运行结果
源码
源码实现
解释
Ranker 可扩展实现
背景
本专栏虽focus在向量数据库及RAG,但是其编程理念和思想,如果你完全渗透,可以用到很多其他领域,比如实时推荐系统设计,分布式系统设计等。设计理念和编程思想我认为是搞编程首先需要领悟的,当然动手能力也很重要。二者结合,才能所向披靡,和大学讲的唯物主义辩证法差不多,以前觉得拿东西没啥用,想在细品,其思想精髓其实蛮深的。开始今天的主题吧。Milvus hybrid search 中,除了之前给出的weightedRanker进行多seq 排序,另外还有一种rrfRanker的综合排序手段。其实,你如果没有使用Milvus2.4.x 版本,如果你深入理解他的实现原理,照样可以在客户端封装函数实现这一过程。今天主要讲下 rrfRank的使用场景及方式,以及源码的实现方式。最后写下,实际上在 server端,你可以对 baseRanker 进行扩展,实现自己特殊的综合排序机制。当然milvus 在设计时,已经考虑了这点,在server 端留有充分的可扩展性,同时基于现在已有的weightedRanker 与 rrfRanker,实际上已经满足绝大部分落地需求。我将从实现的核心思想,使用,源码,及源码扩展方面进行讲解与说明。
rrfRanker 简介与实例
核心逻辑
RRF(Ranked Retrieval Fu