Milion fragmentów wymaga około 1,5–6,1 GB wyłącznie na typowe wektory float32, jeszcze przed uwzględnieniem indeksów grafowych, metadanych, tekstu, replik i przestrzeni roboczej.
Obliczenia zaczynają się od liczby wymiarów, a nie liczby dokumentów: milion wektorów 768-wymiarowych typu float32 zawiera 768 milionów czterobajtowych wartości, czyli około 3,07 GB w zapisie dziesiętnym. Wdrożony magazyn zajmuje więcej miejsca, ponieważ musi identyfikować wektory, umożliwiać ich wydajne wyszukiwanie, filtrować metadane, przechowywać tekst fragmentów i obsługiwać konserwację indeksu zarówno podczas wyszukiwania, jak i operacji utrzymaniowych na serwerze.
Surowe bajty wektorów wyznaczają powtarzalne minimum
Pomnóż liczbę fragmentów przez liczbę wymiarów osadzeń i liczbę bajtów przypadających na współrzędną. W przypadku miliona wektorów float32 384 wymiary wymagają 1,536 GB, 768 wymiarów — 3,072 GB, a 1536 wymiarów — 6,144 GB. Gigabajty binarne wyglądają na około siedem procent mniejsze w wyświetlanych jednostkach.
Przegląd skalowania przedstawia tę samą zależność surowego przechowywania wektorów: liczba wymiarów pomnożona przez szerokość wartości określa rozmiar danych współrzędnych przed dodaniem struktur bazy danych.
Float16 może zmniejszyć komponent wektorowy o połowę, a int8 lub kwantyzacja produktowa mogą zredukować go jeszcze bardziej. Kompresja może wpływać na trafność wyszukiwania i wymaga obsługi po stronie bazy danych. Dokumenty źródłowe i wygenerowany tekst fragmentów nie są uwzględnione w tych liczbach.
Indeksy i metadane mogą zajmować tyle samo co współrzędne
Wyszukiwanie płaskie dodaje stosunkowo niewiele struktur indeksu, ale skanuje wiele wektorów. HNSW przechowuje odnośniki do sąsiadów i wiele warstw grafu, aby ograniczyć nakład pracy podczas wyszukiwania. Dalszy narzut powodują identyfikatory poszczególnych wektorów, znaczniki usuniętych rekordów, filtry, wyrównanie i strony bazy danych.
Wprowadzenie do łączności HNSW wyjaśnia, dlaczego łączność grafu przyspiesza przybliżone wyszukiwanie, jednocześnie zwiększając zużycie pamięci i przestrzeni dyskowej. Skonfigurowana liczba sąsiadów bezpośrednio zmienia ten koszt.
Metadane różnią się jeszcze bardziej. Kompaktowy identyfikator dokumentu i kod języka mogą dodać kilkadziesiąt bajtów, natomiast powtarzające się ścieżki, uprawnienia i pełny tekst fragmentów mogą dodać setki lub tysiące bajtów. Tekst należy przechowywać jednokrotnie albo konsekwentnie wewnątrz bazy wektorowej, zanim porówna się całkowite wartości.
Dlaczego pojedyncze oszacowanie przestrzeni dyskowej zawodzi
Praktyczny zakres planistyczny dla miliona fragmentów 768-wymiarowych typu float32 często wynosi 5–12 GB na wektory i przybliżony indeks, przed uwzględnieniem znacznej ilości tekstu i replik. To zakres budżetowy, a nie gwarancja dla konkretnego formatu.
Porównanie architektur wektorowych szacuje narzut przestrzeni dyskowej HNSW, który w przypadku niektórych konfiguracji HNSW znacznie przekracza rozmiar surowych współrzędnych. Rzeczywisty mnożnik zależy od ustawień domyślnych silnika i parametrów grafu.
Zakres ten przestaje być miarodajny w przypadku wielu osadzeń na fragment, hybrydowych indeksów słów kluczowych, replikacji, migawek lub przebudów, które tymczasowo duplikują dane. Może też zawyżać wynik dla skompresowanego magazynu korzystającego z dysku. „Milion fragmentów” to za mało informacji, jeśli nie podano liczby wymiarów, typu danych, indeksu, metadanych i liczby kopii.
Ekstrapoluj na podstawie dziesięcioprocentowej próbki indeksu
Wstaw 100 000 reprezentatywnych fragmentów, korzystając z docelowego typu danych osadzeń, schematu metadanych i parametrów indeksu. Po kompakcji zmierz osobno rozmiar surowej kolumny wektorów, indeksu, metadanych, tekstu, dziennika zapisu z wyprzedzeniem i migawek. Pomnóż skalowalne składniki przez dziesięć i dodaj zapas na przebudowę oraz kopie zapasowe.
Umieść test na docelowej warstwie przestrzeni roboczej magazynu, ponieważ kompresja i alokacja systemu plików wpływają na fizyczne wartości całkowite. Nie ekstrapoluj na podstawie pustych plików bazy danych.
Zaplanuj co najmniej zmierzoną wartość ustaloną powiększoną o jedną tymczasową kopię indeksu i 20 procent wolnej przestrzeni. Jeśli replikacja jest włączona, pomnóż tylko replikowane składniki. Powtórz próbę za każdym razem, gdy zmienią się wymiary, metadane lub ustawienia liczby sąsiadów HNSW.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Jak mierzyć jakość lokalnego wyszukiwania RAG oraz interpretować kompletność przywołań, precyzję i pokrycie cytowaniami
Zbuduj lokalny zestaw testowy RAG, oblicz podstawowe metryki wyszukiwania, zinterpretuj kompromisy między nimi i sprawdź, czy twierdzenia zawarte w odpowiedziach są poparte przytoczonymi dowodami.

Dlaczego obliczenia funkcji inteligentnego domu stają się ważniejsze wraz ze wzrostem liczby czujników przy tej samej częstotliwości próbkowania?
Śledź obliczenia dla poszczególnych czujników i między czujnikami wraz ze wzrostem liczby urządzeń, identyfikuj nieliniowe koszty fuzji danych i porównaj wydajność potoku cech, zanim...

Dlaczego koszt oceny RAG rośnie przy tej samej liczbie zapytań wraz z rozbudową biblioteki dokumentów?
Zrozum, dlaczego rozrost korpusu zwiększa nakład pracy na ocenę RAG bez zwiększania liczby zapytań użytkowników oraz jak testy warstwowe utrzymują koszty proporcjonalne do ryzyka.

