Pytanie „dlaczego model 30B jest szybszy niż 12B” brzmi jak błąd pomiaru: model o 30 miliardach parametrów generuje tekst szybciej niż model o 12 miliardach, na tej samej maszynie i w tej samej serii testów. Wynik jest jednak powtarzalny i ma jedną przyczynę.
Poniższe liczby pochodzą z serii pomiarów z września 2026, wykonanej na jednej maszynie: AMD Ryzen AI 9 HX 470, zintegrowana grafika Radeon 890M, 32 GB pamięci współdzielonej z procesorem, llama.cpp jako silnik inferencji.
Cztery pomiary, które wyglądają jak błąd
30,4 tokena na sekundę wobec 11,3
| Model | Typ | Rozmiar pliku | Tokenów na sekundę |
|---|---|---|---|
| granite 4.2 8B | gęsty, 8B | ok. 4 GB | 45,7 |
| Qwen3-Coder 30B-A3B | MoE, 3B aktywne | 18 GB | 30,4 |
| Gemma 4 12B | gęsty, 12B | 7,9 GB | 11,3 (dłuższy kontekst) |
| Qwen3.8 27B | gęsty, 27B | 16 GB | 7,6 |
Model 30B jest około 2,7 raza szybszy od modelu 12B:
30,4 ÷ 11,3 ≈ 2,7
Model 27B jest od tej dwunastki jeszcze wolniejszy, a najszybszym modelem na całej maszynie jest model 8B. Te wyniki układają się w regułę dopiero wtedy, gdy przestaniesz patrzeć na liczbę w nazwie.
Model gęsty a MoE
Aktywne parametry na token
Model gęsty (dense) wykorzystuje wszystkie swoje parametry do wygenerowania każdego tokena. Architekturę MoE opisuje dokumentacja transformers. Model o 30 miliardach parametrów przepuszcza przez siebie całe 30 miliardów, token po tokenie.
Model MoE (mixture of experts) ma łącznie tyle samo parametrów co model gęsty o tej samej nominalnej wielkości, ale na jeden token aktywuje tylko ich ułamek, zwykle 3–4 miliardy. Pozostałe parametry zajmują pamięć, ale w danym kroku nie biorą udziału w obliczeniach. W rezultacie model MoE o rozmiarze 30B generuje tekst w tempie zbliżonym do modelu 3B, a jego wiedza jest znacznie bliższa modelowi 30B.
Stąd oznaczenie „A3B” w nazwie Qwen3-Coder 30B-A3B: trzydzieści miliardów parametrów łącznie, z czego trzy miliardy są aktywne na token.
Dlaczego to działa akurat na tym sprzęcie
Wąskim gardłem jest pamięć, nie moc
Wąskim gardłem nie jest moc obliczeniowa, tylko przepustowość pamięci – dlatego liczby zależą od tego, jak llama.cpp rozkłada wagi na warstwy. W maszynie, w której procesor i grafika współdzielą pamięć systemową, przepustowość wynosi około 50–70 GB/s, podczas gdy RTX 4090 przekracza 1 TB/s. Tego ograniczenia nie da się obejść ustawieniami.
Skoro na każdy token trzeba odczytać z pamięci wszystkie aktywne parametry, o prędkości decyduje ich liczba, a nie rozmiar pliku. Gęsty model 12B odczytuje na token dwanaście miliardów parametrów, a MoE 30B-A3B około trzech. Cała różnica bierze się stąd.
Reguła wynikająca z pomiarów
- Modele MoE utrzymują zwykle 21–33 tokenów na sekundę, a rozmiar w nazwie nie przesądza o wyniku. Z trzynastu wpisów MoE w tej serii jedenaście mieści się w tym przedziale. Dwa pozostałe osiągają 16,3 i 17,86 tokena na sekundę i oba mają w nazwie „35B”, podobnie jak cztery modele mieszczące się w przedziale.
- Modele gęste powyżej 9 miliardów parametrów spadają do 14 tokenów na sekundę lub mniej, ponieważ ogranicza je przepustowość pamięci, a nie moc obliczeniowa.
- Najszybszy model na maszynie jest gęsty i mały: granite 4.2 8B osiąga 45,7. To jednak nie reguła dla każdego małego modelu gęstego. Gęsty Qwen3.8 9B osiąga 27,7–28,1, czyli tyle co dobre modele MoE, a inne gęste modele z klasy 9B spadają przy dłuższym kontekście do 13–14. Mały model gęsty bywa najszybszy, ale ma wiedzę modelu 8B, co widać przy trudniejszych zadaniach.
Zastrzeżenie dotyczące tabeli
Krótki kontekst daje 34 tokeny na sekundę
Gęsta Gemma 4 12B potrafi na krótkim zapytaniu, po rozgrzaniu modelu, osiągnąć 34 tokeny na sekundę. W tabeli stoi jednak wartość 11,3, ponieważ dotyczy ona dłuższego kontekstu, a to on odpowiada codziennej pracy: wklejasz dokument, prowadzisz rozmowę na dwadzieścia wiadomości, przekazujesz modelowi plik z kodem. Modele MoE nie wykazują w tych pomiarach takiego rozrzutu.
Czego ta reguła nie mówi
Dlaczego model 30B jest szybszy niż 12B, a nie tańszy
Nie mówi, że MoE jest darmowe. Odpowiedź na pytanie, dlaczego model 30B jest szybszy niż 12B, nie obejmuje ceny. Plik nadal zajmuje pamięć: Qwen3-Coder 30B-A3B to 18 GB, a Gemma 4 12B to 7,9 GB. Szybszy model jest w tym porównaniu jednocześnie tym, który wymaga maszyny z 32 GB. Prędkość zależy od liczby parametrów aktywnych, a to, czy model w ogóle się załaduje, zależy od rozmiaru pliku. To dwie osobne liczby i trzeba czytać obie. Oba te pliki są przy tym w tym samym pasmie bitów na wagę, więc różnica prędkości nie wynika z precyzji – pokazuję to na liczbach w tekście kwantyzacja: dlaczego lokalnie nie masz pełnego modelu.
Ile pamięci faktycznie potrzebujesz i co odpada przy 16 GB, policzyłem osobno: 16 GB czy 32 GB do lokalnego AI.
Co jeszcze, poza wyborem modelu, zwiększa prędkość (kwantyzacja, krótszy kontekst, MTP i nowsze metody spekulatywnego generowania tokenów), opisałem tutaj: jak przyspieszyć lokalny model AI.
Reguła na koniec jest krótsza niż cała tabela. Odpowiedź na pytanie, dlaczego model 30B jest szybszy niż 12B, brzmi: Model aktywuje trzykrotnie mniej parametrów na token, a wąskim gardłem jest pamięć. Na maszynie ze zintegrowaną grafiką najpierw sprawdzasz, ile parametrów model aktywuje na token, a dopiero potem, ile ma ich w nazwie.