Článek
Fráze „Během výběrů“ zabírá v tokenizéru tři tokeny. Tatáž fráze bez diakritiky — „Behem vyberu“ — spotřebuje tokenů víc. Nikoliv tři, nikoliv dva. Pět.
Nárůst o 67 %. Za text, který měl být „jednodušší“.
V předchozím článku o tokenové dani jsme ukázali, že čeština platí za zpracování v jazykových modelech dvojnásobek oproti angličtině. Logická úvaha mnohých čtenářů zněla: když jsou háčky a čárky problém, proč nepsat bez nich? Vždyť SMS generace to dělala léta, modely to přece zvládnou a ušetříme tokeny. Odpověď je nečekaná — a odhaluje něco podstatného o tom, jak jazykové modely ve skutečnosti fungují.
Experiment z Karlovy univerzity
Klíčový důkaz pochází z práce Kirilla Semenova a Marka Popela z Univerzity Karlovy a Univerzity v Curychu, prezentované na workshopu TokShop při konferenci ICML 2025 ve Vancouveru. Autoři vyvíjeli systém InDia (Inline Diacritization) pro česko-ukrajinský strojový překlad a přitom narazili na paradox, který je překvapil natolik, že ho zdokumentovali jako samostatný výzkumný poznatek.
Experiment byl přímočarý. Vzali české fráze a porovnali, kolik tokenů potřebují v různých formách:
Forma textuPříkladPočet tokenůNárůstS diakritikouBěhem výběrů3—Bez diakritikyBehem vyberu5+67 %Velkými písmenyBĚHEM VÝBĚRŮ10+233 %
Autoři přitom výslovně uvádějí, že při rešerši nenašli žádný předchozí výzkum zaměřený na srovnání tokenizace s diakritikou a bez ní. Jejich poznatek je vedlejší produkt jiného výzkumu — nikoliv cíl systematické studie.
Proč tokenizér trestá text bez háčků
Vysvětlení je překvapivě mechanické. Tokenizér založený na sloučení bytových párů (BPE, Byte-Pair Encoding) — algoritmus, který převádí text na čísla pro neuronovou síť — se učí z trénovacích dat. Prochází obrovské korpusy textu a hledá opakující se sekvence bytů. Ty nejčastější sloučí do jednoho tokenu. Proces opakuje, dokud nedosáhne cílové velikosti slovníku.
Klíčový detail: většina kvalitního českého textu na internetu — zpravodajské články, Wikipedie, odborná literatura, legislativní texty — je napsaná s diakritikou. Slovo „výběrů“ se v trénovacích datech vyskytuje tisíckrát. Tokenizér ho zná. Vytvořil pro něj účinné sloučení — možná celé slovo jako jeden token, možná dvě části.
Ale „vyberu“ bez háčků a čárek? To je pro tokenizér jiná sekvence bytů. V trénovacích datech se vyskytuje řádově méně — převážně v neformální komunikaci, chatech a zprávách. Tokenizér pro tuto formu nikdy nevytvořil účinné sloučení. Když na ni narazí, rozbije ji na menší kousky — někdy až na úroveň jednotlivých bytů.
Je to stejný mechanismus, jaký jsme popsali u tokenové daně obecně: slova, která tokenizér viděl často, kóduje účinně. Slova, která viděl zřídka, rozloží na fragmenty. Čeština bez diakritiky je pro model vlastně cizí nářečí — podobné té správné češtině, ale dostatečně odlišné, aby se sloučení nesdílela.
Nejde jen o kódování znaků
Nabízí se technický protiargument: české diakritické znaky (č, ř, š, ž, ě, ů) jsou v kódování UTF-8 dvoubajtové, zatímco jejich protějšky bez háčků (c, r, s, z, e, u) jednobajtové. Na úrovni surových bytů je text bez diakritiky kratší. Neměl by tedy potřebovat méně tokenů?
Ne. A důvod ilustruje zásadní rozdíl mezi kompresí na úrovni bytů a kompresí na úrovni tokenizéru.
BPE tokenizér nepracuje přímo s byty — pracuje s naučenými sloučeními. Dvoubajtový znak „č“ (0×C4 0×8D v UTF-8) může být součástí tokenu „čes“ nebo „výběrů“, který zastupuje celé slovo nebo jeho velkou část. Jednobajtový „c“ sice zabírá méně místa v surovém textu, ale tokenizér pro kombinaci „ces“ nebo „vyberu“ nemá účinné sloučení — a tak ji rozbije na víc kusů.
Analogie: představte si, že máte slovník zkratek pro firemní komunikaci. „KPI“ je jedna zkratka, všichni ji znají. Kdybych místo „KPI“ napsal „klíčový ukazatel výkonnosti“, zabírá to víc místa — i když každé jednotlivé písmeno je „jednodušší“ než zkratka. Tokenizér funguje obdobně: zná „výběrů“ jako zkratku, ale „vyberu“ musí hláskovat.
Česká diakritika: zvláštní případ
Je důležité odlišit české diakritické znaky od problémů, které řeší tokenizéry u jiných jazyků. V češtině jsou znaky jako č, ř, š, ž v Unicode zastoupeny jako precomposed characters — jednotlivé kódové body (č = U+010D, ř = U+0159). To znamená, že v normalizované formě NFC se chovají jako běžná písmena.
Jiná situace nastává u jazyků, kde se diakritika zapisuje jako combining marks — samostatné znaky přidané za základní písmeno. Vietnamské „ệ“ může být složeno ze tří kódových bodů (e + circumflex + tečka pod písmenem). Tokenizéry starší generace (cl100k_base u GPT-4) v předtokenizačním regulárním výrazu používaly vzor \p{L}pro písmena, který slučovací značky nezahrnoval — a mohly je tak oddělit od základního znaku.
Novější tokenizér o200k_base (GPT-4o) tento problém řeší rozšířením regulárního výrazu o kategorii \p{M}pro slučovací značky. Pro češtinu je tato oprava méně podstatná — české znaky se v NFC nerozpadají. Ale princip je důležitý: novější tokenizéry jsou k diakritice obecně vstřícnější.
Kolik stojí tokenová daň s novými modely
Předchozí článek citoval data z tokenizéru cl100k_base — ten používá GPT-4 a GPT-3.5. Od té doby přišel GPT-4o s tokenizérem o200k_base, který má dvojnásobný slovník (200 000 oproti 100 000 tokenů). Jak se to projevuje?
Studie tokenizační efektivity pro ukrajinštinu (Maksymenko a Turuta, Frontiers in AI, 2025) dokumentuje výrazný pokles fertility — průměrného počtu tokenů na slovo — při přechodu na novější modely. Ukrajinština, další slovanský jazyk trpící tokenizační neefektivitou (v jejím případě kvůli kyrilici), zaznamenala u modelů s většími slovníky výrazné zlepšení oproti starším generacím.
Projekt Occiglot měřil fertilitu pro češtinu napříč tokenizéry na datech z Wikipedie:
Tokenizér (velikost slovníku)ČeštinaAngličtinaPoměrLlama-2 (32 000)2,3151,4291,62×Mistral (32 000)2,4871,4241,75×Phi-2 (51 000)3,0461,5022,03×Gemma (256 000)2,0631,2831,61×
Zákonitost je zřejmá: větší slovník zpravidla znamená nižší fertilitu pro češtinu. Gemma s 256 000 tokeny ve slovníku dosahuje pro češtinu fertility 2,063 — což znamená, že průměrné české slovo zabírá zhruba dva tokeny. Oproti Phi-2 s menším slovníkem (fertilita 3,046) je to třetinová úspora.
Tokenová daň se tedy zmenšuje — ale nemizí. I nejúčinnější velké slovníky vykazují pro češtinu přirážku kolem 60 % oproti angličtině.
Rozumí model češtině bez háčků?
Tokenizační účinnost je polovina problému. Druhá polovina: pokud píši bez diakritiky, rozumí mi model stejně dobře?
Odpověď je překvapivě odstíněná. Náplava, Straka a Straková z Univerzity Karlovy (2021) dosáhli při automatickém obnovení diakritiky z textu bez háčků pomocí modelu BERT přesnosti 99,22 %. To dokazuje, že kontextová informace v českém textu bez diakritiky je téměř vždy dostatečná pro jednoznačnou rekonstrukci — model „ví“, kde patří háčky. A co víc: po ruční anotaci všech údajných chyb se ukázalo, že 44 % z nich ve skutečnosti chybami nebylo — šlo buď o přijatelné varianty (19 %), nebo o případy, kdy model opravil chybu v původních datech (25 %).
Současné velké jazykové modely na tom budou ještě lépe, protože v trénovacích datech viděly obrovské množství české neformální komunikace psané bez diakritiky. Pro běžnou konverzaci — otázky, pokyny, diskuze — je ztráta porozumění minimální.
Ale existují pasti. České homonymní páry, kde diakritika rozlišuje význam, jsou skutečným rizikem:
- být/byt — existovat / obydlí
- dal/dál — minulý čas od „dát” / pokračovat
- víly/vily — pohádkové bytosti / domy
- drahy/dráhy — přídavné jméno v mužském rodě / trasy
- sud/súd — nádoba / soud (archaicky)
V běžné konverzaci kontext obvykle rozliší správný význam. Ale u odborných úloh — právní texty, rozpoznávání pojmenovaných entit, přesné pokyny — může chybějící diakritika vést k tiché chybě, kterou si uživatel neuvědomí.
Studie robustnosti jazykových modelů vůči šumovým vstupům (Chrabąszcz et al., arXiv, 2025) testující polská data ukazují, že modely zvládají odstraněnou diakritiku lépe než přehozená písmena nebo chybějící slova. Diakritické zásahy patří mezi méně ničivé typy šumu. Ale „méně ničivý“ neznamená „bez dopadu“ — modely na zašuměných vstupech měřitelně ztrácejí přesnost.
Co z toho plyne v praxi
Pro běžného uživatele ChatGPT, Claude nebo jiného modelu jsou závěry jednoznačné.
Pište s diakritikou. Nejen proto, že je to správná čeština. Ale proto, že model váš text zpracuje účinněji — za méně tokenů, s lepším porozuměním, s přesnějšími odpověďmi. Paradoxně platí: správná čeština je levnější čeština.
Pokud nemůžete psát s diakritikou(mobilní telefon bez české klávesnice, zahraniční zařízení), model vám pravděpodobně porozumí. Ale zaplatíte víc tokenů za stejný obsah a riskujete tiché chyby u odborných úloh. Pro rychlou otázku to nevadí. Pro generování právního dokumentu nebo analýzu dat to může vadit hodně.
Pro vývojáře nasazující jazykové modely v českém prostředí je důsledek systémový. Pokud váš řetězec zpracování přijímá uživatelské vstupy bez diakritiky (z chatovacích robotů, SMS, formulářů), zvažte předřazení modelu pro obnovu diakritiky — doplnění háčků a čárek předodesláním textu do jazykového modelu. Výzkum z Karlovy univerzity ukazuje, že přesnost 99 %+ je dosažitelná. Investice do tohoto kroku se vrátí nižšími náklady na tokeny a vyšší kvalitou odpovědí.
Chybějící studie
Je pozoruhodné, že systematická studie porovnávající tokenizaci češtiny s diakritikou a bez ní dosud neexistuje. Autoři práce o systému InDia to uvádějí výslovně. Existují dílčí důkazy — příklady jako „Během výběrů“ oproti „Behem vyberu“, obecné studie tokenizační nerovnosti, srovnávací testy fertility pro evropské jazyky. Ale nikdo zatím nevzal český korpus o desítkách tisíc vět, nesejmul diakritiku a nesrovnal počet tokenů napříč šesti hlavními tokenizéry.
Takový experiment by byl realizovatelný jedním skriptem v Pythonu za odpoledne. Použít český podkorpus FLORES-200, pro každou větu vytvořit variantu bez diakritiky, tokenizovat oběma způsoby přes tiktoken (cl100k_base, o200k_base), tokenizéry z HuggingFace (LLaMA, Mistral, Gemma) a statisticky vyhodnotit. Výsledky by měly praktický dopad — nejen pro akademický výzkum, ale pro každého, kdo provozuje službu založenou na jazykových modelech pro české uživatele.
Pokud tuto studii někdo provede, výsledky pravděpodobně potvrdí to, co naznačují dílčí důkazy: čeština bez diakritiky je paradoxně dražší na zpracování. Háčky a čárky nejsou luxus. Jsou kompresor.
Klíčové zdroje: Semenov & Popel, „InCa and InDia: Inline Casing and Diacritization Preprocessing“ (TokShop @ ICML 2025, Univerzita Karlova & Universität Zürich); projekt Occiglot, „Tokenizer Evaluation on European Languages“ (2024); Beey.ai / NEWTON Technologies, tokenizační analýza (2025); Náplava, Straka & Straková, „Diacritics Restoration using BERT with Analysis on Czech Language“ (PBML, Univerzita Karlova, 2021); Petrov et al., „Language Model Tokenizers Introduce Unfairness Between Languages“ (NeurIPS 2023); Maksymenko & Turuta, „Tokenization efficiency of current foundational LLMs for the Ukrainian language“ (Frontiers in AI, 2025); Chrabąszcz et al., „Evaluating LLMs Robustness in Less Resourced Languages with Proxy Models“ (arXiv:2506.07645, 2025).
Transparentnost tvorby:
Koncepce, struktura a redakční linie článku jsou dílem autora, který vypracoval obsahovou skicu, stanovil klíčové teze a řídil celý proces tvorby. Generativní AI (Claude, Anthropic) byla využita jako technický nástroj pro rešerši, ověřování faktů a rozepsání autorovy předlohy.
Autor výstupy průběžně redigoval, ověřil klíčová zjištění a schválil finální znění. Žádná část textu nebyla publikována bez lidské kontroly. Všechny faktické údaje byly ověřeny proti veřejně dostupným zdrojům uvedeným v textu.
Postup je v souladu s požadavky Čl. 50 Nařízení EU 2024/1689 (AI Act) na transparentnost AI-generovaného obsahu. #poweredByAI





