external-link

Fine-tuning:
Moje prvé trénovanie

Ono to fakt žerie pamäť! Moja cesta od prvého „Out of Memory“ erroru až po model, ktorý konečne rozpráva ako človek z Trebišova. Neuveriteľné!

Prečo som sa do toho vôbec pustil?

Predstavte si, že máte superinteligentného robota, ktorý ale hovorí ako z učebnice gramatiky z roku 1994. To bol môj problém! Chcel som, aby môj model rozumel našim lokálnym výrazom a špecifickému tónu, ktorý používame v našom regióne. Fine-tuning nie je len nejaké magické slovíčko, je to reálny proces, kedy model „doučujete“ na vašich vlastných dátach. Úprimne? Na začiatku som vôbec netušil, či moja grafická karta nezhorí hneď pri prvej epoche!

Všetko to začalo po tom, čo som úspešne prešiel fázou zberu dát. Mal som tisíce riadkov textu a pocit, že som kráľ sveta. Ale realita ma rýchlo prefackala. Prvé spustenie skriptu skončilo okamžitým pádom. Ogo! Ukázalo sa, že nastaviť správne parametre je dôležitejšie ako mať drahý hardvér. Musel som sa naučiť, čo sú to vlastne tie „váhy“ a prečo je dôležité model nepretrénovať (overfitting), aby neopakoval len jednu vetu dookola.

V tomto denníku som spísal presné kroky, ktoré som urobil. Od nastavenia učiacich parametrov až po sledovanie grafov, ktoré mi zo začiatku pripomínali skôr seizmograf počas zemetrasenia než úspešný tréning. Ak sa pýtate, či to stálo za tie prebdené noci a účet za elektrinu, odpoveď je jasná: Áno, ten pocit, keď model prvýkrát odpovedal správne, bol na nezaplatenie!

Sledovanie Training Loss

Čo je to vlastne tá „strata“ (loss)? Predstavte si to ako mieru chybovosti. Čím je číslo nižšie, tým lepšie model predpovedá ďalšie slovo. Moja prvá krivka vyzerala ako horská dráha v Tatrách! Začínal som na hodnote 4.5 a cieľom bolo dostať sa pod 1.0.

  • START Počiatočná strata: 4.82 (Model len tipoval náhodné písmená).
  • MID Po 500 krokoch: 2.15 (Model začína tvoriť logické vety).
  • FINAL Koniec tréningu: 0.89 (Model plynule komunikuje v slovenčine).

Moje nastavenia (Hyperparametre)

Parameter Hodnota Prečo toto?
Learning Rate 2e-4 Zlatá stredná cesta, aby sa model neučil príliš zbrklo.
Batch Size 4 (s grad. accum. 4) Viac moja grafika jednoducho nezvládla. Škoda.
Epochy 3 Tri kolá stačili na to, aby sa nepokazila pôvodná znalosť modelu.
Optimizer AdamW (8-bit) Šetrenie VRAM pamäte bolo prioritou číslo jeden.

Poznámka: Ak neviete, čo tieto čísla znamenajú, nezúfajte. Pozrite si môj slovník chýb, kde vysvetľujem tie najčastejšie kiksy pri nastavovaní.

Epocha 1

Trvanie: 4 hodiny 12 minút. Model sa zoznamuje so slovenskou syntaxou. Strata klesá veľmi rýchlo.

Stav: Dokončené

Epocha 2

Trvanie: 4 hodiny 08 minút. Jemné ladenie nuáns. Model začína používať slangové výrazy správne.

Stav: Dokončené

Epocha 3

Trvanie: 4 hodiny 15 minút. Finalizácia. Strata sa stabilizuje na hodnote 0.89. Hotovo!

Stav: Dokončené

„Najväčším prekvapením pre mňa bolo, že model nepotrebuje milióny príkladov. Stačí pár tisíc, ale musia byť kvalitné. Kvalita nad kvantitu, to je pri AI svätý grál!“

— Môj osobný postreh po 12 hodinách čumenia do terminálu

Manažment checkpointov: Ako som neprišiel o všetko

Predstavte si, že vám v 11. hodine tréningu vypadne prúd. Predstavili ste si to? Horor, však? Presne preto existujú checkpointy. Sú to v podstate „uložené pozície“ vášho modelu v čase. Ja som si nastavil ukladanie každých 200 krokov.

Zistil som, že nie každý checkpoint je dobrý. Niekedy model v polke tréningu začne „blázniť“ a vtedy sa musíte vrátiť k predchádzajúcemu bodu. Je to ako v starej videohre, kde si pred bossom radšej uložíte hru trikrát.

Moja štatistika úložiska:

  • Veľkosť jedného checkpointu: 1.2 GB
  • Celkový počet uložených bodov: 45
  • Celkové miesto na disku: 54 GB (Pripravte si veľké SSD!)
A close-up photo of a modern server rack with blinking green
MOJA "SERVEROVŇA" DOMA

Často kladené otázky (FAQ)

Zhorel ti počítač počas tréningu?

Našťastie nie! Ale ventilátory na mojej RTX karte hučali tak silno, že som si myslel, že v obývačke štartuje Boeing 747. Teploty sa držali na stabilných 78 stupňoch.

Dá sa to robiť aj zadarmo?

Áno, skúšal som Google Colab, ale po dvoch hodinách ma odpojili, lebo som nemal platenú verziu. Pre vážnejší fine-tuning je lepšie mať vlastné železo alebo si prenajať GPU v cloude.

Koľko dát si reálne potreboval?

Použil som približne 5000 kvalitných párov „otázka-odpoveď“ v slovenčine. Menej ako 1000 je podľa mňa zbytočné, model sa nestihne prispôsobiť tónu reči.

Čo bol najväčší problém?

Určite formátovanie dát. Stačila jedna chýbajúca čiarka v JSON súbore a celý tréning padol s chybou, ktorej som nerozumel dve hodiny. Strašné!

Chceš vidieť výsledok?

Teraz, keď je model natrénovaný, musíme mu dať nejakú tvár. Pozri sa, ako som vytvoril používateľské rozhranie, aby som s ním mohol normálne četovať.

Prejsť na tvorbu rozhrania