A close-up high-quality photo of a computer screen showing c
Moja cesta za pochopením kódu

Slovník chýb: Čo znamenajú tie riadky?

Och! Poznáte ten pocit, keď spustíte kód a namiesto výsledku na vás vyskočí 50 riadkov červeného textu? Predstavte si, že ja som z toho bol úplne hotový! Ale zistil som, že tie chyby nie sú nepriatelia, ale vlastne nám hovoria, čo máme opraviť. Poďme sa spolu pozrieť na to, čo mi môj počítač v Trebišove vypisoval celú noc.

Moje záchranné kolesá: Nástroje

VS Code Debugger

Neuveríte, ale tento nástroj mi dovoľuje zastaviť čas! Doslova. Môžem si pozrieť, akú hodnotu má premenná v konkrétnej sekunde. Kým som to nevedel, len som hádal.

Čítať viac

NVIDIA-SMI

Toto je ako tachometer v aute. Ukazuje mi, koľko pamäte moja grafika ešte má. Keď tam svieti 99%, viem, že je zle! Fíha, ten pohľad na vyťaženú kartu je desivý.

Môj HW setup

Print Debugging

Stará dobrá klasika. Keď už fakt neviem, kam kód došiel, napíšem tam "Tu som". Predstavte si, niekedy som mal v kóde 20 takýchto správ a hľadal som tú poslednú!

Integrácia API

Prečo mi to stále padá? Moje zistenia!

Keď som prvýkrát otvoril terminál, myslel som si, že programovanie je len o písaní logických úloh. Ale fíha, mýlil som sa! Väčšinu času trávim tým, že hľadám chýbajúcu dvojbodku alebo nesprávne odsadenie. V Pythone je odsadenie (indentácia) posvätné. Ak urobíte o jednu medzeru navyše, celý projekt sa zosype ako domček z karát. Naozaj, stačí jedna hlúpa medzera a dostanete `IndentationError`.

Ďalšia vec, ktorá ma úplne dostala, bola `TypeError`. Predstavte si, že sa snažíte sčítať číslo a text. Ja som si myslel, že Python je inteligentný a pochopí, že "5" je päťka. Ale nie! Och, on mi vynadal, že nemôžem spájať `int` a `str`. Musel som sa naučiť, ako pretypovať premenné. Bolo to pre mňa veľké prekvapenie, koľko pozornosti vyžadujú tieto drobnosti.

"Chyba nie je koniec sveta, je to len smerová tabuľa, ktorá hovorí: Hej, pozri sa o dva riadky vyššie, tam si to pokazil!" — Môj postreh po 4 hodinách ladenia

A čo tie strašidelné `ImportError`? To sa stáva, keď si myslíte, že máte nainštalovanú knižnicu, ale v skutočnosti ste ju nainštalovali do iného virtuálneho prostredia. Predstavte si ten zmätok! Sedel som nad tým pol dňa, kým som si uvedomil, že môj VS Code pozerá na úplne iný priečinok, než kde som sťahoval dáta. Ak vás zaujíma, ako som riešil knižnice pre LLM, pozrite si sekciu o výbere modelov.

Zoznam "červených riadkov" (CUDA & Ostatné)

Názov chyby Čo to vlastne znamená? Rýchla pomoc
CUDA out of memory Tvoja grafická karta je plná! Skúsil si tam natlačiť príliš veľký model. Ups! Zmenši "batch size" alebo použi menší model (napr. 4-bit kvantizáciu).
ModuleNotFoundError Python nevie nájsť knižnicu. Pravdepodobne chýba `pip install`. Skontroluj, či si v správnom `venv` a použi terminál.
RuntimeError: Expected tensor... Miešaš dáta z procesora (CPU) a grafiky (GPU). To sa im nepáči! Použi `.to(device)` na všetky tenzory, aby boli na jednom mieste.
SyntaxError: invalid syntax Niekde ti chýba zátvorka alebo si napísal blbosť. Klasika. Pozri sa na riadok nad chybou. Často je problém tam.
80%

Chýb v AI je kvôli pamäti

15 min

Priemerný čas na fix syntaxe

0

Šanca, že kód pôjde na prvýkrát

Keď pamäť povie "Dosť!"

Och, tie nervy! Keď som sa snažil spustiť môj prvý veľký model, moja grafika v Trebišove začala takmer hučať a potom to prišlo: "Out of Memory". Čo som robil zle? Zistil som, že AI modely sú neskutočne hladné po VRAM. Ak máte 8GB kartu ako ja, nemôžete tam len tak hodiť model s 70 miliardami parametrov. To je ako snažiť sa naliať liter vody do poldecáka.

Tu sú kroky, ktoré som sa naučil, aby som to prežil:

  • Používanie Kvantizácie (4-bit alebo 8-bit) – to zmenší model takmer na polovicu bez veľkej straty rozumu.
  • Nastavenie Gradient Accumulation – namiesto spracovania 32 obrázkov naraz, spracujem 4, ale 8-krát za sebou. Šikovné, že?
  • Vypnutie všetkých zbytočných programov – áno, aj ten prehliadač s 50 kartami žerie pamäť grafiky!
  • Použitie `torch.cuda.empty_cache()` – občas treba Pythonu povedať, aby upratal ten neporiadok, čo nechal v pamäti.

Predstavte si, že po týchto úpravách sa môj kód konečne rozbehol! Ten pocit, keď vidíte prvé vygenerované slová namiesto červenej chyby... Wau! Bolo to ako malé víťazstvo vo vojne s kremíkom. Ak chcete vidieť, ako som potom trénoval dáta, pozrite si moje záznamy z trénovania.

Chcete vidieť, ako to dopadlo?

Ladenie chýb je len začiatok. Skutočná zábava začína, keď kód funguje a vy vidíte výsledky svojej práce. Poďme sa pozrieť na to, čo plánujem ďalej!