展开本页目录
开始前准备什么
- 下载完整练习包,在独立目录阅读README与已执行范围。
- 安装requirements.txt指定版本或使用文中目标工具;依赖与模型权重不要混入网站工程。
- 只有明确标为已执行的部分有本次证据;真实模型、账号或GPU步骤按自己的环境另行验证。
- 构造型号精确词与语义两个信号
- 保留各路原始候选
- 创建命名dense与sparse向量
- 运行两路prefetch
- 执行FusionQuery RRF
- 比较稀有型号的召回
- 交付三份排序与配置
1. 构造型号精确词与语义两个信号
稠密向量偏向通用重启内容,稀疏索引7表示Q7型号。所有向量为作者手工设置,目的是观察融合机制。
2. 保留各路原始候选
audit.py分别输出dense和sparse排名,再算作者k=60的参考RRF。这个常数不冒充当前Qdrant默认值。
本题独立目录执行
python reference/audit.py3. 创建命名dense与sparse向量
集合分别配置vectors_config与sparse_vectors_config;两个分支都记录向量名称,避免查询走错字段。
本题SDK或目标环境入口
python reference/run_sdk.py4. 运行两路prefetch
用同一查询分别发Dense向量和SparseVector(indices,values),记录limit和过滤条件。预取过少可能让目标永远进不了融合。
5. 执行FusionQuery RRF
真实query_points把两个Prefetch送进Fusion.RRF,保留实际分数和顺序,不拿作者公式硬断言服务默认分值。
6. 比较稀有型号的召回
查看文档3是否进入候选、融合后位置如何;同时保留只有dense的反例。混合检索仍须用真实任务评估相关性。
7. 交付三份排序与配置
包内提供原生内存Qdrant脚本和作者参考。未运行真实embedding/BM25训练,不能把手工向量结果当生产召回率。
怎样确认已经完成
- 两路rank和分数不能混为同刻度
- 料号与语义改写均有独立真值
- 已运行真实Qdrant内存dense+sparse Prefetch/RRF并保存实际排序;作者k60公式仅参考,未运行真实embedding/BM25或业务召回评估。
常见问题
Qdrant怎么把稠密和稀疏检索结果融合?
命名dense和sparse两种向量,用两路Prefetch交给FusionQuery(RRF)。本包真实内存Qdrant返回1、3、2。
商品型号和语义改写都要能找到,RRF怎么验收?
固定罕见型号、语义改写题与语料,保存dense/sparse/融合三份候选及人工相关性。作者向量可验证机制,不能代替真实业务召回率。
这篇教程哪些步骤已经真正执行?
已运行真实Qdrant内存dense+sparse Prefetch/RRF并保存实际排序;作者k60公式仅参考,未运行真实embedding/BM25或业务召回评估。



