Productkwantisatie versnelt grote private vectorcollecties door embeddings op te splitsen in deelruimten en elke subvector te vervangen door een compacte code van een geleerd centroid.
Dit is een specifiek mechanisme binnen de bredere familie van vectorkwantisatie. In plaats van elke coördinaat afzonderlijk te reduceren, leert PQ meerdere kleinere codeboeken en vertegenwoordigt het één hoogdimensionale embedding als een reeks code-ID's. Een thuiszoekserver kan veel meer van die codes in het geheugen bewaren en query-afstanden schatten aan de hand van vooraf berekende tabellen. Hierdoor nemen zowel het aantal opgeslagen vectorbytes als de hoeveelheid rekenwerk met volledige precisie tijdens een brede kandidaatscan af.
PQ verdeelt één hoogdimensionale embedding in meerdere subvectors
Stel dat een embedding dimensie `d` heeft. PQ kiest `M` subkwantisatoren en verdeelt de coördinaten in `M` blokken met een lagere dimensie, zodat elk blok afzonderlijk kan worden gemodelleerd.
Het aantal subkwantisatoren bepaalt in hoeveel blokken met een lagere dimensie de oorspronkelijke embedding wordt verdeeld en dus hoeveel code-ID's samen één PQ-representatie vormen.
Deze factorisatie verklaart de naam productkwantisatie: de volledige benadering wordt samengesteld uit keuzes die onafhankelijk in meerdere deelruimten worden gemaakt, in plaats van uit één enorm codeboek voor de volledige vector. De deelruimten moeten de vectordimensies op een compatibele manier verdelen. Hun grootte en aantal beïnvloeden de compressie, de trainingskosten van het codeboek, de nauwkeurigheid van afstanden en hoe goed de gegevensverdeling bij de gefactoriseerde representatie past.
Elke deelruimte leert een codeboek met representatieve centroiden
PQ wordt doorgaans getraind op een representatieve steekproef van de collectie. Voor elke deelruimte vindt clustering centroidvectoren die groepen vergelijkbare subvectors vertegenwoordigen.
Een typische productkwantisator gebruikt k-means om centroiden binnen elke deelruimte te leren, waarbij de benaderingsfout tussen trainingssubvectors en hun toegewezen vertegenwoordigers wordt geminimaliseerd.
Na de training hoeft de database niet langer alle oorspronkelijke coördinaten in de compacte zoekcode op te slaan. Alleen de identificatie van het dichtstbijzijnde centroid uit elke deelruimte is nodig.
Als de trainingssteekproef toekomstige huishoudelijke documenten slecht vertegenwoordigt, kunnen de geleerde centroiden latere vectoren slecht benaderen. De kwaliteit van het codeboek is daarom een implementatiegrens en geen eenmalig detail dat kan worden genegeerd.
De opgeslagen vector wordt een korte reeks code-ID's
Voor elke subvector zoekt de encoder het dichtstbijzijnde centroid en slaat hij de index van dat centroid op. Door de `M` indexen samen te voegen ontstaat de PQ-code voor de volledige embedding.
Het opslaan van m subvectorcodes met configureerbare bits vervangt een lange floatarray door een korte reeks centroididentificaties plus gedeelde codeboeken.
Met bijvoorbeeld acht bits per subkwantisator kunnen 256 centroidkeuzes in die deelruimte worden weergegeven. De totale vectorcode groeit dan mee met het aantal subkwantisatoren, in plaats van met 32-bits precisie voor elke oorspronkelijke dimensie. Codeboeken en indexoverhead gebruiken nog steeds geheugen, dus de volledige collectie is groter dan alleen de codebytes. De besparing wordt vooral relevant wanneer het aantal vectoren groot genoeg is om de gedeelde codeboeken over veel vectoren af te schrijven.
Een query bouwt voor elke deelruimte afstandsopzoektabellen
Wanneer een query binnenkomt, splitst het systeem deze op in dezelfde deelruimten en berekent het de afstand tot elk centroid in elk codeboek. Die waarden vormen kleine opzoektabellen.
Een afstandstabel van query naar centroid berekent vooraf de queryafstand tot elk centroid in elke deelruimte, zodat kandidaatafstanden kunnen worden samengesteld uit kleine opzoekingen in plaats van berekeningen met volledige vectoren.
Om de afstand tot een opgeslagen databasevector te schatten, hoeft de zoekfunctie niet langer elke volledige coördinaat te reconstrueren. Ze leest elke code-ID, zoekt de bijbehorende afstand in de deelruimte op en telt die waarden op.
Dit tabelgestuurde proces wordt vaak asymmetrische afstandsberekening genoemd, omdat de query een hoge precisie kan behouden terwijl de databasevectoren door gekwantiseerde codes worden weergegeven.
Compacte codes verbeteren de cache-localiteit naarmate collecties groeien
Grote vectorscans worden vaak beperkt door het verplaatsen van kandidaatgegevens door het geheugen, en niet door de wiskundige complexiteit van één afstandsberekening.
Door korte codes passen meer kandidaten in de CPU-caches en is per vergelijking minder geheugenbandbreedte nodig.
Het gecomprimeerde pad voor afstandsberekening kan worden versneld met SIMD-vriendelijke opzoekingen in tabellen, omdat zoeken met productkwantisatie herhaaldelijk compacte codes leest en afstanden in deelruimten optelt.
In een private thuiscollectie kan dat het verschil maken tussen een index waarvan de actieve zoekrepresentatie in RAM blijft en een index die voortdurend concurreert met de lokale LLM, database en bestandssysteemcache.
Het voordeel wordt kleiner wanneer de collectie klein is, wanneer filteren op metadata elke query terugbrengt tot een handvol vectoren, of wanneer een andere indexlaag de latentie domineert.
PQ ruilt doorgaans een deel van de recall in voor compressie en snelheid
Centroidcodes benaderen de oorspronkelijke subvectors, waardoor twee kandidaten van volgorde kunnen wisselen wanneer hun werkelijke afstanden dicht bij elkaar liggen. Over het algemeen laat agressievere compressie minder informatie over om onderscheid tussen kandidaten te maken.
Door productkwantisatie als verliesgevende compressie te behandelen wordt de grens duidelijk: kleinere codes verminderen het vectorgeheugen, maar kwantisatiefouten kunnen de volgorde van nabije buren veranderen.
Door het aantal subkwantisatoren of bits te verhogen kan meer detail behouden blijven, maar wordt elke code groter en nemen ook de opzoekstructuren toe. Kleinere codes besparen meer geheugen, maar vergroten de kans op kwantisatiefouten. De bruikbare configuratie is afhankelijk van het corpus. Nauw verwante handleidingen, dubbele documentversies en verfijnde codesearch kunnen meer precisie vereisen dan brede semantische retrieval over uiteenlopende huishoudelijke notities.
Een compacte eerste stap kan worden gevolgd door herordening met volledige precisie
PQ vereist niet dat het uiteindelijke antwoord de volgorde van gecomprimeerde afstanden blind vertrouwt. Een systeem kan met PQ een ruimere kandidaatset ophalen en vervolgens alleen die kandidaten opnieuw rangschikken met oorspronkelijke vectoren die elders zijn opgeslagen.
Binnen semantische vectorretrieval verandert PQ de representatie die voor kandidaatvergelijking wordt gebruikt; herkomst, filteren op metadata, herordening en RAG blijven rond die vectorstap actief.
Deze aanpak in twee fasen verdeelt geheugen en rekenkracht asymmetrisch: gecomprimeerde codes verwerken de grote kandidaatruimte, terwijl exacte vectoren alleen voor een korte shortlist worden benaderd.
Productkwantisatie versnelt een private collectie wanneer compacte codes de werkset en het verkeer voor afstandsberekeningen aantoonbaar verkleinen, zonder de gemeten recall te verlagen tot onder de kwaliteit die het lokale RAG-systeem voor zijn bewijs nodig heeft.
Tech & AI HUB
Meer om te lezen

Kunnen thuiscamera's gebeurtenissen synchroniseren zonder cloudtijdservices?
Een mechanismegerichte uitleg van cameratiijd zonder cloud, de afwegingen bij gedeelde bronnen, drie veelgestelde vragen over query-fan-out en een praktisch verificatieprotocol.

Kan een lokale AI-service beschadigde modellagen detecteren vóór de inferentie?
Een mechanismegerichte uitleg van detectie van beschadigingen in modellagen, de afwegingen rond gedeelde bronnen, drie veelgestelde vragen over query-fan-out en een praktisch verificatieprotocol.

Kan een RAG-systeem worden hersteld zonder elke embedding opnieuw te genereren?
Een mechanismegerichte uitleg van RAG-herstel zonder opnieuw te embedden, de afwegingen rond gedeelde bronnen, drie veelgestelde vragen over query-fan-out en een praktisch verificatieprotocol.

