Wróciłem do porównania Qwen vs Bielik. Wynik był, wniosek nie.
Trzy miesiące temu opublikowałem tu porównanie Bielika 11B z Qwenem 32B na scenariuszu prowadzenia małej agencji z Rumi przez 90 dni. Wyszło dramatycznie: 100% przeżywalności kontra 0%. Napisałem, że polski model rozumie co robić, ale nie umie tego wykonać ekonomicznie.
Ten wpis się nie skarżył, czytelnicy nie protestowali. Ja jednak wracałem do tamtej konkluzji, bo miałem wrażenie, że pominąłem coś dużego. Przy przygotowaniach do doktoratu wyszło, że rzeczywiście. Wynik był prawdziwy, ale mój wniosek z niego nie. Oto co się stało, gdy to domierzyłem.
Zarzut, który sam sobie postawiłem
W tamtym eksperymencie były dwa zlepki. Nie jeden.
Pierwszy: rozmiar wchodził w cenę razem z językiem. 11B kontra 32B to prawie trzykrotna różnica wielkości. Nie dało się rozstrzygnąć, czy przegrywa polski model, czy po prostu mniejszy model.
Drugi: modele nie miały tych samych warunków generowania. Qwen dostał temperaturę 0,5 i limit 2048 tokenów, Bielik 0,6 i 1600. Przy zadaniu, w którym co miesiąc trzeba wypluć rachunek i decyzję finansową w konkretnym formacie, o 20% krótsza odpowiedź to nie jest szczegół.
Przy takim układzie zdanie „polski model przegrywa na finansach" mogło w całości znaczyć „mniejszy model przegrywa na finansach" albo „model z krótszym limitem tokenów przegrywa na finansach". Trzeba to było rozdzielić.
Dwa nocne przebiegi
Do rozstrzygnięcia potrzebowałem dwóch nowych ramion. Oba są zrobione.
Ramię trzecie: Qwen 2.5 14B, ta sama rodzina co zwycięzca, wielojęzyczny, identyczne parametry jak 32B (temperatura 0,5, limit 2048). Jedyną różnicą wobec 32B jest rozmiar. To oddziela efekt rozmiaru od efektu języka wewnątrz jednej rodziny.
Ramię czwarte: Bielik 11B na parametrach Qwena (0,5 / 2048), żeby zobaczyć, czy krótszy limit tokenów zabijał wcześniej wynik. Ten przebieg musiałem puścić, żeby domknąć zarzut o parametry, nawet z ryzykiem, że po prostu potwierdzi to, co już było.
Ziarna 1000 do 1019, 90 dni symulacji, 20 przebiegów na ramię, lokalnie na moim GX10, bez chmury.
Cztery ramiona, te same ziarna
- Qwen 2.5 32B · parametry: 0,5 / 2048 · przeżyć: 100% · wynik: 94,6 · kasa: +85 930 · finanse: 100 · rep: 99 · strat: 95 · dobro: 92 · etyka: 71
- Qwen 2.5 14B · parametry: 0,5 / 2048 · przeżyć: 5% · wynik: 77,2 · kasa: -20 970 · finanse: 49 · rep: 94 · strat: 88 · dobro: 97 · etyka: 71
- Bielik 11B · parametry: 0,6 / 1600 · przeżyć: 0% · wynik: 72,5 · kasa: -48 688 · finanse: 34 · rep: 90 · strat: 90 · dobro: 98 · etyka: 71
- Bielik 11B · parametry: 0,5 / 2048 · przeżyć: 0% · wynik: 72,1 · kasa: -55 937 · finanse: 32 · rep: 90 · strat: 91 · dobro: 97 · etyka: 71
Wszystkie w wersjach AWQ, serwowane przez vLLM na GB10, --max-model-len 16384.
Czas obliczeń: 32B liczył 13,2 h, mniejsze modele po około 6 h.
Werdykt jest podzielony
Parametry nie były przyczyną. Czwarte ramię (Bielik na 0,5 / 2048) dało 0% wobec 0%, wynik 72,1 wobec 72,5, finanse 32 wobec 34. To była moja ostrożność, która się nie opłaciła, ale kosztowała jedną noc i teraz nikt nie musi się nad tym zastanawiać. Wynik zerowy też jest wynikiem i zostawiam go w tabeli, bo bez niego czwarte ramię wygląda jakby go nie było.
Rozmiar był przyczyną, i to prawie całą. Skok 32B → 14B to 95 punktów przeżywalności i 51 punktów finansów. Krok 14B → Bielik to już tylko 5 punktów przeżywalności i 15 finansów. Czyli z ogromnej różnicy między Qwenem 32B a Bielikiem zdecydowana większość jest różnicą wielkości, a nie języka. Na resztkę, w której nadal siedzi i język, i 21% różnicy rozmiaru między 11B a 14B, zostaje kilka punktów mieszczących się w szumie jednego przebiegu.
Uczciwe zdanie brzmi: poniżej pewnego rozmiaru model przestaje prowadzić firmę, niezależnie od języka.
To znaczy jedno: pierwszy wpis przypisał językowi to, co w przeważającej części było rozmiarem. Błąd w interpretacji, nie w pomiarze. Liczby były i zostają poprawne. Zmienia się to, czemu je przypisujemy.
Rzecz, której się nie spodziewałem
Popatrz na tabelę jeszcze raz. Rozróżnia wyłącznie jedna kolumna: finanse (100 / 49 / 32). Reputacja idzie 99 / 94 / 90 / 90, strategia 95 / 88 / 90 / 91, dobrostan 92 / 97 / 98 / 97. Te wymiary stoją praktycznie płasko przez wszystkie cztery ramiona, przy wynikach finansowych rozjeżdżających się od +86 tysięcy do -56 tysięcy.
Rozmiar modelu nie kupuje ogólnej lepszości. Kupuje kompetencję ekonomiczną i tylko ją. Mniejszy model dalej wie, co należy robić: dba o reputację, planuje, nie wypala zespołu. Po prostu nie umie tego wykonać finansowo.
To jest użyteczniejsza wiadomość niż ranking modeli, bo mówi do czego trzeba większego modelu, a do czego nie trzeba. Jeśli zadanie polega na dbaniu o klienta, planowaniu terminów albo pilnowaniu, żeby zespół nie zaharował się na śmierć, mniejszy model prawdopodobnie wystarczy. Jeśli polega na tym, żeby na koniec miesiąca się to spinało w liczbach, potrzebujesz większego. Innego rozwiązania nie widzę w tej tabeli.
Drugie odkrycie: Bielik trzyma format lepiej niż większy Qwen
W obu porównywalnych ramionach (parametry 0,5 / 2048) jest kolumna, która mnie zaskoczyła: udział dni bez akcji. To dni, w których model nie wyprodukował poprawnego formatu odpowiedzi i symulacja musiała go pominąć.
- Bielik 11B (0,6 / 1600): 19%
- Qwen 14B (0,5 / 2048): 33%
Bielik trzyma się formatu wyraźnie lepiej niż o jedną piątą większy Qwen. To nie jest podstawa do tego, żeby napisać „Bielik jest lepszy od Qwena 14B". Bielik przeżył 0 przebiegów na 20, Qwen 14B jeden. Różnica jednego przebiegu na dwadzieścia to szum, nie sygnał. Ale sam fakt, że mniejszy polski model produkuje mniej niepoprawnych odpowiedzi niż większy wielojęzyczny, jest wart odnotowania.
Cztery rzeczy, których ten eksperyment nie rozstrzyga
Piszę je sam, żeby nikt nie musiał grzebać:
Bielik 11B kontra Qwen 14B to wciąż nie ten sam rozmiar. 21% różnicy. Pełne rozdzielenie języka od wielkości wymagałoby modelu wielojęzycznego dokładnie tej samej wielkości co Bielik. Resztka różnicy przypisana „językowi" jest więc górną granicą, a nie pomiarem.
Różnica 14B kontra Bielik opiera się na jednym przebiegu. 5% to jeden przebieg na dwadzieścia, który przeżył. Jeden. Przy takiej podstawie zdanie „Qwen 14B jest lepszy od Bielika" byłoby nadużyciem. Właściwe jest: oba praktycznie nie przeżywają, różnica między nimi mieści się w szumie.
Jedna branża. Wszystkie sześć przebiegów tego eksperymentu to scenariusz agencji. Nie wiem, czy efekt rozmiaru wygląda identycznie w sklepie albo w usłudze lokalnej. Tego nie puszczałem.
Etyka wynosi 71 we wszystkich czterech ramionach, co do punktu. Identyczna wartość przy wynikach od +86 do -56 tysięcy nie wygląda na wynik, tylko na artefakt pomiaru. Albo funkcja oceniająca nie różnicuje tego wymiaru, albo scenariusz nie stawia dylematów etycznych. Wolę napisać to sam niż czekać, aż ktoś zauważy. To jest mój symulator i moja funkcja oceniająca, więc odpowiedzialność jest po mojej stronie.
Koszt liczenia psuje intuicję o oszczędzaniu
32B liczył się 13,2 h, mniejsze modele po około 6 h. Dwa razy dłużej.
Ale 32B skończył z plusem 86 tysięcy, a pozostałe z minusem od 21 do 56 tysięcy. Dwa razy dłuższe liczenie kupuje różnicę rzędu 140 tysięcy w wyniku symulowanym. Oszczędność na mniejszym modelu jest pozorna, bo mniejszy model nie jest tańszą wersją większego. Jest modelem, który tego zadania po prostu nie robi.
Ograniczenie sprzętowe, o którym warto wiedzieć
Przy czterech serwerach vLLM naraz zabrakło mi pamięci. 51 + 24 + 18 + 22 GB modeli plus reszta usług przekracza 121 GB unified memory na moim GX10. Na czas eksperymentu musiałem zatrzymać jeden z modeli, który normalnie pracuje w tle. To jest realna właściwość pracy na jednej maszynie. Jeśli planujesz podobny zestaw, doliczaj to do rachunku.
Co mi z tego dnia zostało
Tak sobie myślę - popełnianie błędów w publicznym wpisie nie jest wstydem. Wstydem jest niepoprawianie ich, jak się je zauważy. Ten wpis miał czytelników i nikt się nie skarżył. Sprawdziłem go sam, bo wniosek był niepewny, i dopiero druga noc liczenia pokazała, gdzie się myliłem. Koszt: dwie noce pracy GX10 i jedna zmiana w tym, co mówię o polskim modelu.
Tego nowego nie zrobiłem po to, żeby zamieść stary pod dywan. Zrobiłem, żeby pokazać metodę, nie ranking. Metoda mówi, że jak masz jedno porównanie z dwoma zlepionymi zmiennymi, wynik jest, a wniosek dopiero się okaże ;)