Hvad betyder HNSW?
HNSW står for Hierarchical Navigable Small World. Metoden organiserer vektorer som noder med forbindelser i et hierarki. Søgningen kan begynde i et sparsomt øvre lag og bevæge sig mod mere detaljerede forbindelser i de nedre lag.
Denne struktur hjælper med at finde nærliggende vektorer uden en fuld sammenligning med hele samlingen. HNSW er derfor en ANN-metode og giver ikke automatisk de eksakt nærmeste naboer under alle indstillinger.
For en virksomhed er HNSW typisk en del af en søgemotors tekniske fundament. Valget påvirker søgetid, hukommelse, opbygning af indeks og hvor godt de ønskede naboer genfindes. Det afgør ikke alene, om virksomhedens dokumenter er nyttige eller korrekt repræsenteret.
Indstillinger styrer forskellige afvejninger
Implementeringer har typisk indstillinger for, hvor mange forbindelser der opbygges, hvor grundigt indekset konstrueres, og hvor bredt der søges ved en forespørgsel. I hnswlib beskrives blandt andet M, ef_construction og ef.
Flere forbindelser eller en bredere søgning kan bruge flere ressourcer. Der findes ikke én optimal værdi til alle dokumentmængder. Justering bør derfor tage udgangspunkt i konkrete mål og et testsæt, hvor de eksakte naboer kan beregnes til sammenligning.
Navnet fortæller ikke hele driftsadfærden
To systemer med HNSW kan have forskellige regler for opdatering, sletning, lagring og samtidighed. En funktion i ét bibliotek kan ikke uden videre forventes i en anden vektortjeneste. Læs derfor dokumentationen for den valgte implementering.
Afprøv også filtrerede søgninger og vækst i datamængden. Et indeks, som fungerer med en lille første samling, kan ændre ressourcebehov, når flere dokumentversioner og kunder tilføjes. Overvågningen bør følge både svartid og genfinding af kendte relevante kandidater.
Et eksempel fra praksis
En teknisk virksomhed udvider sin vidensbase fra få manualer til et stort arkiv af produktgenerationer. Teamet afprøver HNSW med et fast sæt spørgsmål og dokumentvektorer, hvor en eksakt sammenligning er tilgængelig.
Det justerer søgebredden og måler, hvilke kendte naboer der mangler, samt ventetiden under realistisk belastning. Derefter prøves sletning af en udgået dokumentversion i den valgte tjeneste. Det kontrolleres, at versionen ikke længere dukker op i søgning, frem for blot at antage, at en opdatering i kildesystemet har fjernet den.
Typiske faldgruber
- Standardparametre betragtes som optimale uden måling på egne data.
- Hukommelsesforbrug vurderes kun ud fra selve vektorerne og ikke grafens forbindelser.
- Sletningsadfærd fra ét HNSW-bibliotek antages at gælde i alle tjenester.
Det skal I afklare
- Afprøv relevante indstillinger mod eksakt nabosøgning.
- Mål hukommelse, opbygningstid og søgning under belastning.
- Kontrollér filtre, opdateringer og sletning i den konkrete implementering.
Spørgsmål og svar
Er HNSW en embeddingmodel?
Nej. Det er en indeks- og søgemetode for allerede beregnede vektorer. Embeddingmodellen bestemmer, hvordan dokumenterne bliver repræsenteret.
Kan vi vælge HNSW og være færdige med søgekvalitet?
Nej. Indekset er ét lag. Dokumentudtrækning, embeddingmodel, filtre, rangering og svargrundlag kræver stadig selvstændig kontrol.
Kilder og videre læsning
De tekniske begreber bygger på nedenstående kilder. Eksemplerne er illustrative og viser, hvordan I kan arbejde med emnet.
- Malkov og Yashunin: HNSW ↗Hierarkisk grafstruktur og tilnærmet nabosøgning.
- hnswlib: Referenceimplementation ↗Konkrete parametre og implementeringsspecifik vedligeholdelse.

