Jazykové modely
Jazykové modely a co LSTM doopravdy umí
Andrej Karpathy publikoval v roce 2015 článek a kód, které předvedly znakový LSTM model generující text, jenž vypadá jako Shakespeare. Kdo si přečte ukázku, má pocit, že se stroj naučil psát divadelní hry.
Nenaučil. Ve stejném článku je i střízlivá poznámka, kterou většina čtenářů přeskočí: kvalitou je výsledek jen mírně lepší než devítiznakový n-gramový model. Model si nepamatuje děj, nemá postavy a nerozumí větě. Naučil se, jaká písmena po sobě chodí.
Tahle stránka ukazuje, co takový model umí, jak se to zlepšuje během trénování a kde je strop. Předpokládá to rekurentní sítě a LSTM, zejména cell state a hradla. Je to zároveň dobré místo, kde si připomenout čínský pokoj.
Co jazykový model počítá
Cíl jazykového modelu je odhadnout pravděpodobnost posloupnosti symbolů - znaků nebo slov.
Tradiční řešení tvoří n-gramové modely: pravděpodobnost dalšího symbolu se odhadne z n−1 předchozích, prostým počítáním v korpusu. Modernější přístup tvoří rekurentní neuronové sítě, zejména LSTM.
Rozdíl mezi nimi je jediný a je podstatný. N-gramový model má okno pevné délky. Devítiznakový model vidí devět znaků a o desátém zpátky neví. LSTM má teoreticky neomezený kontext, protože si nese stav.
Teoreticky. Praxe je to, o čem je zbytek stránky.
Karpathy
Andrej Karpathy v roce 2015 publikoval populární článek a zdrojový kód, který předvedl výjimečně silné chování LSTM jazykových modelů na znakové úrovni. Model byl trénován na různých textech - Shakespeare, Tolstoj, kód v jazyce C, LaTeX - a produkoval syntakticky přesvědčivé výstupy.
To slovo syntakticky je v celé větě to nejdůležitější. Vrátíme se k němu.
V únoru 2026 Karpathy vydal také microgpt - 200řádkový Python program obsahující všechny základy velkých jazykových modelů, kromě výkonu. Je to dnes nejlepší způsob, jak si celý mechanismus přečíst od začátku do konce.
LSTM byly zavedeny Hochreiterem a Schmidhuberem v roce 1997. Klíčovou novinkou byl cell state - „dopravníkový pás" vedený časem - a tři hradla (forget, input, output) tvořená sigmoidálními neurony, jež regulují tok informací.
Generovaný Shakespeare
PANDARUS:
Alas, I think he shall be come approached and the day
When little srain would be attain'd into being never fed,
And who is but a chain and subjects of his death,
I should not sleep.
Rozeber si, co v tom je a co v tom není:
Pandarus je skutečnou postavou z Shakespearovy hry Troilus and Cressida. Model se naučil, která jména se v tomhle korpusu vyskytují jako mluvčí, a použil je ve správném formátu s dvojtečkou.
Formátování „ragged-right" - řádky zarovnané vlevo a nestejně dlouhé vpravo - je téměř dokonalé. Model se naučil délku verše, aniž by mu ji někdo řekl.
Syntaxe je blízko správnosti a jednotlivé části věty dávají téměř smysl.
Slovo srain pravděpodobně neexistuje - model si ho vymyslel. Vypadá anglicky, dá se vyslovit, ale není to slovo.
A kvalitou je výsledek jen mírně lepší než devítiznakový n-gramový model. Tohle je věta, kterou si z celé stránky odnes, pokud si máš odnést jednu.
Generovaný Tolstoj
Model trénovaný na textu Vojna a mír ukazuje, jak se kvalita generace zvyšuje s rostoucím počtem trénovacích iterací (parameter updates). Je to nejnázornější věc na celém tématu, protože je vidět, v jakém pořadí se model věci učí.
| Iterací | Co model umí |
|---|---|
| 100 | vypadá jako unigramový znakový model - rozumný podíl mezer, t a e jsou nejčastější písmena, slova vesměs nedávají smysl |
| 300 | distribuce mezer i teček je dobrá, většina „slov" je vyslovitelná, ale skutečnými anglickými slovy jsou jen here, I, in; délka řádků je stále nepřirozená |
| 500 | objevují se krátká skutečná slova a uvěřitelné dvojice (and with, and to) |
| 700 | delší slova; „Prince Velzonski's" je věrohodná tříslovná konstrukce; čtyřpísmenná slova stále převážně nesmysl |
| 1200 | téměř všechna slova jsou reálná, slovní bigramy znějí dobře, interpunkce (uvozovky, velká písmena, tři tečky) je perfektní |
| 2000 | minimální další pokrok; vyskytují se vymyšlená slova jako oftened, aking; gender postavy Nataši je občas zaměňován, ale Pierre a Nataša jsou věrohodnými společníky |
Pořadí učení je zajímavější než konečný výsledek. Model se nejdřív naučí statistiku znaků, pak stavbu slabik, pak slova, pak dvojice slov, pak interpunkci. Jde odspodu nahoru a na každou úroveň potřebuje řádově víc dat než na tu předchozí.
A pak se to zastaví. Mezi 1200 a 2000 iteracemi je minimální pokrok. Model narazil na strop, který není o trénování, ale o tom, co znakový LSTM vůbec může pojmout.
Limity, které z toho plynou
Generovaný Shakespeare i Tolstoj vypadají na první pohled přesvědčivě, ovšem:
Po „dokončení" se kvalita generace přestane výrazně zlepšovat. Karpathy to ukazuje přímo. Nemá smysl trénovat dál.
Pro C kód a LaTeX model produkuje syntakticky správné, ale významově nesmyslné výstupy. Závorky se párují, klíčová slova jsou na správných místech, \begin{} má svůj \end{} - a nic z toho nic nedělá. Není to atraktivní cíl pro „vibe programming".
Výstupy Shakespeara nás pravděpodobně uspokojí jen proto, že máme se čtením originálu beztak malou potíž. Tohle je nejostřejší postřeh z celého tématu. Nedokážeme rozeznat vygenerovaný archaický blankvers od skutečného, protože ani ten skutečný na první čtení nechápeme. Kdyby model generoval česky psaný technický text, poznal bys chybu okamžitě.
Devítigramový znakový model s pěkným formátováním by mohl dosáhnout podobné kvality za polovinu času.
Tohle všechno dohromady je čínský pokoj v praxi. Model produkuje výstup, který vypadá jako produkt porozumění, a přitom uvnitř žádné porozumění není - jen velmi dobrá statistika toho, co po čem chodí. Rozdíl proti Searlovu myšlenkovému experimentu je, že tenhle pokoj si příručku napsal sám.
Kde LSTM dnes pořád dává smysl
Závěr, který je potřeba říct férově. LSTM jazykové modely se trénují a v principu nabízejí lepší výsledky než znakové n-gramové modely.
Pro rozpoznávání jsou stále uplatnitelné. Typicky detekce sentimentu. Velký jazykový model zvládne stejnou úlohu, ale středně velký LSTM potřebuje řádově méně výpočetních zdrojů - a když ti stačí zařadit recenzi do dvou kategorií, není důvod na to volat model za miliardu parametrů.
Pro generování dlouhých koherentních textů byly LSTM předstiženy architekturami typu Transformer. Tady je konec příběhu jednoznačný.
Praktické pravidlo: klasifikace krátkých sekvencí na omezeném hardwaru → LSTM nebo GRU. Generování → Transformer.
Co se na tom nejčastěji rozbije
| Příznak | Kde je problém |
|---|---|
| Model generuje jedno písmeno pořád dokola | teplota vzorkování je příliš nízká, nebo model podtrénovaný |
| Výstup je náhodné písmenné klepání | teplota příliš vysoká |
| Slova vypadají anglicky, ale neexistují | normální stav znakového modelu kolem 700 iterací - potřebuje víc dat |
| Model se po pár epochách přestal zlepšovat | strop znakového LSTM, ne chyba nastavení |
| Generovaný kód se nedá přeložit | model umí syntaxi, ne sémantiku - je to očekávané chování |
| Text se opakuje po delších blocích | model se přeučil na trénovací korpus |
Co si odnést
Jazykový model odhaduje pravděpodobnost posloupnosti symbolů. Nic víc nedělá.
N-gram má pevné okno, LSTM teoreticky neomezené. V praxi je rozdíl menší, než by se čekalo.
Model se učí odspodu: znaky, slabiky, slova, dvojice, interpunkce. A pak se zastaví.
Znakový LSTM na Shakespearovi je jen mírně lepší než devítiznakový n-gram.
Syntakticky správné neznamená významově správné. U C kódu a LaTeXu je to vidět nejlépe.
Přesvědčivost výstupu měří naši neschopnost ho posoudit, ne kvalitu modelu.
Na klasifikaci je LSTM pořád levná a rozumná volba. Na generování ne.
Kam dál
- Rekurentní sítě a LSTM - mechanismus, který za tím stojí
- Co je umělá inteligence - Turingův test a čínský pokoj v původní podobě
- Strukturální rozpoznávání - formální gramatiky jako druhý způsob práce s jazykem
- Nástroje pro UI - Hugging Face Transformers, kde se dnešní modely berou