vektorindeksering
Vektorindeksering er en metode til at gemme og effektivt søge i højdimensionelle vektorer, typisk repræsentationer af data som tekst eller billeder, ved at organisere dem i en datastruktur der muliggør hurtig nearest neighbor-søgning.
Kort fortalt
En måde at gemme og hurtigt finde lignende vektorer i store samlinger, som når man leder efter den bedste matchning i en database af embeddings.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
Teknik til at opbygge en datastruktur over vektorer, således at man effektivt kan udføre nearest neighbor-søgning, ofte understøttet af metoder som produktkvantisering, HNSW (Hierarchical Navigable Small World) eller IVF (Inverted File).
- For at håndtere millioner af embeddings implementerede vi et HNSW-baseret vektorindeks. — opdigtet
- Vektorindeksering reducerer søgetiden fra lineær til logaritmisk eller konstant i praksis. — opdigtet
Hvornår bruges det
Vektorindeksering bruges ofte i RAG-systemer og semantisk søgning, hvor man skal finde de mest relevante dokumenter eller tekststykker baseret på en forespørgselsembedding. Det er også centralt i anbefalingssystemer og genkendelsesopgaver, hvor man sammenligner nye vektorer med en stor mængde eksisterende.
Kodeeksempel
import faiss
import numpy as np
d = 128
n = 10000
xb = np.random.random((n, d)).astype('float32')
nlist = 100
quantizer = faiss.IndexFlatL2(d)
index = faiss.IndexIVFFlat(quantizer, d, nlist, faiss.METRIC_L2)
index.train(xb)
index.add(xb)
xq = np.random.random((1, d)).astype('float32')
k = 4
index.nprobe = 10
D, I = index.search(xq, k)Opretter et IVF-vektorindeks til ca. søgning, med 100 centroider og 10 probes.
Oprindelse
Sammensat af 'vektor' (en matematisk størrelse med retning og størrelse) og 'indeksering' (organisering af data for hurtig adgang).