Czy domowy serwer działający wyłącznie na CPU może obsługiwać przydatny system RAG dla rodzinnej biblioteki dokumentów?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Tak, domowy serwer korzystający wyłącznie z procesora może obsługiwać użyteczny system RAG dla rodzinnych dokumentów, jeśli wyszukiwanie pozostaje kompaktowe, a generowanie wykorzystuje niewielki, skwantyzowany model.

Domowa biblioteka instrukcji, rachunków, ogłoszeń szkolnych, gwarancji i skanowanych plików PDF rzadko wymaga wydajności centrum danych. Potrzebuje prywatnego wyszukiwania, możliwych do prześledzenia fragmentów oraz akceptowalnego czasu odpowiedzi dla jednej lub dwóch osób. Procesor musi jednak osadzać dokumenty, przeszukiwać wektory, przetwarzać pobrany tekst i generować odpowiedź, dlatego użyteczność zależy od ograniczenia rozmiaru modelu, długości kontekstu, współbieżności oraz liczby błędów podczas porządkowania dokumentów.

Werdykt zależy od potoku RAG, a nie od obecności karty graficznej

RAG dzieli zadanie na pozyskiwanie danych, wyszukiwanie i generowanie. Pozyskiwanie danych polega na ekstrakcji tekstu i tworzeniu osadzeń; wyszukiwanie odnajduje niewielki zestaw odpowiednich fragmentów; generowanie przekształca te fragmenty w odpowiedź. Procesor może wykonywać każdy z tych etapów, ale każdy ma inne wąskie gardło. Wyszukiwanie wektorowe może zakończyć się szybko, podczas gdy ocena promptu i generowanie tokenów będą odpowiadać za większość czasu oczekiwania.

Offline’owy RAG działający wyłącznie na procesorze może bezpiecznie działać na ograniczonym sprzęcie. Nie oznacza to jednak, że każdy model lub obciążenie dokumentami będzie interaktywne. Trafniejsze stwierdzenie brzmi: przy odpowiednio dobranym modelu, kontrolowanym kontekście i cierpliwym trybie pracy jednego użytkownika system może odpowiadać na pytania oparte na źródłach bez dedykowanej karty graficznej ani usługi w chmurze.

W przypadku rodzinnej biblioteki „użyteczność” powinna oznaczać, że pobrany zostaje właściwy dokument, odpowiedź zawiera odnośnik do fragmentu, a typowe pytania kończą się w uzgodnionym czasie. Nie powinna oznaczać natychmiastowego czatu dla wielu użytkowników ani bezbłędnego rozumowania na podstawie setek stron. Serwer działający wyłącznie na procesorze wygrywa pod względem prywatności i możliwości ponownego wykorzystania posiadanego sprzętu, ale przegrywa, gdy najważniejsze stają się opóźnienia lub jednoczesne obciążenie.

Wyszukiwanie jest zwykle niedrogie; tempo wyznacza generowanie

Lokalny indeks wektorowy przeszukuje zwarte reprezentacje liczbowe zamiast ponownie odczytywać każdy plik. W przypadku domowej kolekcji liczącej tysiące lub dziesiątki tysięcy fragmentów indeks często może pozostać w pamięci RAM i szybko zwracać kandydatów. OCR i tworzenie osadzeń są bardziej wymagające podczas początkowego pozyskiwania danych, ale te operacje można wykonywać w tle i powtarzać tylko dla zmienionych dokumentów.

Wyszukiwanie nadal zwiększa mierzalne opóźnienie i w niektórych projektach może odpowiadać za dużą część czasu do pojawienia się pierwszego tokenu. Zmierzone kompromisy w systemach RAG pokazują również, że decyzje integracyjne wpływają na dokładność i opóźnienie kompleksowe. Na domowym procesorze ograniczenie wartości top-k i unikanie powtarzania wyszukiwania podczas generowania zapobiega temu, by skromny etap wyszukiwania stał się powtarzającym się obciążeniem.

Generowanie pozostaje sekwencyjne: model przetwarza tokeny promptu i emituje tokeny odpowiedzi po jednym. Długie pobrane fragmenty kosztują więc podwójnie — wymagają dłuższej oceny promptu i zwiększają liczbę okazji do wprowadzenia nieistotnych dowodów. Mniejszy, dobrze podzielony na fragmenty kontekst może sprawić, że skromny model będzie wydawał się szybszy i dokładniejszy niż większy model procesorowy otrzymujący całe dokumenty. Większy kontekst nie oznacza automatycznie lepszego wyszukiwania.

Skwantyzowane małe modele ułatwiają zmieszczenie się w budżecie pamięci

Kwantyzacja przechowuje wagi modelu z mniejszą precyzją, ograniczając zużycie pamięci RAM i przepustowość pamięci potrzebną do wygenerowania każdego tokenu. Dzięki temu modele o wielkości od trzech do ośmiu miliardów parametrów stają się realną opcją na komputerach ze standardową pamięcią, choć bufory kontekstu, system operacyjny, baza danych wektorowych i usługi OCR nadal wymagają zapasu. Model, który ledwo się mieści, może zacząć korzystać z pliku wymiany i stać się bezużytecznie wolny.

Lokalne modele po kwantyzacji wykazują różną wydajność, zużycie pamięci i pobór energii na różnych małych komputerach i środowiskach uruchomieniowych. Sama liczba parametrów nie pozwala więc przewidzieć rzeczywistych wrażeń z użytkowania. Na liczbę tokenów na sekundę i czas do pierwszej odpowiedzi wpływają poziom kwantyzacji, przepustowość pamięci, środowisko uruchomieniowe, długość promptu oraz architektura modelu.

Zacznij od modelu, który pozostawia co najmniej kilka gigabajtów na resztę stosu, a następnie wykonaj pomiary na dokładnie tym procesorze, którego używasz. Jeśli model czterobitowy generuje wystarczająco dobre odpowiedzi z poprawnymi cytatami w akceptowalnym tempie, przejście na większy model może bardziej obniżyć responsywność, niż poprawić trafność wyszukiwania w rodzinnych dokumentach. Jakość wyszukiwania, dokładność OCR i granice fragmentów często wymagają uwagi wcześniej niż rozmiar modelu.

-15% OFF

RAG działający wyłącznie na procesorze nie sprawdza się przy długim kontekście i współbieżności

Projekt przestaje być wygodny, gdy kilku użytkowników przesyła długie pytania, każda odpowiedź zawiera wiele pobranych fragmentów albo model musi tworzyć syntezę na podstawie obszernych umów i dokumentacji medycznej. Jednoczesne generowanie konkuruje o przepustowość pamięci i rdzenie procesora. Opóźnienie rośnie nieliniowo, gdy żądania trafiają do kolejki, pamięci podręczne kontekstu się rozrastają lub serwer zaczyna korzystać z pliku wymiany.

Małe modele językowe z RAG wymagają traktowania modelu, bazy danych wektorowych i projektu wyszukiwania jako jednego problemu wdrożeniowego. Rodzinny serwer działający wyłącznie na procesorze nie powinien więc obiecywać poziomu usług znanego z chmury. Dobrze nadaje się do okazjonalnego wyszukiwania i krótkich podsumowań, ale nie do asystentów głosowych o niskim opóźnieniu, masowej analizy dokumentów ani wielu jednoczesnych sesji.

Granica dotyczy również informacji, a nie tylko mocy obliczeniowej. Przegląd ZimaSpace dotyczący prywatnego asystenta AI na serwerze NAS wskazuje, że lżejsze wyszukiwanie i podsumowania lepiej pasują do systemów działających wyłącznie na procesorze niż wymagające wnioskowanie. Szybka odpowiedź oparta na niewłaściwym tekście z OCR nadal jest błędna, dlatego interfejs powinien udostępniać nazwy plików źródłowych i cytowane fragmenty do weryfikacji.

Wykonaj test akceptacyjny z 20 pytaniami, zanim uznasz system za użyteczny

Utwórz zestaw testowy na podstawie rzeczywistych domowych zadań: znajdź datę gwarancji urządzenia, odszukaj klauzulę w polisie, wskaż termin szkolny i odpowiedz na pytanie, którego prawidłowej odpowiedzi nie ma w dokumentach. Uwzględnij skanowane i natywne pliki PDF. Dla każdego zapytania zapisz skuteczność wyszukiwania, poprawność cytatu, czas do pojawienia się pierwszego tokenu, całkowity czas odpowiedzi, szczytowe zużycie pamięci RAM oraz to, czy model przyznaje, że brakuje dowodów.

Pracę wyszukiwarki można ograniczyć, zawężając część indeksu analizowaną dla każdego zapytania. TeleRAG wykorzystuje wyszukiwanie klastrowe, aby ograniczyć aktywną przestrzeń wyszukiwania. Domowy test nie musi kopiować tej architektury, ale powinien sprawdzać tę samą zasadę: wyszukiwanie powinno zwracać kilka odpowiednich fragmentów, a nie przenosić całej biblioteki do promptu.

Zaakceptuj projekt działający wyłącznie na procesorze, jeśli co najmniej 18 z 20 pytań wskazuje właściwe źródło, każda odpowiedź faktograficzna zawiera możliwy do sprawdzenia fragment, typowe zapytania mieszczą się w przyjętym domowym limicie czasu, a szczytowe zużycie pamięci RAM pozostaje poniżej 80 procent. Jeśli wyszukiwanie zawodzi, popraw OCR lub podział na fragmenty; jeśli wyszukiwanie działa, ale generowanie jest zbyt wolne, zmniejsz kontekst lub model. Dodaj kartę graficzną dopiero wtedy, gdy pomiary uzasadnią, że to ona jest wąskim gardłem.

Zaobserwowana usterka Prawdopodobne wąskie gardło Następny test
Pobrano niewłaściwy plik OCR, fragmenty lub osadzenia Sprawdź pięć najlepszych fragmentów
Właściwe fragmenty, ale pierwszy token pojawia się z opóźnieniem Przetwarzanie promptu Zmniejsz top-k i długość fragmentów
Powolny strumień tokenów Model lub środowisko uruchomieniowe Wypróbuj mniejszy skwantyzowany model
Zawodzi tylko przy użyciu współbieżnym Kolejka i przepustowość pamięci Szereguj żądania

Centrum Technologii i Sztucznej Inteligencji

Więcej do przeczytania

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.