Přeskočit na obsah

Jak funguje jazykový model · lekce 5 z 10 · 12 min čtení

Předpověď dalšího slova a teplota

Jazykový model píše text tak, že znovu a znovu odhaduje, jaký token přijde dál, a jeden z nich vylosuje. Vyzkoušíš si, jak teplota mění jeho volbu, proč stejná otázka dává různé odpovědi a jestli je to „jen chytré doplňování“.

Napiš do telefonu „Uvidíme se“ a klávesnice ti nabídne „zítra“, „večer“ nebo „v pondělí“. Telefon neví, co plánuješ. Jen si všiml, která slova po „Uvidíme se“ obvykle následují. Velký jazykový model dělá v jádru totéž, jen nesrovnatelně lépe: na základě všeho, co v textu zatím je, odhadne, co by mohlo přijít dál.

V minulé lekci jsi viděl, že model pracuje s tokeny. Teď se podíváš, co s nimi dělá. Pochopíš, proč odpověď vzniká postupně, odkud se bere náhoda a proč dvakrát stejná otázka nedá dvakrát stejnou odpověď. Na konci se poctivě podíváme na otázku, kterou kladou skoro všichni: je to tedy jen hodně chytré doplňování textu?

Jeden token po druhém

Když modelu pošleš otázku, nevymyslí celou odpověď najednou a pak ji nevypíše. Postupuje takto:

  1. Vezme celý dosavadní text (tvoji otázku, případně instrukce a předchozí konverzaci).
  2. Spočítá, jak pravděpodobný je každý token ze svého slovníku jako další token.
  3. Jeden token vybere.
  4. Přilepí ho na konec textu.
  5. Celé to zopakuje, teď už s o jeden token delším textem.

Takhle pokračuje, dokud nevybere speciální token, který znamená „konec odpovědi“, nebo dokud nenarazí na limit délky. Proto v chatovacích aplikacích vidíš, jak se odpověď „vypisuje“ postupně. Není to efekt pro parádu, model ji opravdu vyrábí kousek po kousku.

Autoregrese(autoregression)
Způsob generování, kdy model každý další kousek výstupu předpovídá z toho, co už bylo napsáno, včetně kousků, které sám právě vytvořil. Výstup se tak „opírá sám o sebe“.

Z toho plynou dvě důležité věci. Zaprvé: model nemá „hotovou odpověď v hlavě“, kterou by jen přepisoval. Každý token ovlivňuje všechny další. Když se na začátku odpovědi vydá špatným směrem, často v něm pokračuje, protože další tokeny navazují na ty předchozí. Zadruhé: to, co model napíše, se stává součástí vstupu pro další krok. Proto pomáhá, když model nejdřív „přemýšlí nahlas“ (rozepíše si postup), a teprve pak odpoví. Ty mezikroky jsou pro něj doslova text, o který se může opřít.

Z textu rozdělení pravděpodobností

To nejzajímavější se děje v kroku 2. Model nevrací jedno slovo. Vrací pro každý token ve slovníku číslo, které vyjadřuje, jak dobře se tam hodí. Z těchto čísel se pak vypočítají pravděpodobnosti, které dohromady dají 100 %. Tomu se říká rozdělení pravděpodobností (probability distribution).

Představ si větu „Ráno si ke snídani dám šálek …“. Dobrý model ví, že nejspíš přijde „kávy“, o něco méně pravděpodobně „čaje“, pak třeba „kakaa“, a že „inkoustu“ je sice gramaticky možný, ale velmi nepravděpodobný. Všechny tyhle odhady model nedostal od nikoho napsané. Naučil se je tím, že během tréninku viděl obrovské množství textu (jak přesně, uvidíš v lekci Jak se model trénuje).

Logit(logit)
Surové skóre, které model přidělí každému možnému dalšímu tokenu. Čím vyšší, tím víc se token podle modelu hodí. Logity ještě nejsou pravděpodobnosti, ty z nich vzniknou přepočtem (funkcí softmax).

Vyzkoušej si teplotu

V ukázce níže model dopisuje právě větu o snídani. Čísla jsou ilustrační (skutečný model by vybíral z desítek tisíc tokenů a „horké čokolády“ by byly tokeny dva nebo tři), ale výpočet je stejný jako ve skutečných modelech. Posuvník mění teplotu, tlačítka losují další slovo podle aktuálních šancí.

Vyzkoušej si: jak model vybírá další slovo

Model dopisuje větu Ráno si ke snídani dám šálek … Pohni teplotou a sleduj, jak se mění šance jednotlivých slov.

0,1 předvídatelné2,0 divoké
  • kávy71,6 %
  • čaje23,3 %
  • kakaa2,8 %
  • horké čokolády1,3 %
  • vody0,9 %
  • polévky0,1 %
  • inkoustu<0,1 %

Čísla jsou ilustrační, výpočet (softmax s teplotou) je stejný jako ve skutečných modelech.

Teď si s tím pohraj. Doporučuji tenhle postup:

1. Výchozí teplota 0,8. Podívej se na sloupce. „Kávy“ má zhruba 72 %, „čaje“ asi 23 %, „kakaa“ necelá 3 % a zbytek jsou drobty. Klikni několikrát na „Vylosovat 10ד. Většinou padne „kávy“, často „čaje“ a sem tam něco jiného. Přesně tak model vybírá: nebere vždy nejlepší možnost, ale losuje podle šancí, jako kdyby točil kolem štěstí, na kterém má káva velkou výseč a inkoust nepatrný proužek.

2. Stáhni teplotu na 0,1. „Kávy“ vyskočí na 100 % a ostatní spadnou skoro na nulu. Ať losuješ kolikrát chceš, padá pořád „kávy“. Nízká teplota dělá z modelu puntičkáře: vždy volí nejpravděpodobnější možnost, je předvídatelný a opakuje se.

3. Vytáhni teplotu na 2,0. Rozdíly se smazávají. „Kávy“ klesne zhruba na 42 %, „čaje“ zůstane kolem 27 % a „polévky“ i „inkoustu“ dostanou šanci, kterou při losování desetkrát za sebou občas uvidíš. Vysoká teplota dělá z modelu snílka: je pestřejší a překvapivější, ale také častěji píše nesmysly.

Teplota(temperature)
Nastavení, které určuje, jak moc se model drží nejpravděpodobnějších možností. Nízká teplota rozdíly mezi možnostmi zvětšuje (výstup je předvídatelnější), vysoká je zmenšuje (výstup je rozmanitější a náhodnější). Na samotných znalostech modelu teplota nic nemění.

Důležité je, čím teplota není. Neznamená „kreativitu“ v lidském smyslu ani „chytrost“. Model se při vyšší teplotě nenaučí nic nového. Jen s větší ochotou sáhne po méně pravděpodobných tokenech. A protože se odpověď skládá z jednoho tokenu za druhým, jedna méně obvyklá volba na začátku může celý zbytek textu poslat jiným směrem.

Proč na stejnou otázku dostaneš různé odpovědi

Teď už odpověď znáš: v každém kroku se losuje. Odpověď o pěti stech tokenech znamená pět set losování za sebou, a stačí, aby jedno z prvních dopadlo jinak, a zbytek se rozběhne jinou cestou. Proto když v chatu klikneš na „vygenerovat znovu“, dostaneš jinou formulaci, jiné pořadí argumentů, někdy i jiný závěr.

To má praktické důsledky:

  • Jedna odpověď není „názor modelu“. Je to jeden vzorek z mnoha možných. Když ti jde o něco důležitého, zeptej se víckrát nebo odpověď vygeneruj znovu. Když se odpovědi shodují, je to dobré znamení. Když se liší v podstatných věcech, model si zjevně „není jistý“ a ty bys taky neměl být.
  • Teplotu obvykle nastavit nemůžeš, ale vývojáři ano. V běžných chatovacích aplikacích je teplota nastavená výrobcem. Při použití přes API ji vývojář tradičně nastavoval sám. U novějších modelů to ale čím dál častěji nejde: Anthropic ve verzi API z října 2026 parametry teploty, top-p i top-k úplně zrušil (místo nich se nastavuje, jak moc má model přemýšlet) a některé modely Gemini vlastní teplotu ignorují. Princip losování popsaný v téhle lekci uvnitř modelů platí dál, jen ho výrobci ladí za tebe. Co přesně jde nastavit u konkrétního modelu, ověř v jeho dokumentaci.
  • Pro různé úlohy se hodí různé nastavení. Extrakce údajů z faktury, klasifikace e-mailů nebo odpověď podle firemní směrnice: nízká teplota. Brainstorming názvů produktu nebo návrhy textů: vyšší teplota.
Do hloubkySoftmax, top-k a top-p: jak se z logitů losuje

Softmax s teplotou. Model na konci každého kroku vydá pro každý token ve slovníku jedno číslo, logit. Z logitů se pravděpodobnosti spočítají vzorcem, kterému se říká softmax:

pravděpodobnost tokenu i = e^(logit_i / T) / součet přes všechny tokeny j: e^(logit_j / T)

Slovy:

  1. Každý logit vyděl teplotou T.
  2. Výsledek „umocni“ funkcí e^x (exponenciála). Ta udělá ze všech čísel kladná čísla a velké hodnoty zvětší mnohem víc než malé. Rozdíl dvou bodů v logitu znamená zhruba sedminásobný rozdíl ve výsledku (e² ≈ 7,4).
  3. Všechny výsledky sečti a každý vyděl tím součtem. Tím dostaneš čísla, která dohromady dají přesně 1, tedy 100 %.

Teplota působí v kroku 1. Když je T menší než 1, dělení rozdíly mezi logity zvětší (dělit malým číslem je jako násobit), exponenciála je pak ještě nafoukne a vítěz převálcuje ostatní. Když je T větší než 1, rozdíly se zmenší a pravděpodobnosti se srovnají. V ukázce má „kávy“ logit 4,2 a „čaje“ 3,3: rozdíl 0,9. Při teplotě 0,1 se z něj stane rozdíl 9, takže káva je zhruba osmtisíckrát pravděpodobnější než čaj. Při teplotě 2 je rozdíl jen 0,45 a káva je pravděpodobnější zhruba o polovinu.

Top-k. Skutečný slovník má desítky tisíc tokenů a většina z nich má nepatrnou, ale nenulovou šanci. Když se losuje tisíckrát za odpověď, i nepatrné šance se občas „trefí“ a text uletí. Top-k to řeší hrubě: před losováním nech jen k nejpravděpodobnějších tokenů (třeba 40), ostatní zahoď a pravděpodobnosti přepočítej. Nevýhoda: pevné k nepasuje na všechny situace. Někdy dává smysl jen jedno slovo, jindy stovky.

Top-p (nucleus sampling). Chytřejší varianta, kterou v roce 2019 popsali Ari Holtzman a kolegové v článku „The Curious Case of Neural Text Degeneration“. Místo pevného počtu se vezme nejmenší skupina nejpravděpodobnějších tokenů, jejichž pravděpodobnosti dohromady dají aspoň p (třeba 0,9 neboli 90 %). Když si je model jistý, skupina je malá (třeba jen „kávy“ a „čaje“). Když je nejistý, skupina se sama rozšíří. V ukázce při teplotě 0,8 by top-p 0,9 nechalo jen kávu a čaj, protože ty dvě dohromady mají přes 90 %.

Autoři tohoto článku také ukázali, proč úplně bez náhody text nefunguje dobře: když model vždy volí nejpravděpodobnější slovo, píše nudné a často se opakující texty, které se lidskému psaní podobají méně, než bys čekal. Lidský text není „nejpravděpodobnější možný“, je v něm přirozená míra překvapení.

V praxi se teplota, top-k a top-p kombinují. Výrobci obvykle doporučují měnit jen jedno z nastavení, ne všechna najednou, a jejich dostupnost se liší podle modelu (ověř v dokumentaci konkrétního API).

Je to tedy jen chytré doplňování?

Tohle je možná nejdůležitější otázka celé lekce a zaslouží si poctivou odpověď. Krátká verze: ano, mechanicky model dělá „jen“ předpověď dalšího tokenu. Ale z toho neplyne, že je to málo.

Zkus se zamyslet, co všechno musí systém „mít v sobě“, aby dobře předpověděl další slovo v těchto větách:

  • „Hlavní město státu, ve kterém leží Dallas, je …“ (musí vědět, že Dallas je v Texasu a že hlavní město Texasu je Austin),
  • „Mám 3 jablka, sním jedno a kamarád mi dá dvě. Teď mám …“,
  • „Paní Nováková byla na zprávu velmi naštvaná, a proto …“,
  • poslední řádek detektivky, kde se prozrazuje vrah.

Aby šlo tohle předpovídat dobře, nestačí si pamatovat, která slova chodí po sobě. Systém musí v nějaké podobě zachycovat fakta, vztahy mezi věcmi, souvislosti a pravidla. Trénink na předpovídání dalšího slova ho k tomu nutí, protože jiným způsobem by předpovídal hůř.

Existují i konkrétní výzkumné důkazy, že modely si takové vnitřní reprezentace opravdu budují:

  • V roce 2022 výzkumníci (Kenneth Li a kolegové) natrénovali malý model jen na seznamech tahů hry Othello. Nikdy mu neukázali hrací desku ani pravidla. Přesto zjistili, že si model uvnitř vytvořil reprezentaci stavu desky, a když ji výzkumníci uměle změnili, model začal navrhovat tahy odpovídající změněné desce.
  • V roce 2025 Anthropic zveřejnil výzkum, v němž „nahlédl dovnitř“ svého modelu Claude. U otázky na hlavní město státu, kde leží Dallas, viděli, že model vnitřně nejdřív aktivuje „Dallas je v Texasu“ a teprve pak „hlavní město Texasu je Austin“. U rýmovaných básní zjistili, že model si rým naplánuje dřív, než začne psát řádek, který k němu vede. Tedy ne jen „slovo po slovu bez výhledu dopředu“.

Na druhou stranu je potřeba říct i to, co nevíme. Autoři zmíněného výzkumu sami píšou, že jejich metoda zachytí jen zlomek toho, co se v modelu odehrává. Mezi výzkumníky panuje skutečná neshoda v tom, jestli se tomu dá říkat „porozumění“, jak blízko to má k lidskému myšlení a jak moc jde o naučené vzorce, které se rozpadnou mimo známé situace. Já tuhle otázku rozhodnout neumím a nikdo ti ji zatím poctivě rozhodnout neumí.

Pro praxi z toho plyne vyvážený pohled:

  • Nepodceňuj to. „Je to jen autocomplete“ svádí k závěru, že model nemůže nic zajímavého. Může: shrnout, přeložit, najít chybu v argumentaci, navrhnout řešení.
  • Nepřeceňuj to. Model optimalizuje věrohodné pokračování textu, ne pravdivost. Když neví, napíše věrohodně znějící odpověď stejně plynule jako tu správnou. Tomu se říká halucinace a podrobně se jí věnuje lekce Halucinace.
Jak to poznáš v běžném používání

Zeptáš se: „Jaký je telefon na zákaznickou linku naší firmy?“

Model ten údaj nemá, ale ví, jak vypadá česká odpověď na takovou otázku: věta „Zákaznickou linku najdete na čísle“ a devět číslic. Věrohodné pokračování je číslo, a tak napíše číslo. Mechanismus předpovědi tu funguje bezchybně. Jen předpovídá, jak by odpověď vypadala, ne jaká je.

Co si odnést

  • Jazykový model píše text po jednom tokenu: z dosavadního textu spočítá pravděpodobnosti pro všechny možné další tokeny, jeden vybere, přidá ho a opakuje (autoregrese).
  • Model nevybírá vždy nejpravděpodobnější token, ale losuje podle pravděpodobností. Proto stejná otázka dává různé odpovědi.
  • Teplota určuje, jak moc se losování drží favoritů: nízká = předvídatelné a opakující se, vysoká = pestřejší a riskantnější. Na znalostech modelu nic nemění.
  • Pro fakta a strukturované úlohy se hodí nízká teplota, pro nápady vyšší (pokud ji daný model ještě dovoluje nastavit). U důležitých odpovědí se vyplatí zeptat se víckrát a porovnat.
  • „Jen předpověď dalšího slova“ je pravdivý popis mechanismu, ale dobrá předpověď vyžaduje vnitřní reprezentace faktů a souvislostí. Jak moc tomu říkat porozumění, je otevřená otázka.

Zdroje a další čtení