You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Vespa AI混合排序(RRF)配置正确性的技术咨询

Vespa AI混合排序配置正确性确认

我正在评估Vespa AI以适配搜索业务场景,现提供查询请求配置与rank-profile配置如下,希望确认当前排序函数的使用方式是否正确:

查询请求配置

{
  "default-index": "all_text",
  "hits": 200,
  "input.query(query_vector)": [...],
  "input.query(retrieval_vector)": [...],
  "query": "recliner ",
  "ranking": {
    "profile": "rrf_hybrid"
  },
  "yql": "select * from sources vectorized_listings where rank({targetHits:200}nearestNeighbor(img_expl_cre_vector, retrieval_vector), {label:'qv',targetHits:200}nearestNeighbor(img_expl_cre_vector, query_vector), userQuery())"
}

rank-profile配置

rank-profile rrf_hybrid {
      inputs {
        query(retrieval_vector) tensor<float>(x[512])
        query(query_vector)     tensor<float>(x[512])
      }

      function text_score() {
        expression: bm25(title)
      }

      function query_score() {
        # uses the label 'qv' from the second nearestNeighbor
        expression: closeness(label, qv)
      }

      first-phase {
        # sort the 200 hits by their similarity to query_vector
        expression: query_score
      }

      global-phase {
        rerank-count: 200
        expression: reciprocal_rank(text_score,60) + reciprocal_rank(query_score,60)
      }
}

配置正确性分析

  • 多召回源合并逻辑:YQL中同时调用两个向量召回(分别基于retrieval_vector和带qv标签的query_vector)以及文本查询userQuery(),每个召回源都设置targetHits:200,会各自召回200条结果后合并去重,符合混合检索需求,逻辑正确。
  • 第一阶段排序:first-phase使用query_score(对应标签qv的向量召回相似度)对合并结果排序,和注释描述的“按与query_vector的相似度排序200条结果”一致,配置正确。
  • 全局阶段RRF混合排序:
    • text_score基于bm25(title)计算文本匹配得分,对应文本查询信号,关联正确。
    • query_score通过closeness(label, qv)获取第二个向量召回的相似度值,和YQL中给第二个NN设置的label:'qv'对应,取值正确。
    • 使用reciprocal_rank函数分别计算文本得分和向量得分的RRF值并求和,符合Reciprocal Rank Fusion混合排序的标准逻辑,参数(得分字段、k值60)的使用方式正确,最终会基于两个信号的综合排名得分输出结果。

内容的提问来源于stack exchange,提问作者vipulsodha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 17:06:11