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. 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).

Afledte ord

3

Kilder

2