From 3e6a37318afedba60667bc7ab10832a7a3a5e5c7 Mon Sep 17 00:00:00 2001 From: yunyv <62236062+yunyv@users.noreply.github.com> Date: Sat, 24 Oct 2026 10:52:20 -0600 Subject: [PATCH] fix(search): keep zero float16 cosine scores finite Updated the handling of zero-norm rows to use a representable denominator of 1 instead of 1e-10. --- reme/utils/similarity_utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reme/utils/similarity_utils.py b/reme/utils/similarity_utils.py index ab5d7bba..0452a0e1 100644 --- a/reme/utils/similarity_utils.py +++ b/reme/utils/similarity_utils.py @@ -33,7 +33,7 @@ def batch_cosine_similarity(nd_array1: np.ndarray, nd_array2: np.ndarray) -> np. norms1 = np.linalg.norm(nd_array1, axis=1) norms2 = np.linalg.norm(nd_array2, axis=1) norm_products = np.outer(norms1, norms2) - # Guard against zero-norm rows to keep division finite. - norm_products = np.where(norm_products == 0, 1e-10, norm_products) + # Use a representable denominator even in float16; zero rows have zero dot products. + norm_products = np.where(norm_products == 0, 1, norm_products) return dot_products / norm_products