wip: Use Hamming when binary quantized

This commit is contained in:
Kerollmops
2025-08-08 09:47:08 +02:00
committed by Louis Dureuil
parent 0b3f983d27
commit aef07f4bfa

View File

@ -4,7 +4,7 @@ use std::sync::{Arc, Mutex};
use std::time::Instant; use std::time::Instant;
use deserr::{DeserializeError, Deserr}; use deserr::{DeserializeError, Deserr};
use hannoy::distances::{BinaryQuantizedCosine, Cosine}; use hannoy::distances::{Cosine, Hamming};
use hannoy::ItemId; use hannoy::ItemId;
use heed::{RoTxn, RwTxn, Unspecified}; use heed::{RoTxn, RwTxn, Unspecified};
use ordered_float::OrderedFloat; use ordered_float::OrderedFloat;
@ -168,7 +168,7 @@ impl VectorStore {
// only happens once in the life of an embedder, it's not very performances // only happens once in the life of an embedder, it's not very performances
// sensitive. // sensitive.
if quantizing && !self.quantized { if quantizing && !self.quantized {
let writer = writer.prepare_changing_distance::<BinaryQuantizedCosine>(wtxn)?; let writer = writer.prepare_changing_distance::<Hamming>(wtxn)?;
writer writer
.builder(rng) .builder(rng)
.available_memory(hannoy_memory.unwrap_or(usize::MAX)) .available_memory(hannoy_memory.unwrap_or(usize::MAX))
@ -553,7 +553,7 @@ impl VectorStore {
self.database.remap_data_type() self.database.remap_data_type()
} }
fn quantized_db(&self) -> hannoy::Database<BinaryQuantizedCosine> { fn quantized_db(&self) -> hannoy::Database<Hamming> {
self.database.remap_data_type() self.database.remap_data_type()
} }