Modele językowe na gołym metalu · Primcast LLC · od 2004 r.

Model decyduje o pamięci. Nic innego na formularzu zamówienia nie ma takiego wpływu.

Ludzie trafiają na tę stronę z przekonaniem, że decyzja dotyczy tego, który akcelerator jest najszybszy. Tak nie jest. Wagi albo mieszczą się w pamięci karty, albo nie – karta o dwóch gigabajtach mniejsza nie działa wolniej, tylko się nie ładuje. Dlatego ta strona jest zgodna z kolejnością podejmowania decyzji: jak duży jest model, z jaką precyzją będzie uruchamiany, ile miejsca zajmuje konwersacja i dopiero wtedy, która karta przekroczy poprzeczkę. Ceny są celowo podane na jednej stronie dalej.

Która karta obsługuje mój model Co na nim instaluję

Jeden użytkownik na maszynę. Karta jest przekazywana do systemu operacyjnego, a wersje środowiska wykonawczego, sterownika i frameworka można wybrać i przypiąć.

Krok pierwszy

Ile tak naprawdę ważą ciężarki.

Parametry pomnożone przez bajty na parametr i to jest całe obliczenie. Szesnastobitowe wagi to dwa bajty każda, ośmiobitowe to jeden, czterobitowe to pół. Model siedmiomiliardowy parametrów z szesnastoma bitami to czternaście gigabajtów wag; ten sam model z czterema bitami to od trzech do czterech gigabajtów.

Kwantowanie to proces, który przekształca maszynę, która nie jest w stanie obsłużyć modelu, w taką, która to potrafi. Kosztuje to jakość, a jej wysokość zależy od modelu i metody znacznie bardziej niż od samej liczby bitów – dobrze skwantyzowany model czterobitowy jest zazwyczaj bliższy pełnej precyzji, niż ludzie się spodziewają, a źle skwantyzowany model ośmiobitowy może być gorszy. Jeśli celem ćwiczenia jest dokładność, przetestuj oba te elementy przed zakupem sprzętu; różnicę taniej jest odkryć teraz niż po dostawie.

Te liczby to tylko waga i nic więcej. To dolna granica, a nie wymóg. Następna sekcja to ta, która zaskakuje.

Weights only — the runtime, the activations and the conversation are extra, and are the subject of the next section.
Model16-bit8-bit4-bit
7-8 billion parameters16 GB8 GB5 GB
13-14 billion parameters28 GB14 GB8 GB
30-34 billion parameters68 GB34 GB19 GB
70 billion parameters140 GB70 GB38 GB

Krok drugi

Dlaczego model, który nadal pasuje, nie będzie służył.

To jest najczęstszy powód, dla którego nie udaje się kupić karty graficznej, i za każdym razem kończy się to tak samo: ktoś czyta, że ​​jego model ma trzydzieści osiem gigabajtów, kupuje kartę o pojemności czterdziestu gigabajtów, instaluje ją, a następnie odkrywa, że ​​jest w stanie obsłużyć mniej więcej jedną krótką rozmowę.

  • Tam też jest środowisko wykonawcze

    Ładowanie modelu to nie jedyna czynność wykonywana na karcie. Samo środowisko wykonawcze, jego bufory i aktywacje wszystkiego, co jest obliczane, znajdują się w tej samej pamięci co wagi.

  • Rozmowa trwa i rozwija się

    Każdy token, który jest już w konwersacji, pozostawia coś w pamięci podręcznej klucz-wartość, więc nie trzeba jej ponownie obliczać. Pamięć podręczna rośnie wraz z długością kontekstu i z każdym żądaniem obsłużonym w tym samym czasie. Długi kontekst lub obciążony punkt końcowy może potrzebować tyle samo pamięci, co mały model.

  • Więc: znowu ćwierć do połowy

    Zaplanuj co najmniej o ćwierć więcej pamięci karty niż wag, a jeśli kontekst jest długi lub punkt końcowy jest zajęty, zaplanuj jeszcze połowę. Tę zasadę stosuje tabela w następnej sekcji — każda karta, której dotyczy, ma półtora raza więcej wag.

  • A jeśli jest blisko, powiedz o tym przed zakupem

    Podaj nam model, kwantyzację, długość kontekstu, którego potrzebujesz, i przybliżoną liczbę zamówień na raz. Wolimy przekonać Cię do zamówienia większej karty lub mniejszego modelu teraz, niż przyjąć zamówienie, które rozczaruje Cię w pierwszym tygodniu i wróci z prośbą o zwrot pieniędzy.

Krok trzeci

Która karta obsługuje który model.

Odczytaj rozmiar modelu w dół i poprzek, aby uzyskać precyzję, z jaką chcesz wykonać pomiar. Każda komórka nazywa najmniejszą kartę, którą pasujemy i która mieści te obciążniki, z miejscem na obsługę, i łączy się z maszyną, w której się znajduje. Tam, gdzie katalog nie zawiera niczego, co działałoby samodzielnie, komórka to zaznacza, zamiast pozostawiać puste pole.

The smallest card we fit that holds the weights with room left to serve — that is 1.5× the weights, the generous end of the quarter-to-a-half head-room rule below. No prices here on purpose: GPU dedicated servers holds every one.
If you want to runat 16-bitat 8-bitat 4-bit
7-8 billion parametersTESLA P40 / QUADRO P600024 GB16 GB of weightsTITAN V12 GB HBM28 GB of weightsTESLA P48 GB GDDR55 GB of weights
13-14 billion parametersRTX A600048 GB GDDR6 ECC28 GB of weightsTESLA P40 / QUADRO P600024 GB14 GB of weightsTITAN V12 GB HBM28 GB of weights
30-34 billion parametersMore than one cardNothing we fit holds it alone68 GB of weightsInstinct MI21064 GB HBM2e34 GB of weightsTesla V100 32GB32 GB HBM219 GB of weights
70 billion parametersMore than one cardNothing we fit holds it alone140 GB of weightsMore than one cardNothing we fit holds it alone70 GB of weightsInstinct MI21064 GB HBM2e38 GB of weights

Trzy rzeczy, których tabela nie może ci powiedzieć

  • Najmniejsza karta, która się zmieści, nie zawsze jest tą, której potrzebujesz. Pamięć decyduje o tym, czy model działa; wszystko inne w karcie decyduje o jej szybkości i liczbie osób, które może obsłużyć jednocześnie. Tabela optymalizuje pod kątem pierwszej opcji, ponieważ pierwsza to twarda ściana, a druga to kwestia preferencji. Jeśli przepustowość jest ważniejsza niż budżet, przejdź o krok wyżej na poniższej liście.
  • Starsze karty nie obsługują nowszych formatów liczb. Kilka części w naszym katalogu pochodzi sprzed FP8 i bfloat16, więc środowisko wykonawcze, które ich oczekuje, przełączy się na coś wolniejszego lub odmówi obsługi. Warto zadać to pytanie przed złożeniem zamówienia, a my udzielimy odpowiedzi w odniesieniu do konkretnej karty i konkretnego środowiska wykonawczego, a nie ogólnie.
  • Karta AMD obsługuje ROCm, a nie CUDA. Elementy Instinct oferują doskonały stosunek jakości do ceny i są odpowiedzią na pytanie, o którym mowa w kilku powyższych punktach, ale Twój stos musi obsługiwać ROCm. Większość obecnych środowisk uruchomieniowych obsługuje ROCm; niektóre narzędzia nadal go nie obsługują. Sprawdź swoje lub zapytaj, a sprawdzimy to razem z Tobą.

Jeśli odpowiedź brzmi „więcej niż jedna karta”, oznacza to, że wyceniamy konstrukcję, a nie opcję finalizacji zamówienia. Strona multi-GPU i multi-node wyjaśnia, jak wygląda i jakie są jej ograniczenia. Miesięczny koszt każdej z tych kart i koszt maszyny pod nią to serwery dedykowane GPU — każda kwota jest powiązana z konkretną maszyną, do której należy, dlatego ta strona ich nie powtarza.

Z pamięci, największy pierwszy

Każda dopasowana przez nas karta publikuje liczbę pamięci.

Ten sam katalog, strona z cenami GPU, posortowany na odwrót: ta strona zaczyna się od najtańszej kompletnej maszyny, ponieważ odpowiada na pytanie „ile to kosztuje”, a ta zaczyna się od największej karty, ponieważ odpowiada na pytanie „jaki jest największy moduł, który mogę uruchomić”. Karta, której pamięci producent nie publikuje, jest tutaj pomijana, a nie wyświetlana jako pusta, ponieważ wiersz, którego nie można porównać, jest bezużyteczny w porównaniu.

Kilka z nich występuje w więcej niż jednej obudowie, czasami w różnych cenach, a generacja magistrali maszyny pod spodem zmienia możliwości nowoczesnej karty — oba te elementy są dostępne w serwerach dedykowanych GPU . To, co jest gotowe do użycia w tej chwili, to zupełnie inne pytanie, na które odpowiadają serwery instant .

Co na nim zainstalujesz

Środowisko wykonawcze należy do Ciebie i to jest właśnie cel istnienia gołego metalu.

Maszyna jest dostarczana z czystym systemem operacyjnym i uprawnieniami root. Nie ma tu konieczności korzystania z usługi inferencji dostawcy, zarządzanego środowiska uruchomieniowego, które aktualizuje się automatycznie na tydzień przed terminem, ani interfejsu API przed własnym modelem. Instalujesz to, co chcesz, i przypinasz do wersji, z którą testowany był Twój kod.

vLLM

Typowa odpowiedź na potrzeby obsługi modelu dla rzeczywistego ruchu. Ciągłe przetwarzanie wsadowe i stronicowanie uwagi pozwalają jednej karcie odpowiadać na wiele żądań jednocześnie, a nie pojedynczo, co zazwyczaj odróżnia wersję demonstracyjną od usługi. Potrzebna jest w miarę nowoczesna karta.

llama.cpp

Typowa odpowiedź, gdy pamięć jest ograniczona lub karta jest starsza. Jej skwantyzowane formaty sprawiają, że duży model w ogóle mieści się na małej karcie, a procesor i karta będą z powodzeniem działać razem, gdy obciążenia nie będą do końca pasować. Wolniejszy na żądanie, o wiele bardziej wyrozumiały.

TGI i SGLang

Serwery produkcyjne z tej samej rodziny co vLLM, różniące się pod względem ustrukturyzowanego wyjścia, ponownego wykorzystania prefiksów i obsługi wielu modeli. Jeśli masz już taki serwer w swoim stosie, działa on tutaj bez zmian.

Ollama

Najkrótsza droga od pustej maszyny do modelu odpowiadającego na porcie. Warto zacząć od niej, nawet jeśli trafisz gdzie indziej, ponieważ w ciągu około dziesięciu minut pokaże Ci, czy rozmiar był prawidłowy.

Niezależnie od tego, co wybierzesz, sterownik, wersja CUDA lub ROCm oraz kompilacja frameworka należą do Ciebie i nic nie zostanie zaktualizowane. Jeśli wolisz, aby sterownik został zainstalowany przed przekazaniem, zaznacz to w zamówieniu i podaj wersję.

Jak szybko to będzie?

Nie publikujemy liczby tokenów na sekundę. Oto powód.

Każda taka liczba zależy od modelu, kwantyzacji, środowiska wykonawczego i jego wersji, rozmiaru partii, długości monitu, długości odpowiedzi oraz liczby żądań w toku. Zmiana dowolnego parametru powoduje wielokrotność tej wartości. Liczba w nagłówku, która nie zawiera wszystkich tych informacji, jest liczbą dobraną tak, aby dobrze wyglądała i byłaby cytowana.

Powiemy ci, co nią rządzi, tak abyś mógł sam rozważyć swój przypadek:

  • Odczyt monitu jest ograniczony obliczeniowo. Dzieje się to raz na żądanie, równolegle w całym wierszu polecenia, i to właśnie tutaj ujawnia się przepustowość arytmetyczna karty i jej obsługa nowszych formatów liczb.
  • Generowanie odpowiedzi jest ograniczone przepustowością pamięci. Każdy token wymaga odczytania wag, więc dla pojedynczego żądania limit to mniej więcej prędkość, z jaką karta może przesyłać strumieniowo swoją pamięć. Dlatego karta z wolniejszą pamięcią i większą jej ilością może przegrać z mniejszą, szybszą kartą pod względem opóźnienia, a jednocześnie wygrać pod względem dopasowania modelu.
  • To właśnie przetwarzanie wsadowe czyni je ekonomicznym. Jednoczesna obsługa kilku żądań amortyzuje ten ciężar na wszystkich, dlatego całkowita przepustowość gwałtownie rośnie wraz ze współbieżnością, podczas gdy opóźnienie na żądanie praktycznie się nie zmienia — aż do wyczerpania miejsca w pamięci podręcznej wartości kluczowych, w którym to momencie wszystko ulega degradacji naraz. Znów zapas mocy obliczeniowej.

Zamiast tego poproś o prawdziwą odpowiedź

Podaj nam model, planowaną kwantyzację, długość kontekstu i przybliżoną liczbę współbieżnych żądań, których się spodziewasz. Jeśli uruchomiliśmy coś podobnego, powiemy, co zaobserwowaliśmy i na czym to polegało. Jeśli nie, również to podamy.

Stanowi lepszą podstawę do podjęcia decyzji o zakupie niż tabela porównawcza. Wypełnienie jej zajmie około minuty.

Standardowe godziny wsparcia to: telefon, czat i zgłoszenia, każdego dnia w roku. Czas reakcji działu wsparcia jest podany na piśmie.

Poza służbą

Dokładne dostrajanie wymaga znacznie więcej miejsca niż serwowanie.

Wszystko powyżej określa rozmiar modelu na potrzeby wnioskowania: wagi na wejściu, tokeny na wyjściu. Trenowanie lub dostrajanie tego samego modelu to inny problem z pamięcią, a różnica nie jest mała.

Dlaczego pamięć jest droższa

Obsługa wymaga wag. Trening wymaga wag, gradientów i własnego stanu optymalizatora dla każdego aktualizowanego parametru, wszystkich naraz, a także aktywacji, które musi przechowywać, aby móc działać wstecz w sieci. 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ć na tej samej karcie.

Dlatego większość ludzi nie robi tego w pełni

Metody efektywne pod względem parametrów — adaptery, aktualizacje niskiej rangi i ich skwantyzowane warianty — aktualizują niewielką część parametrów i wymagają odpowiednio niewielkiej części dodatkowej pamięci. W przypadku większości zadań, które potocznie nazywa się dostrajaniem, jest to zarówno praktyczne rozwiązanie, jak i rozwiązanie, które pasuje do sprzętu, na który Cię stać.

Co nam powiedzieć

Model, metoda, długość sekwencji i rozmiar zbioru danych. Nie będziemy tu publikować mnożnika, ponieważ uczciwy mnożnik zależy od wszystkich czterech, a zmyślona wartość, która zaniża rozmiar Twojej maszyny, jest dla nas obu gorsza niż rozmowa. Jeśli odpowiedź brzmi: więcej niż jedna karta, wiele procesorów graficznych i wiele węzłów wyjaśnia, jak wygląda taka konfiguracja.

Autobus ma tu znaczenie, ale nie w kontekście obsługi

Pętla treningowa przesyła strumieniowo partie danych przez łącze między procesorem a kartą w sposób ciągły, więc generowanie danych PCIe przez maszynę pod spodem stanowi realne ograniczenie, a nie specyfikację. Wnioskowanie na modelu rezydentnym ledwo to uwzględnia. Która platforma zapewnia karcie, które łącze jest publikowane na serwerach dedykowanych GPU i porównywane między platformami w systemach wieloprocesorowych i wielowęzłowych .

Zapytano wcześniej

Osiem pytań, na które odpowiada ta strona.

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.

For the record

Everything on this page, as figures.

Card memory is the manufacturers’ published figure; which cards exist is read from the order catalogue when this page was served. No monthly price appears here on purpose — GPU dedicated servers holds every one, against the exact machine it belongs to.

What decides whether a model runs
Card memory, and almost nothing else on the order form. The weights either fit or they do not — a card a couple of gigabytes short does not run slower, it fails to load. Clock speed and core count decide how fast it is once it fits.
How much memory a model needs
Parameters multiplied by bytes per parameter: two bytes each at 16-bit, one at 8-bit, half at 4-bit. That is the WEIGHTS. The runtime, the activations and the key-value cache for the conversation live in the same memory, so budget a quarter to a half again on top before choosing a card.
Largest model on a single card here
70 billion parameters at 4-bit, with room left to serve. Past that the answer is more than one card in one machine, which is a build we quote rather than a checkout option — multi-GPU and multi-node is the page for it.
Biggest card we fit
RTX PRO 6000 Blackwell 96GB, 96 GB GDDR7 ECC. Card memory figures are the manufacturers' published ones; a card whose figure we could not source is left out of the comparison rather than guessed at.
Which runtime
Yours. The machine arrives with a clean operating system and root, and you install vLLM, llama.cpp, TGI, SGLang, Ollama or anything else, pinned to the version your code was tested against. Nothing upgrades underneath you, and there is no vendor runtime you have to go through.
Throughput
We publish no tokens-per-second figure, deliberately, because we have not measured one under conditions we would be willing to have quoted back at us. What governs it is the card's memory bandwidth while generating, its arithmetic while reading the prompt, and how many requests you batch. Ask with the model, the quantisation and the expected concurrency and we will say what we have actually seen.
Fine-tuning and training
Both are ordinary work here, and both need considerably more memory than serving the same model: gradients and optimiser state sit alongside the weights. A parameter-efficient method needs a fraction of what a full fine-tune does. Tell us the method and the model and we will size it rather than have you find out after delivery.
Tenancy
One tenant per physical machine and the card passed straight through to your operating system. No hypervisor, no MIG partition, no vGPU profile, no time-slicing scheduler, and nobody else's workload on the card. What you measure on the first afternoon is what you keep.
Bandwidth
Unmetered in both directions at every port speed, with no transfer allowance and no egress line on any invoice. Pulling weights down and serving tokens back out costs nothing beyond the port.
What this page does not price
Cards, or anything else. Every card we fit, what each adds per month and what the machine under it costs are on GPU dedicated servers, each figure against the exact machine it belongs to.