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:

  1. Wybór modelu w czasie rzeczywistym – Router wybiera model dla każdego zapytania zamiast korzystać ze statycznego punktu końcowego.
  2. Ś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.
  3. Ł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.