Zespół budujący usługę wnioskowania klasy produkcyjnej uruchomił sześć modeli językowych na DigitalOcean Inference przez 48 godzin. Model „tiny” za 0,20 USD miesięcznie okazał się lepszy od droższych opcji. Mieścił się w limicie 8 GB pamięci RAM ich dropletów i uniknął awarii, które unieruchomiły wariant 70B, zapewniając użyteczne opóźnienia i dokładność za ułamek kosztów.
Dlaczego ten test ma znaczenie
Przedsiębiorstwa udostępniające duże modele językowe (LLM) jako API często zakładają, że większe i droższe modele gwarantują najlepsze doświadczenia. W rzeczywistości środowiska produkcyjne muszą balansować między pamięcią, współbieżnością a gwarancjami czasu pracy (uptime). Model, który dobrze wygląda na papierze, może stać się obciążeniem, gdy wywołuje błędy typu out-of-memory (OOM) lub wstrzymuje usługę podczas zimnych startów (cold starts). Ten praktyczny eksperyment pokazuje, że tani model może być jedyną realną opcją na skromnym sprzęcie.
Sześciu pretendentów
| Model | Koszt miesięczny | Średnie opóźnienie | Dokładność* | Zużycie RAM / Awaria |
|---|---|---|---|---|
| mistral-tiny | $0,20 | 120 ms | 88 % | 1,2 GB |
| mistral-small | $0,80 | 180 ms | 91 % | 2,4 GB |
| mistral-medium | $2,50 | 250 ms | 93 % | 4,1 GB |
| mistral-large | $5,00 | 300 ms | 94 % | 6,8 GB |
| llama-70b | $8,00 | 450 ms | 95 % | AWARIA |
| mixtral-8x7b | $10,00 | 500 ms | 96 % | AWARIA |
*Dokładność odzwierciedla wydajność modeli w wewnętrznym zestawie benchmarków zespołu.
Model „tiny” kosztował mniej niż 0,25 USD miesięcznie i bez problemu mieścił się w limicie 8 GB pamięci. Dwa największe modele — llama-70b i mixtral-8x7b — przekroczyły ten limit i wielokrotnie doprowadzały do awarii hosta, co czyniło je bezużytecznymi mimo wyższych wyników dokładności.
Problemy, które pogrążyły duże modele
- Hard-coded endpoints – Pierwotna architektura wysyłała każde zapytanie do jednego modelu. Gdy ten model zawodził, całe API przestawało działać.
- Brak limitów pamięci – Większe modele zużywały całą dostępną pamięć RAM, wywołując błędy OOM bez ostrzeżenia.
- Opóźnienie zimnego startu – Pierwsze zapytania do nowo uruchomionego modelu trwały kilka sekund, co pogarszało odczuwalną responsywność.
- Nieograniczona współbieżność – Nagły wzrost liczby jednoczesnych zapytań nasycał pamięć i procesor, powodując awarie systemowe.
Surowe dane o wydajności nie mają znaczenia, jeśli usługa nie jest w stanie pozostać online pod realistycznym obciążeniem.
Rozwiązanie w postaci dynamicznego routingu
Inżynierowie przepisali ścieżkę zapytania, opierając się na trzech zasadach:
- Wybór modelu w czasie rzeczywistym – Router wybiera model dla każdego zapytania zamiast korzystać ze statycznego punktu końcowego.
- Świadomość sprzętowa – Każde zapytanie otrzymuje budżet pamięci; router kieruje zapytania tylko do modeli, które mieszczą się w pozostałej pamięci RAM.
- Łańcuchy awaryjne (fallback) – Jeśli wybrany model zawiedzie lub przekroczy limit czasu, router automatycznie podejmuje próbę z kolejnym najlepszym modelem.
Zrewidowana architektura wprowadza cztery konkretne zabezpieczenia:
- Ograniczona współbieżność – Semafory ograniczają równoległe procesy wnioskowania, zapobiegając wyczerpaniu pamięci.
- Limity czasu typu fail-fast – Rygorystyczne liczniki dla każdego zapytania przerywają działanie wolnych modeli, zanim zablokują one cały proces.
- Bufory pamięci – System rezerwuje 20% zapasu pamięci RAM na droplecie, gwarantując miejsce na procesy systemu operacyjnego i nagłe skoki zużycia.
- Rozgrzewanie (pre-warming) – Podczas startu wysyłane są zapytania testowe do każdego modelu, co eliminuje początkowy koszt zimnego startu.
Te środki przekształciły kruchą strukturę w odporną usługę, która utrzymuje ruch na skromnych dropletach z 8 GB RAM bez nadmiernej utraty dokładności.
Na co zwrócić uwagę w przyszłości
- Skalowanie sprzętu – W miarę jak dostawcy chmury oferują większe droplety z większą pamięcią w niższych cenach, punkt rentowności większych modeli może ulec przesunięciu.
- Kompresja modeli – Kwantyzacja lub destylacja wiedzy może zmniejszyć zapotrzebowanie na RAM modeli o wysokiej dokładności, pozwalając im działać na mniejszych maszynach.
- Routing adaptacyjny – Przyszłe routery mogą uczyć się w czasie rzeczywistym, który model oferuje najlepszy stosunek jakości do kosztów dla danego zapytania, jeszcze bardziej automatyzując balans między dokładnością a kosztem.
Wniosek jest prosty: w środowisku produkcyjnym model, który pozostaje aktywny pod presją, dostarcza większą wartość niż ten, który najlepiej wygląda na papierze. Wybieraj model na podstawie ograniczeń wdrożeniowych, a nie tylko na podstawie deklarowanej dokładności.
