Căutarea exactă k-NN (Brute-Force / Flat Search) calculează distanța matematică între vectorul de interogare și toți vectorii existenți din colecție, garantând un recall perfect de 100%. În schimb, algoritmii ANN (Approximate Nearest Neighbors precum HNSW sau IVF) sacrifică un procent mic de acuratețe (1-5%) pentru un câștig masiv de viteză.
Când trebuie utilizată căutarea exactă Flat:
- Seturi de date sub 50.000 – 100.000 de vectori (unde calculul durează sub 5-10 ms pe CPU).
- Medii puternic filtrate (de exemplu, filtrare pe
tenant_idunde rămân doar câteva sute de vectori per client). - Benchmark-uri de validare: stabilirea liniei de referință (ground truth) pentru măsurarea recall-ului algoritmilor ANN.
import faiss
import numpy as np
d = 1536
index_exact = faiss.IndexFlatIP(d) # Inner Product Flat
# Nu necesită etapă de antrenare (train)
data = np.random.randn(10000, d).astype('float32')
index_exact.add(data)
# Căutare cu garanție absolută a distanței minime
distances, indices = index_exact.search(data[:1], k=5)
print("Cel mai apropiat indice:", indices[0][0])
Indexul Flat are zero overhead de memorie pentru grafuri sau liste, stocând vectorii pur și simplu ca o matrice continuă de octeți.
Întrebări & Exemple practice:
Căutare Exactă k-NN (Brute-Force) vs Căutare Aproximativă (ANN)Ai o întrebare despre Căutare Exactă k-NN (Brute-Force) vs Căutare Aproximativă (ANN) sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.