Zebrane z pytań, które ludzie zadają nam na czacie i na zgłoszeniach, mniej więcej w kolejności, w jakiej je zadają. Pierwsze dwa pytania decydują o powodzeniu zakupu.
- Ile pamięci GPU potrzebuje duży model językowy?
- Wagi to liczba parametrów pomnożona przez liczbę bajtów na parametr: dwa bajty dla każdego parametru 16-bitowego, jeden dla 8-bitowego, połowa dla 4-bitowego. Model z 7–8 miliardami parametrów to 16 GB wag dla 16-bitowego, 8 GB dla 8-bitowego i 5 GB dla 4-bitowego; model z 70 miliardami parametrów to 140 GB, 70 GB i 38 GB. Te wartości to wyłącznie wagi i stanowią one dolną granicę, a nie wymóg — należy dodatkowo uwzględnić budżet w wysokości od jednej czwartej do połowy na środowisko wykonawcze, aktywacje i pamięć podręczną wartości kluczowych.
- Dlaczego mój model ładuje się, ale nie jest obsługiwany?
- Ponieważ wagi to nie jedyna rzecz w pamięci karty. Środowisko wykonawcze i jego bufory są rezydentne, a każdy token w konwersacji pozostawia wpis w pamięci podręcznej klucz-wartość, dzięki czemu nie trzeba go przeliczać. Pamięć podręczna rośnie wraz z długością kontekstu i ponownie z każdym współbieżnie obsługiwanym żądaniem, więc model, którego wagi ledwo się mieszczą, będzie obsługiwał mniej więcej jedną krótką konwersację. Rozmiar karty powinien wynosić od 1,4 do 1,5 raza więcej niż wagi.
- Jakie środowisko wnioskowania mogę zainstalować?
- Dowolna z nich. Maszyna jest dostarczana z czystym systemem operacyjnym i uprawnieniami roota, a przed nią nie ma usługi wnioskowania dostawcy. vLLM to typowe rozwiązanie do obsługi rzeczywistego ruchu, ponieważ ciągłe przetwarzanie wsadowe pozwala jednej karcie odpowiadać na wiele żądań jednocześnie. llama.cpp to typowe rozwiązanie, gdy brakuje pamięci lub karta jest starsza. TGI i SGLang działają bez zmian. Ollama to najkrótsza ścieżka od pustej maszyny do modelu odpowiadającego na porcie. Przypinasz sterownik, wersję CUDA lub ROCm oraz framework do wersji, z którymi testowany był Twój kod.
- Ile tokenów na sekundę otrzymam?
- Nie publikujemy danych o liczbie tokenów na sekundę, ponieważ każda taka liczba zależy od modelu, kwantyzacji, środowiska wykonawczego i jego wersji, rozmiaru partii, długości monitu, długości odpowiedzi i współbieżności, a zmiana którejkolwiek z nich powoduje jej wielokrotność. Co nią rządzi: odczyt monitu jest ograniczony obliczeniowo i odbywa się raz na żądanie; generowanie odpowiedzi jest ograniczone przepustowością pamięci, ponieważ każdy token wymaga odczytania wag; a przetwarzanie wsadowe amortyzuje ten odczyt w przypadku współbieżnych żądań, co sprawia, że serwowanie jest ekonomiczne, dopóki pamięć podręczna wartości kluczowych nie wyczerpie się. Zapytaj o model, kwantyzację i oczekiwaną współbieżność, aby uzyskać odpowiedź opartą na tym, co faktycznie zaobserwowaliśmy.
- Czy procesor graficzny jest współdzielony z kimś innym?
- Nie. Jeden użytkownik na maszynę fizyczną, a karta jest przekazywana do Twojego własnego systemu operacyjnego. Nie ma hiperwizora, partycji MIG, profilu vGPU ani harmonogramu podziału czasu, więc nic innego nie działa na karcie, a opóźnienie wnioskowania nie zmienia się z powodu czyjegoś zadania wsadowego.
- A co jeśli model nie mieści się na jednej karcie?
- Następnie mamy do czynienia z konfiguracją wielokartową, która jest wyceniana, a nie zamawiana z kasy: liczba pasujących kart zależy od fizycznej szerokości danej karty i budżetu mocy obudowy. Dwie karty podają sumę swojej pamięci tylko wtedy, gdy środowisko wykonawcze może rozdzielić model na obie, co każde poważne środowisko wykonawcze obsługuje za cenę przepustowości. Więcej niż jedna karta lub maszyna pozwala na taki wygląd konfiguracji.
- Czy dostrajanie wymaga więcej pamięci niż serwowanie?
- Znacznie więcej. Obsługa wymaga wag; trening wymaga wag, gradientów i stanu optymalizatora dla każdego aktualizowanego parametru, wszystkich naraz, a także aktywacji przechowywanych dla przebiegu wstecznego. Model, który wygodnie obsługuje jedną kartę, może być kilkakrotnie za duży, aby można go było w pełni dostroić. Metody efektywne pod względem parametrów aktualizują niewielką część parametrów i wymagają odpowiednio niewielkiej części dodatkowej pamięci, dlatego większość dostrajania tutaj wykorzystuje jedną z nich.
- Czy mogę używać karty AMD i czy ROCm będzie działać?
- Tak. Części AMD Instinct należą do kart pamięci o największej pojemności, jakie montujemy, i często oferują najlepszy stosunek jakości do ceny w przeliczeniu na gigabajt, ale Twój stos musi obsługiwać ROCm, a nie CUDA. Większość obecnych środowisk wnioskowania obsługuje tę technologię; niektóre narzędzia nadal jej nie obsługują. Zapytaj przed zamówieniem, a sprawdzimy ją pod kątem konkretnego środowiska wykonawczego, zamiast udzielać ogólnych odpowiedzi.