← Powrót do artykułu (situus.pl)

Optymalizacja modelu sztucznej inteligencji Gemma 4 12B z wykorzystaniem metody LoRA oraz ustrukturyzowanego wnioskowania łańcuchowego

Situus

Badania niezależne · situus.pl

Czerwiec 2026

Streszczenie

Niniejsza praca opisuje proces dostrajania (fine-tuning) otwartego modelu językowego Gemma 4 12B w kierunku generowania zaawansowanego kodu programistycznego (HTML/CSS/JS), ze szczególnym naciskiem na nowoczesną estetykę front-endu oraz logikę aplikacji webowych. Zmiana początkowej architektury (4B) na wariant 12B wymusiła powiększenie autorskiego zbioru danych treningowych z 1 do blisko 12,3 miliona tokenów. Ponadto wprowadzono rygorystyczną, 9-etapową strukturę algorytmiczną Chain of Thought (CoT) [1], aby wyeliminować błędy logiczne i tzw. pętle myślowe. W pracy opisano krytyczne zjawiska napotkane podczas treningu, m.in. katastrofalne zapominanie [2], optymalizację krzywych strat, paradoks parametru Dropout [3] oraz inżynierię konwersji GGUF. Zastosowanie adaptacji LoRA [4] pozwoliło na przeprowadzenie zaawansowanego fine-tuningu na konsumenckiej karcie graficznej RTX 5060 Ti 16 GB. Wytrenowany model (STARK-WEB 12B) zostanie udostępniony publicznie na licencji open-source.

Słowa kluczowe: fine-tuning, LoRA, Chain of Thought, kwantyzacja QAT, destylacja wiedzy, duże modele językowe, generowanie kodu, Gemma 4.

1. Wstęp

Duże modele językowe (LLM, Large Language Models) są parametrycznymi modelami autoregresyjnymi opartymi na architekturze Transformer [5], których wiedza zakodowana jest w miliardach wyuczonych wag. Początkowa faza niniejszych badań opierała się na modelu Gemma 4 w wersji 4B (4 miliardy parametrów). Empirycznie wykazano, że model ten nie posiadał dostatecznej pojemności (model capacity), aby generować poprawny logicznie kod JavaScript wymagany do tworzenia złożonych aplikacji przeglądarkowych.

Zjawisko to jest analogiczne do próby aproksymacji bardzo złożonej, wielowymiarowej funkcji za pomocą wielomianu zbyt niskiego stopnia – system nie dysponował wystarczającą liczbą parametrów, aby zakodować skomplikowane schematy logiczne. Zbiegło się to w czasie z premierą nowego wariantu: Gemma 4 12B (12 miliardów parametrów). Decyzja o natychmiastowym przejściu na nową, trzykrotnie większą architekturę pozwoliła ominąć limity pojemności, lecz jednocześnie wymusiła przebudowę metodyki uczenia.

2. Podstawy teoretyczne (Przystępne wyjaśnienie)

Przed przejściem do szczegółów technicznych i formalizmów matematycznych, niniejsza sekcja przedstawia kluczowe pojęcia wykorzystane w artykule w sposób przystępny, z zastosowaniem analogii ułatwiających zrozumienie dla czytelnika spoza dziedziny uczenia maszynowego.

2.1. Autoregresyjne modelowanie języka

Współczesne modele językowe, takie jak Gemma 4, są w swojej istocie zaawansowanymi systemami autoregresyjnej predykcji tokenów – funkcjonalnie przypominającymi systemy autouzupełniania tekstu znane z urządzeń mobilnych, lecz operującymi na znacznie większej skali.

Model uczy się na podstawie miliardów tekstów z internetu (książek, artykułów, kodu źródłowego). Jego zadaniem jest przewidzenie, jaki token (fragment słowa lub znaku) powinien pojawić się jako następny na podstawie dotychczasowego kontekstu. Jeśli napiszemy "Stolicą Polski jest...", model na podstawie wyuczonych statystyk przypisze najwyższe prawdopodobieństwo tokenowi "Warszawa". Analogicznie, przy generowaniu kodu HTML model przewiduje sekwencje tokenów (nawiasy, słowa kluczowe JavaScript, deklaracje CSS), które najczęściej współwystępują w podobnych kontekstach programistycznych.

2.2. Pojemność modelu a złożoność zadania

Wielkość modelu określa się w parametrach (oznaczanych literą B – od angielskiego billions, czyli miliardy). Parametry stanowią wyuczone wagi sieci neuronowej – im ich więcej, tym większą wiedzę i bardziej skomplikowane zależności model jest w stanie zakodować.

Początkowo próbowano trenować model w wersji Gemma 4 4B (4 miliardy parametrów). Intuicyjnie można to porównać do próby nauczenia zdolnego, lecz początkującego studenta pisania zaawansowanych gier 3D w JavaScript – proste zadania (np. kalkulator) są wykonalne, ale złożona logika gier wyczerpuje pojemność reprezentacyjną modelu. Przejście na wersję Gemma 4 12B (12 miliardów parametrów) trzykrotnie zwiększyło liczbę wyuczalnych wag, co pozwoliło modelowi zakodować zarówno wiedzę o zaawansowanej trygonometrii, bibliotece Three.js do grafiki 3D, jak i o skomplikowanym zarządzaniu stanem okien w systemie operacyjnym.

2.3. Chain of Thought (CoT) – wnioskowanie krok po kroku

Wyobraź sobie, że ktoś każe Ci rozwiązać w pamięci, w ułamku sekundy, bardzo trudne zadanie matematyczne (np. pomnożyć 473 przez 289) i natychmiast wypowiedzieć na głos sam wynik. Istnieje ogromne prawdopodobieństwo, że się pomylisz. Jeśli jednak dostaniesz kartkę papieru (brudnopis) i rozpiszesz to zadanie krok po kroku (mnożenie pod kreską), bez trudu podasz bezbłędny wynik.

Dokładnie tym dla modelu jest Chain of Thought (CoT – Łańcuch Myśli) ukryty za specjalnymi znacznikami <|channel>thought. Zamiast kazać modelowi natychmiast pisać kod HTML (co często prowadzi do błędów logicznych, zapominania o zamknięciu tagów czy niedziałających zmiennych w JS), model jest zmuszany do „myślenia na głos” w brudnopisie. Najpierw planuje strukturę aplikacji, wypisuje potrzebne zmienne, projektuje wygląd w CSS, a dopiero po upewnieniu się, że plan jest spójny, zaczyna pisać właściwy kod. Brudnopis ten jest niewidoczny dla użytkownika końcowego, ale stanowi klucz do logicznej bezbłędności modelu.

2.4. Metoda LoRA – efektywna adaptacja parametrów

Główna wiedza modelu Gemma 4 12B (nasze 12 miliardów parametrów) to jak olbrzymia biblioteka narodowa zawierająca 12 miliardów grubych ksiąg. Gdybyśmy chcieli nauczyć model nowej specjalizacji (np. specyficznego, nowoczesnego stylu pisania kodu i myślenia w 9 krokach), tradycyjny trening wymagałby przepisania i zmodyfikowania wszystkich 12 miliardów książek od nowa. Wymagałoby to superkomputerów wartych miliony złotych i gigantycznych ilości prądu.

Metoda LoRA (Low-Rank Adaptation) rozwiązuje ten problem. Zamiast modyfikować całą bibliotekę (wagi bazowe modelu), zostawiamy ją całkowicie nienaruszoną (zamrożoną). Zamiast tego wręczamy bibliotekarzowi jeden mały, lekki notatnik (o objętości zaledwie kilkudziesięciu megabajtów). W tym notatniku zapisujemy wyłącznie różnice i nowe reguły – np. „stosuj styl cyberpunkowy”, „zawsze używaj 9 kroków myślenia”, „stosuj dynamiczne okna”. Kiedy zadajesz modelowi pytanie, korzysta on ze swojej ogólnej wiedzy z wielkich ksiąg (model bazowy), ale nakłada na nią specyficzne instrukcje zapisane w podręcznym notatniku (adapterze LoRA). Dzięki temu trening jest niezwykle tani, szybki i można go przeprowadzić na zwykłym, domowym komputerze.

2.5. Zjawisko przeuczenia (Overfitting)

Podczas pierwszych prób (wersja v1.0) model został poddany zbyt agresywnej adaptacji (zbyt wysoka skala LoRA bez regularyzacji dropoutem). W efekcie model uległ przeuczeniu (ang. overfitting) [3].

Można to porównać do ucznia, który wykuł na pamięć konkretne pytania i odpowiedzi z poprzednich egzaminów – na identycznym pytaniu odpowiada idealnie, lecz przy najdrobniejszym odstępstwie generuje zupełnie błędne odpowiedzi. Wersja v1.0 modelu potrafiła wygenerować estetycznie zaawansowany kod, ale przy instrukcjach spoza dystrybucji treningowej generowała niedziałający kod z błędami składniowymi (typos) i pustym ekranem w przeglądarce. Dopiero wprowadzenie kontrolowanego szumu (Dropout) w wersjach v1.2 i v1.3 zmusiło model do ekstrakcji ogólnych reguł programistycznych zamiast memoryzacji konkretnych przykładów.

2.6. Kwantyzacja z uwzględnieniem treningu (QAT)

Model Gemma 4 12B w pełnej precyzji zajmuje na dysku około 24 gigabajtów i wymaga bardzo drogich kart graficznych do uruchomienia. Aby uruchomić go na domowym laptopie, stosuje się kwantyzację – czyli kompresję wag (np. z formatu 16-bitowego do 4-bitowego). To trochę jak zmniejszanie rozmiaru i rozdzielczości zdjęcia, by zajmowało mniej miejsca na dysku.

Zwykła kwantyzacja (Post-Training Quantization) przypomina spakowanie rzeczy do plecaka na siłę po skończeniu pakowania – niektóre delikatne przedmioty (np. precyzyjne tokeny zamykające myślenie) mogą ulec zgnieceniu (zaokrągleniu do zera), przez co model zaczyna „bełkotać” i traci stabilność. W projekcie wykorzystano metodę QAT (Quantization-Aware Training). Uczyliśmy model na wagach, które już w trakcie treningu „wiedziały”, że będą skompresowane. To tak, jakby trenować biegacza do biegu z ciężkim plecakiem od samego początku. Dzięki temu ostateczna kompresja do 4-bitów (format GGUF) nie popsuła zdolności logicznych modelu, pozostawiając go stabilnym i niezwykle szybkim.

3. Metodologia i Architektura Zbioru Danych (Dataset)

Kluczowym aspektem projektu był nie tylko sam wolumen danych, lecz przede wszystkim ich jakość oraz specyficzna struktura. Zamiast budować jednorazowo statyczną bazę, zbiór danych był płynnie powiększany i skrupulatnie udoskonalany wraz z postępami i kolejnymi generacjami modelu. Model uczy się poprzez aproksymację wzorców, dlatego zbiór treningowy musiał w każdej iteracji reprezentować najwyższe standardy inżynierii oprogramowania. Aktualny zbiór danych (STARK-WEB v1.3) charakteryzuje się następującymi parametrami ilościowymi:

W celu uzyskania wysokiej wierności (ang. fidelity) generowanego kodu, zrezygnowano z uproszczonej metody generowania jednostopniowego (ang. zero-shot generation). Zbiór danych został wytworzony przy użyciu techniki destylacji wiedzy (ang. Knowledge Distillation) [9] z komercyjnego modelu referencyjnego (Gemini 3.5 Flash High), przechodząc przez proces wieloetapowej rafinacji.

Każda z instrukcji (w obecnej iteracji 806) była przetwarzana przez model referencyjny minimum dwukrotnie. Wyjściowy kod był ponownie przesyłany jako kontekst wraz z dedykowanym promptem poprawiającym (ang. critique-and-refine prompt), którego zadaniem było zlokalizowanie i eliminacja błędów semantycznych, optymalizacja struktury oraz poprawa estetyki kodu źródłowego.

Z uwagi na optymalizację kosztów oraz dążenie do pełnej kontroli jakości, potok przetwarzania danych (ang. data pipeline) został podzielony na dwie odrębne fazy:

Struktura danych opiera się na monolitycznej spójności (Single-File Architecture – generowanie kodu HTML/CSS/JS w jednym pliku) oraz nowoczesnej estetyce (CSS Grid/Flexbox, glassmorphism, zmienne CSS, płynne animacje). Zbiór został opracowany w około 90% w języku angielskim i w 10% w języku polskim, zapewniając pełną dwujęzyczność.

3.1. Charakterystyka tokenizacji i ekstrapolacja na jednostki tekstowe

Zależność między liczbą tokenów a fizyczną objętością tekstu jest determinowana przez specyfikę językową i składniową. W języku angielskim 1 token odpowiada średnio 0,75 słowa (ok. 4 znakom), natomiast w języku polskim, z uwagi na fleksję, jest to od 1,2 do 1,8 tokenu na słowo. W przypadku hybrydowego kodu i myślenia w bazie STARK-WEB, empiryczny przelicznik wynosi około 3,2 znaku ze spacjami na 1 token. Przekłada się się to na następujące miary:

4. Algorytmizacja Wnioskowania (Chain of Thought)

Podczas wstępnych testów, model stosujący tradycyjne wnioskowanie CoT często wpadał w nieskończone pętle myślowe, analizując problem cyklicznie i nie przechodząc do pisania kodu. Aby to rozwiązać, zaimplementowano sztywną algorytmizację procesu myślowego. Cały proces wnioskowania w zbiorze został podzielony na 9 kolejnych etapów i ograniczony twardym warunkiem stopu: znacznikiem [END_OF_THINKING] wewnątrz tagów strukturalnych.

Listing 1: Struktura kanału wnioskowania (9-etapowy protokół Chain of Thought) wymuszana na modelu.

<|channel>thought
1. Understand the Goal: [Podsumowanie celu]
2. Inputs: [Dane wejściowe i zdarzenia]
3. Output: [Elementy renderowane w DOM]
4. Identify Key Constraints & Technologies: [Wybór API i ograniczeń]
5. Design the HTML Structure: [Planowanie struktury tagów]
6. Design the CSS: [Mapowanie kolorów HSL i layoutów]
7. Design the JavaScript: [Projektowanie logiki zdarzeń i pętli]
8. Refinement & Implementation: [Autokorekta i optymalizacje]
9. Final Review: [Walidacja wymagań]
---
[END_OF_THINKING]
<channel|>

Sztywne oddzielenie kanału myślowego pozwoliło wyeliminować halucynacje logiczne i semantyczne niemal do zera.

4.1. Konieczność budowy dedykowanego interfejsu (Stream API)

Wprowadzenie dedykowanych tokenów strukturalnych (<|channel>thought) sprawiło, że standardowe oprogramowanie klienckie nie potrafiło poprawnie renderować tekstu wynikowego – wyświetlając myśli modelu jako jawny tekst dla użytkownika. Aby temu zapobiec, opracowano dedykowany interfejs webowy z asynchronicznym parserem API strumieniowego. Interfejs na bieżąco izoluje „napływające” fragmenty myślenia (chunks) do interaktywnego, zwijanego obszaru („brudnopisu”), wyświetlając użytkownikowi wyłącznie sformatowany, gotowy kod wynikowy.

5. Matematyczne Podstawy i Fuzja Wag LoRA (Low-Rank Adaptation)

Uczenie modelu Gemma 4 12B w pełnej precyzji wymaga ogromnych zasobów sprzętowych. Zastosowano adaptację LoRA [4], która zamiast aktualizować pełną macierz wag \(W \in \mathbb{R}^{d \times k}\) (np. 4096 × 4096 – 16 milionów wag), wprowadza zmianę \(\Delta W\) jako iloczyn dwóch wąskich macierzy o niskim rzędzie (rank) \(r\):

\[W_{\text{nowe}} = W + \Delta W = W + \frac{\alpha}{r} \, B A \quad \text{gdzie} \quad B \in \mathbb{R}^{d \times r}, \; A \in \mathbb{R}^{r \times k} \tag{1}\]

Przy rzędzie \(r=64\), zamiast 16 milionów wag w pojedynczej warstwie, modyfikuje się jedynie ok. 524 288 parametrów (\(B\): 4096 × 64, \(A\): 64 × 4096). W zastosowanej konfiguracji LoRA jest aplikowana do siedmiu typów projekcji (q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj), co łącznie daje znacznie większą, lecz wciąż niewielką w porównaniu z pełnym modelem, liczbę parametrów trenowalnych. Pozwoliło to na drastyczne obniżenie wymagań pamięciowych.

5.1. Zjawisko „Znikającej LoRA” (Vanishing LoRA) przy kompresji NF4

Zidentyfikowano krytyczny problem podczas próby fuzji wag (łączenia macierzy LoRA z bazową macierzą wag) bezpośrednio na modelu skwantyzowanym do formatu 4-bitowego (NF4). Z uwagi na ogromną kompresję i małą precyzyję siatki NF4, niewielkie przesunięcia wag wnoszone przez LoRA były zaokrąglane do zera (zanikały). Wyeksportowany model tracił wyuczone zdolności logiczne i zachowywał się jak czysty model bazowy. Rozwiązaniem okazało się przeprowadzenie fuzji w pełnej precyzji BFloat16.

5.2. Rozwiązanie limitu pamięci VRAM na GPU konsumenckim

Przeprowadzenie fuzji wag 12B w precyzji BFloat16 wymaga ponad 24 GB pamięci, co na testowej karcie RTX 5060 Ti (16 GB) prowadziło do błędów braku pamięci (OOM). Aby to obejść, proces scalania zaimplementowano hybrydowo bezpośrednio na pamięci RAM i procesorze komputera (Device Map ustawiony na cpu). Mimo dłuższego czasu obliczeń, pozwoliło to na 100% precyzyjne scalenie modelu przed ostatecznym eksportem.

5.3. Matematyczna walidacja fuzji wag normą L2

W celu naukowej weryfikacji poprawności scalenia wag, wdrożono algorytm liczący globalną normę macierzy wag (odległość euklidesową wag, czyli normę L2) za pomocą funkcji torch.norm() przed i po fuzji. Wykrycie mierzalnej zmiany normy tensorów po fuzji dało empiryczny dowód na prawidłową integrację adaptera LoRA z modelem bazowym.

6. Optymalizacja Procesu Treningowego i Regularyzacja

Proces dostrajania parametrów wymagał pokonania kilku barier algorytmicznych, które mogły doprowadzić do degradacji modelu:

6.1. Katastrofalne zapominanie (Catastrophic Forgetting)

Podczas wczesnej kalibracji zaobserwowano, że zbyt wysoka szybkość uczenia (Learning Rate) powodowała, że model szybko uczył się nowego formatu myślenia, ale drastycznie tracił swoją bazową wiedzę o składni języków [2]. Pętla CoT była poprawna, ale ostateczny kod HTML/JS zawierał błędy składniowe. Wymagało to obniżenia współczynnika uczenia.

6.2. Paradoks LoRA Dropout i regularyzacja L2

Początkowe założenie zerowej wartości Dropout (dla idealnej replikacji kodu) doprowadziło do dosłownego uczenia się kodu na pamięć (memoryzacja). Dopiero narzucenie 5% szumu (lora_dropout = 0.05) oraz L2 regularyzacji (weight_decay = 0.01) zmusiło model do wyciągania ogólnych reguł logicznych i składniowych, co całkowicie wyeliminowało błędy w wyjściowym kodzie.

6.3. Szum kwantyzacyjny (PTQ vs QAT)

Tradycyjna kompresja Post-Training Quantization (PTQ) modelu 16-bitowego do formatu 4-bitowego GGUF wprowadzała szum, który zacierał delikatne granice myślenia CoT (model mylił tokeny wyjścia [END_OF_THINKING]). Zastosowano technologię Quantization-Aware Training (QAT) [6] – jako model bazowy wybrano wariant google/gemma-4-12B-it-qat-q4_0-unquantized (symulujący szum kwantyzacyjny w trakcie uczenia). Dzięki temu ostateczny eksport do formatu GGUF 4-bit zachował stabilność logiczną modelu 16-bitowego.

6.4. Zarządzanie VRAM i anomalie logowania

Aby zmieścić trening kontekstu 43 000 tokenów w 16 GB VRAM, wdrożono Gradient Checkpointing [7] (dynamiczne przeliczanie aktywacji zamiast trzymania ich w pamięci podręcznej – oszczędność ok. 60% VRAM) oraz Paged AdamW 8-bit [8] (przenoszenie nieaktywnych stanów optymalizatora do pamięci RAM komputera). Wykryto i zdiagnozowano również błąd biblioteki Hugging Face Transformers, która przy nieliniowej akumulacji gradientów generowała fałszywe skoki błędu (skok train_loss do 2,3) na granicach epok, podczas gdy rzeczywista strata wynosiła stabilne 0,2.

7. Przebieg Eksperymentów i Ewolucja Modelu

Rozwój modelu STARK-WEB przebiegał w czterech głównych fazach, co pozwoliło na dokładną analizę wpływu parametrów uczenia i danych na wynik końcowy:

8. Wyniki i Analiza Porównawcza (Evaluation)

Ewaluacja przeprowadzona na wariancie STARK-WEB 12B ukazuje wyraźny skok jakościowy w stosunku do komercyjnych modeli referencyjnych o podobnym lub większym rozmiarze.

8.1. Wewnętrzny benchmark jakościowy (LLM-as-a-Judge)

W celu uzyskania powtarzalnej i skalowalnej metryki ewaluacyjnej, opracowano wewnętrzny benchmark oparty na metodologii LLM-as-a-Judge. Zbiór testowy składał się z zestawu zróżnicowanych promptów wykraczających poza dystrybucję danych treningowych, obejmujących zarówno proste komponenty UI, jak i złożone aplikacje webowe z zaawansowaną logiką JavaScript. Każdy wygenerowany kod był automatycznie oceniany przez duży, zewnętrzny model SOTA (Gemini) w skali 0–100 pod kątem czterech kryteriów: poprawności kodu HTML/CSS, funkcjonalności logiki JavaScript, estetyki wizualnej i nowoczesności interfejsu oraz zgodności z instrukcją użytkownika. Wynik końcowy stanowił średnią ważoną tych komponentów.

Tabela 1: Wyniki wewnętrznego benchmarku LLM-as-a-Judge na zbiorze testowym poza dystrybucją treningową.

Model / Wersja Wynik benchmarku eval_loss Uwagi
Gemma 4 12B QAT (model bazowy) 66,5 — Baseline SOTA bez fine-tuningu
STARK-WEB v1.0 65,0 — Wyższa estetyka UI, lecz silny overfitting; błędy logiczne JS
STARK-WEB v1.2 68,0 0,9316 Regularyzacja Dropout + L2; stabilna logika
STARK-WEB v1.3 70,5 0,9149 Rozszerzony dataset (+77 algorytmicznych); rekordowy wynik

Wyniki ukazują charakterystyczną, nieliniową trajektorię rozwoju modelu. Wersja v1.0, pomimo subiektywnie lepszej estetyki generowanych interfejsów (wynikającej z agresywnej memoryzacji wzorców CSS ze zbioru treningowego), uzyskała wynik niższy od modelu bazowego (65,0 vs 66,5). Paradoks ten potwierdza destrukcyjny wpływ przeuczenia (overfitting) — model wytwarzał wizualnie atrakcyjne, lecz niedziałające aplikacje z martwymi event handlerami i błędami składniowymi w JavaScript, co sędzia LLM surowo penalizował. Dopiero wdrożenie regularyzacji w wersji v1.2 (Dropout 5%, L2 weight decay) pozwoliło przekroczyć baseline SOTA, osiągając 68,0. Ostateczna wersja v1.3, wzbogacona o 77 algorytmicznie zaawansowanych przykładów, osiągnęła wynik 70,5 — co stanowi wzrost o +6,0% względem modelu bazowego i potwierdza skuteczność zastosowanej metodologii ustrukturyzowanego CoT w połączeniu ze zbalansowaną regularyzacją.

8.2. Wizualna analiza porównawcza

(a) Oryginał (Nauczyciel) – Gemini 3.5 Flash
(b) Odtworzenie (Uczeń – wersja v0.9) – STARK-WEB 12B
Rysunek 1: Porównanie wygenerowanych interfejsów – model bazowy (Nauczyciel) vs. STARK-WEB 12B (Uczeń) dla identycznego polecenia "Make an HTML snake game in 1 file".

Już na wczesnym etapie rozwoju (wersja v0.9) model lokalny („Uczeń”) zaczął w sposób powtarzalny przewyższać estetycznie swój model referencyjny („Nauczyciela”). Rysunek 1 przedstawia wygenerowaną przez oba systemy grę „Snake” na podstawie prostego promptu: "Make an HTML snake game in 1 file". O ile model Gemini wygenerował poprawny logicznie, lecz surowy wizualnie interfejs, o tyle STARK-WEB 12B już w wersji v0.9 stworzył cyberpunkową aplikację „NEON SNAKE” z zaawansowaną poświatą neonową, dedykowanymi licznikami z wiodącymi zerami oraz automatyczną responsywnością (samodzielnie wykrył urządzenie mobilne i wyrenderował dotykowe przyciski sterujące na ekranie, ukrywając je na komputerach desktopowych).

9. Wnioski, Publikacja i Dalsze Badania

Wytrenowany model zostanie udostępniony bezpłatnie w globalnym repozytorium Hugging Face pod nazwą STARK-WEB 12B na licencji Apache 2.0, umożliwiając komercyjne i naukowe wykorzystanie asystenta bez opłat licencyjnych.

Podczas przygotowania wersji do pracy lokalnej, zidentyfikowano brak kompatybilności narzędzi llama.cpp z nową klasą modelową Hugging Face: Gemma4UnifiedForConditionalGeneration. Przeprowadzono udany proces patchowania kodu źródłowego konwertera, co umożliwiło poprawny eksport wag.

Dalsze plany badawcze zakładają przeniesienie opracowanej metodologii ustrukturyzowanego CoT oraz potoku danych na większą architekturę – Gemma 4 26B. Eksperymenty będą realizowane w chmurze obliczeniowej z wykorzystaniem procesorów graficznych NVIDIA A100. Zakłada się hipotezę, że większa pojemność modelu 26B pozwoli na całkowite wyeliminowanie drobnych błędów w zaawansowanej logice, takich jak interakcje okienek w systemach operacyjnych typu Browser OS.

10. Bibliografia

[1]J. Wei, X. Wang, D. Schuurmans, M. Bosma, B. Ichter, F. Xia, E. Chi, Q. Le, D. Zhou, „Chain-of-Thought Prompting Elicits Reasoning in Large Language Models”, Advances in Neural Information Processing Systems (NeurIPS), vol. 35, 2022.
[2]M. McCloskey, N. J. Cohen, „Catastrophic Interference in Connectionist Networks: The Sequential Learning Problem”, Psychology of Learning and Motivation, vol. 24, pp. 109–165, 1989.
[3]N. Srivastava, G. Hinton, A. Krizhevsky, I. Sutskever, R. Salakhutdinov, „Dropout: A Simple Way to Prevent Neural Networks from Overfitting”, Journal of Machine Learning Research (JMLR), vol. 15, pp. 1929–1958, 2014.
[4]E. J. Hu, Y. Shen, P. Wallis, Z. Allen-Zhu, Y. Li, S. Wang, L. Wang, W. Chen, „LoRA: Low-Rank Adaptation of Large Language Models”, Proceedings of ICLR, 2022.
[5]A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, Ł. Kaiser, I. Polosukhin, „Attention Is All You Need”, Advances in Neural Information Processing Systems (NeurIPS), vol. 30, 2017.
[6]B. Jacob, S. Kligys, B. Chen, M. Zhu, M. Tang, A. Howard, H. Adam, D. Kalenichenko, „Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference”, Proceedings of CVPR, pp. 2704–2713, 2018.
[7]T. Chen, B. Xu, C. Zhang, C. Guestrin, „Training Deep Nets with Sublinear Memory Cost”, arXiv preprint arXiv:1604.06174, 2016.
[8]T. Dettmers, M. Lewis, Y. Belkada, L. Zettlemoyer, „8-bit Optimizers via Block-wise Quantization”, Proceedings of ICLR, 2022.
[9]G. Hinton, O. Vinyals, J. Dean, „Distilling the Knowledge in a Neural Network”, arXiv preprint arXiv:1503.02531, 2015.
[10]Google DeepMind, „Gemma 4: Open Models Based on Gemini Technology”, Google Technical Report, 2026.