Kwantyzacja wektorowa zmniejsza indeks wyszukiwania na domowym serwerze, zastępując wartości osadzeń o wysokiej precyzji kompaktowymi kodami, które przybliżają oryginalne wektory.
Prywatny serwer wyszukiwania może indeksować setki tysięcy lub miliony fragmentów pochodzących z notatek, tekstu OCR, instrukcji, metadanych zdjęć, transkrypcji i danych aplikacji. Przechowywanie każdego osadzenia jako wartości zmiennoprzecinkowej o pełnej precyzji może sprawić, że roboczy zbiór wektorów będzie większy niż sam tekst źródłowy. Kwantyzacja zmienia reprezentację używaną podczas wyszukiwania, dzięki czemu każdy wektor zajmuje mniej bajtów, kosztem kontrolowanego przybliżenia i w zamian za mniejsze obciążenie pamięci oraz pamięci masowej.
Osadzenia o pełnej precyzji zajmują kilka bajtów na każdy wymiar
Osadzenie jest tablicą współrzędnych liczbowych. Wektor o 1024 wymiarach przechowywany jako liczby zmiennoprzecinkowe 32-bitowe wymaga 4096 bajtów na same surowe wartości, zanim doliczy się połączenia grafu, identyfikatory, dane ładunku, narzut alokatora lub repliki.
skompresowane reprezentacje wektorowe zmniejszają liczbę bajtów wymaganych przez wektorową część indeksu, pozwalając większemu przeszukiwalnemu zbiorowi roboczemu pozostać w pamięci domowego serwera o ograniczonych zasobach pamięci.
Po pomnożeniu tego rozmiaru przez milion fragmentów same nieskompresowane wartości wektorów zajmują niemal kilka gigabajtów. Wiele kolekcji, repliki i rezydentne indeksy wyszukiwania dodatkowo zwiększają obciążenie domowego serwera. Kwantyzacja dotyczy tej reprezentacji numerycznej. Nie kompresuje automatycznie źródłowych plików PDF, metadanych ładunku, indeksów odwróconych ani wszystkich krawędzi grafu powiązanych z tymi wektorami.
Kwantyzacja mapuje szczegółowe współrzędne na mniejszy zbiór reprezentacji
Ogólna idea polega na zastąpieniu wielu możliwych wartości zmiennoprzecinkowych mniejszą liczbą reprezentowalnych stanów. Dokładne mapowanie zależy od tego, czy system wykorzystuje kwantyzację skalarną, binarną, iloczynową, rotacyjną czy inną rodzinę metod kwantyzacji.
Różne tryby kwantyzacji wektorów zmniejszają rozmiar reprezentacji na różne sposoby, dlatego podejścia skalarne, binarne i iloczynowe nie mają jednego uniwersalnego kompromisu między dokładnością a wydajnością.
Metoda skalarna może zmniejszyć precyzję każdej współrzędnej. Metody binarne kodują znacznie bardziej zgrubną informację o kierunku. Kwantyzacja iloczynowa, omówiona osobno, dzieli wektor na podprzestrzenie i przechowuje identyfikatory książki kodowej.
Wspólny efekt jest taki sam: silnik wyszukiwania może przechowywać w aktywnym zbiorze roboczym kompaktowe przybliżenie zamiast przenosić oryginalną tablicę o pełnej precyzji przy każdym porównaniu kandydatów.
Mniejsze wektory zmniejszają zarówno zajętość pamięci, jak i ilość danych przesyłanych podczas obliczania odległości
Wyszukiwanie wielokrotnie wczytuje wektory kandydatów i porównuje je z zapytaniem. Gdy reprezentacje są mniejsze, więcej kandydatów mieści się w pamięci podręcznej procesora lub pamięci akceleratora, a przez hierarchię pamięci trzeba przesłać mniej danych.
kompaktowe wektory przybliżone zmniejszają ilość zajmowanego miejsca i ruch w pamięci podczas szerokiego wyszukiwania kandydatów, ale ich odległości przybliżają relacje zakodowane w oryginalnych osadzeniach o pełnej precyzji.
Na domowym serwerze korzyść często polega bardziej na utrzymaniu aktywnego indeksu w pamięci niż na imponujących współczynnikach kompresji. Uniknięcie presji na pamięć może zapobiec powtarzającym się odwołaniom do dysku lub rywalizacji o zasoby z lokalnym LLM-em, bazą danych i innymi kontenerami.
To, czy opóźnienie się zmniejszy, zależy od silnika wyszukiwania, instrukcji procesora, struktury indeksu oraz dodatkowych etapów dekodowania lub ponownego oceniania.
Przybliżone wektory mogą zmienić kolejność sąsiadów
Kwantyzacja jest zazwyczaj stratna. Kilka różnych wektorów o pełnej precyzji może zostać odwzorowanych na zbliżone lub identyczne kompaktowe reprezentacje, dlatego przybliżone odległości nie zachowują dokładnie każdego pierwotnego rankingu.
stratne wyszukiwanie w skompresowanej domenie zamienia dokładną reprezentację numeryczną na mniejszy lub szybszy roboczy zbiór do wyszukiwania podobieństwa, dlatego po kompresji trzeba zmierzyć kompletność wyników.
Fragment, który przy pełnej precyzji był tylko nieznacznie bliższy niż inny, po kompresji może zmienić pozycję. Efekt zależy od rozkładu danych, modelu osadzeń, kwantyzatora, rozmiaru kodu i trudności zapytania. Dlatego testowanie kompletności wyników jest niezbędne. Ustawienie kompresji, które wydaje się bezpieczne dla szerokich zapytań semantycznych, może zachowywać się inaczej w przypadku bardzo podobnych instrukcji produktów lub blisko rozmieszczonych fragmentów różnych wersji.
Nadpróbkowanie i ponowne ocenianie mogą odzyskać dokładność podczas pierwszego, kompaktowego etapu wyszukiwania
Jedno z typowych rozwiązań polega na wyszukiwaniu w skompresowanym indeksie większej liczby kandydatów niż końcowe top-k, a następnie ponownym obliczeniu dokładnych lub bardziej precyzyjnych odległości z użyciem oryginalnych wektorów dla mniejszego zbioru.
nadpróbkowanie i ponowne ocenianie umożliwiają szerokie wyszukiwanie w skompresowanej reprezentacji, a następnie ponowne obliczenie odległości o wyższej precyzji dla mniejszego zbioru kandydatów przed ustaleniem końcowego rankingu.
Takie hybrydowe podejście eliminuje kosztowne pełne wektory z szerokiego skanowania kandydatów, a jednocześnie pozwala skorygować wyniki graniczne, zanim dane trafią do RAG.
Kompromis polega na tym, że przechowywanie oryginalnych wektorów zajmuje dodatkowe miejsce na dysku lub w pamięci, a ponowne ocenianie wymaga większej ilości pracy dla każdego zapytania. Domowy serwer powinien mierzyć łączne zużycie zasobów, a nie uwzględniać wyłącznie skompresowanych bajtów.
Kwantyzacja rozwiązuje problem rozmiaru wektorów, ale nie wszystkich wąskich gardeł indeksu wyszukiwania
Indeks HNSW przechowuje również połączenia grafu, a filtry metadanych, indeksy tekstowe, ładunki dokumentów, pamięci podręczne i bufory zapytań zużywają własne zasoby.
infrastruktura wyszukiwania semantycznego obejmuje etapy osadzania, indeksowania, filtrowania i pobierania, dlatego zmniejszenie rozmiaru wektorów wpływa tylko na jedną warstwę zasobów kompletnego potoku wyszukiwania na domowym serwerze.
Indeks HNSW zawiera zarówno wektory, jak i graf połączeń, co oznacza, że kompresja wektorów nie może zmniejszyć całkowitego rozmiaru indeksu w takim samym stosunku jak rozmiar surowych bajtów osadzeń.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Czy kamery domowe mogą synchronizować zdarzenia bez korzystania z chmurowych usług czasu?
Wyjaśnienie działania czasu kamery bez chmury, jego kompromisów związanych ze współdzielonymi zasobami, trzy często zadawane pytania dotyczące rozsyłania zapytań oraz praktyczny protokół weryfikacji.

Czy lokalna usługa AI może wykryć uszkodzone warstwy modelu przed wnioskowaniem?
Wyjaśnienie wykrywania uszkodzeń warstwy modelu oparte na mechanizmach, kompromisy związane ze współdzielonymi zasobami, trzy najczęściej zadawane pytania dotyczące rozgałęziania zapytań oraz praktyczny protokół weryfikacji.

Czy system RAG można przywrócić bez ponownego generowania wszystkich wektorów embeddingowych?
Wyjaśnienie działania mechanizmu przywracania RAG bez ponownego tworzenia osadzeń, kompromisy związane ze współdzielonymi zasobami, trzy często zadawane pytania dotyczące rozsyłania zapytań oraz praktyczny protokół...

