Skip to content

Commit

Permalink
Fix alpha for hrbrid search (#9742)
Browse files Browse the repository at this point in the history
  • Loading branch information
hatianzhang authored Dec 29, 2023
1 parent a19504a commit deced4b
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
1 change: 1 addition & 0 deletions llama_index/vector_stores/qdrant.py
Original file line number Diff line number Diff line change
Expand Up @@ -443,6 +443,7 @@ def query(
return self._hybrid_fusion_fn(
self.parse_to_query_result(sparse_response[0]),
self.parse_to_query_result(sparse_response[1]),
# NOTE: only for hybrid search (0 for sparse search, 1 for dense search)
alpha=query.alpha or 0.5,
top_k=query.similarity_top_k,
)
Expand Down
3 changes: 2 additions & 1 deletion llama_index/vector_stores/qdrant_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ def compute_vectors(texts: List[str]) -> Tuple[List[List[int]], List[List[float]
def relative_score_fusion(
dense_result: VectorStoreQueryResult,
sparse_result: VectorStoreQueryResult,
# NOTE: only for hybrid search (0 for sparse search, 1 for dense search)
alpha: float = 0.5,
top_k: int = 2,
) -> VectorStoreQueryResult:
Expand Down Expand Up @@ -140,7 +141,7 @@ def relative_score_fusion(
for node_id in all_nodes_dict:
sparse_sim = sparse_per_node.get(node_id, 0)
dense_sim = dense_per_node.get(node_id, 0)
fused_sim = alpha * (sparse_sim + dense_sim)
fused_sim = (1 - alpha) * sparse_sim + alpha * dense_sim
fused_similarities.append((fused_sim, all_nodes_dict[node_id]))

fused_similarities.sort(key=lambda x: x[0], reverse=True)
Expand Down

0 comments on commit deced4b

Please sign in to comment.