Hoe verkleint vectorquantisatie een thuiszoekindex?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Vectorquantisatie verkleint een zoekindex voor thuisgebruik door embeddingwaarden met hoge precisie te vervangen door compacte codes die de oorspronkelijke vectoren benaderen.

Een privรฉzoekserver kan honderdduizenden of miljoenen fragmenten indexeren uit notities, OCR-tekst, handleidingen, fotometadata, transcripties en toepassingsgegevens. Als elke embedding wordt opgeslagen als floatingpointwaarden met volledige precisie, kan de vector-werkset groter worden dan de brontekst zelf. Kwantisatie verandert de representatie die voor het zoeken wordt gebruikt, zodat elke vector minder bytes inneemt. Daarbij wordt gecontroleerde benadering geaccepteerd in ruil voor minder druk op geheugen en opslag.

Embeddings met volledige precisie gebruiken meerdere bytes voor elke dimensie

Een embedding is een array met numerieke coรถrdinaten. Een vector met 1.024 dimensies die wordt opgeslagen als floats van 32 bits, vereist 4.096 bytes voor de onbewerkte waarden, voordat grafiekverbindingen, ID's, payloads, overhead van de geheugenallocator of replica's worden meegerekend.

gecomprimeerde vectorrepresentaties verminderen het aantal bytes dat nodig is voor het vectorgedeelte van een index, waardoor een grotere doorzoekbare werkset op een thuisserver met beperkte hoeveelheid geheugen in het geheugen kan blijven.

Vermenigvuldig die onbewerkte grootte met รฉรฉn miljoen fragmenten en alleen de ongecomprimeerde vectorwaarden lopen al op tot meerdere gigabytes. Meerdere collecties, replica's en indexen die permanent in het geheugen staan, vergroten de voetafdruk op de thuisserver nog verder. Kwantisatie richt zich op deze numerieke representatie. Hiermee worden bron-pdf's, payloadmetadata, omgekeerde indexen of alle grafiekverbindingen rond die vectoren niet automatisch gecomprimeerd.

Kwantisatie brengt gedetailleerde coรถrdinaten terug tot een kleinere verzameling representaties

Het algemene idee is om veel mogelijke floatingpointwaarden te vervangen door minder representeerbare toestanden. De precieze omzetting hangt ervan af of het systeem scalaire, binaire, product-, rotationele of een andere kwantisatiefamilie gebruikt.

Verschillende modi voor vectorquantisatie verkleinen de representatie op verschillende manieren. Scalaire, binaire en productbenaderingen hebben daarom niet รฉรฉn universele afweging tussen nauwkeurigheid en prestaties.

Een scalaire methode kan de precisie van elke coรถrdinaat verlagen. Binaire methoden coderen veel grovere richtingsinformatie. Productkwantisatie, die afzonderlijk wordt behandeld, verdeelt een vector in deelruimten en slaat identificaties van codeboeken op.

Het gemeenschappelijke resultaat is hetzelfde: de zoekmachine kan een compacte benadering in zijn actieve werkset bewaren, in plaats van de oorspronkelijke array met volledige precisie bij elke vergelijking van kandidaten mee te nemen.

Kleinere vectoren verminderen zowel het geheugengebruik als het verkeer voor afstandsberekeningen

Bij zoekopdrachten worden kandidaatvectoren herhaaldelijk geladen en met de query vergeleken. Wanneer die representaties kleiner zijn, passen er meer kandidaten in de CPU-cache of het geheugen van een accelerator en hoeft er minder data door de geheugenhiรซrarchie te worden verplaatst.

compacte benaderende vectoren verminderen opslag en geheugentransport tijdens het zoeken naar kandidaten, maar hun afstanden benaderen de relaties die in de oorspronkelijke embeddings met volledige precisie zijn vastgelegd.

Op een thuisserver draait het voordeel vaak meer om het resident houden van de actieve index dan om opvallende compressieverhoudingen. Het vermijden van geheugendruk kan herhaalde schijfmissers of concurrentie met het lokale LLM, de database en andere containers voorkomen.

Of de latentie verbetert, hangt af van de zoekmachine, CPU-instructies, indexstructuur en eventuele extra decodeer- of herberekeningsfasen.

Benaderende vectoren kunnen de volgorde van nabije resultaten veranderen

Kwantisatie is meestal verliesgevend. Meerdere verschillende vectoren met volledige precisie kunnen naar nabije of identieke compacte representaties worden gemapt, waardoor benaderende afstanden niet elke oorspronkelijke rangschikking exact behouden.

verliesgevende zoekopdrachten in het compressiedomein ruilen een exacte numerieke representatie in voor een kleinere of snellere werkset voor gelijkeniszoekopdrachten. Daarom moet de recall na compressie worden gemeten.

Een relevant fragment dat met volledige precisie maar net dichterbij was dan een ander fragment, kan na compressie van volgorde wisselen. Het effect hangt af van de gegevensverdeling, het embeddingmodel, de kwantiseerder, de codegrootte en de moeilijkheidsgraad van de query. Daarom zijn recalltests essentieel. Een compressie-instelling die veilig lijkt bij brede semantische zoekopdrachten, kan zich anders gedragen bij zeer vergelijkbare producthandleidingen of passages uit nauw op elkaar aansluitende versies.

Oversampling en herberekening kunnen nauwkeurigheid uit een compacte eerste zoekronde terugwinnen

Een veelgebruikt ontwerp zoekt in de gecomprimeerde index naar meer kandidaten dan de uiteindelijke top-k en gebruikt daarna de oorspronkelijke vectoren om voor die kleinere groep exacte afstanden of afstanden met hogere precisie opnieuw te berekenen.

oversampling en het opnieuw berekenen van afstanden kunnen breed zoeken in een gecomprimeerde representatie en vervolgens afstanden met hogere precisie opnieuw berekenen voor een kleinere groep kandidaten voordat de definitieve rangschikking wordt bepaald.

Dankzij deze hybride aanpak blijven de dure vectoren met volledige precisie buiten de brede zoektocht naar kandidaten, terwijl grensgevallen nog kunnen worden gecorrigeerd voordat het bewijsmateriaal RAG bereikt.

De afweging is dat het bewaren van oorspronkelijke vectoren extra schijfruimte of geheugen gebruikt en dat het opnieuw berekenen van afstanden per query extra werk kost. Een thuisserver moet daarom de gecombineerde voetafdruk meten in plaats van alleen de gecomprimeerde bytes te tellen.

Kwantisatie lost de vectorgrootte op, maar niet elk knelpunt van een zoekindex

Een HNSW-index slaat ook grafiekconnectiviteit op, terwijl metadatafilters, tekstindexen, documentpayloads, caches en querybuffers hun eigen resources gebruiken.

infrastructuur voor semantisch zoeken omvat embeddings, indexering, filtering en retrieval. Het verkleinen van vectoren beรฏnvloedt dus slechts รฉรฉn resourcelaag van de volledige zoekpijplijn voor thuisgebruik.

Een HNSW-index bevat zowel vectoren als een verbindingsgrafiek. Vectorcompressie kan de volledige voetafdruk van de index daarom niet met dezelfde verhouding verkleinen als het aantal onbewerkte embeddingbytes.

Tech & AI HUB

Meer om te lezen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.