Proč jsou jazykové modely tak blbé na matiku?
Představte si, že máte kamaráda, který mluví jako Shakespeare, ale neumí spočítat, kolik je 7 + 8. Přesně tak se chovají dnešní jazykové modely umělé inteligence jako ChatGPT. Dokážou psát básně, vysvětlovat vtipy a vést filosofické debaty, ale když dojde na počty, najednou jsou v koncích. Proč tomu tak je? A je šance, že se to někdy změní?

Matematika je pro AI překvapivě oříšek
Pokud jste někdy zkoušeli použít ChatGPT jako kalkulačku, nejspíš jste si všimli, že to není zrovna jeho silná stránka. A není v tom sám – podobné problémy mají i další jazykové modely jako Claude od Anthropicu, Gemini od Googlu nebo Llama od Mety. Všechny tyto AI mají potíže i s úlohami, které by zvládl průměrný páťák. Přitom paradoxně zvládají složité slovní úlohy z přijímaček na vysokou školu. Jak je možné, že umělá inteligence, která dokáže pomalu napsat divadelní hru, se zamotá do jednoduchého početního příkladu?
Důvodů je několik a jsou docela zajímavé. Pojďme se na ně podívat.
Tokenizace: když se čísla rozpadnou na kousky
Jedním z viníků je proces zvaný tokenizace. Je to způsob, jakým se uvnitř modelu rozděluje vstupní text na menší části, se kterými pak pracuje. Například slovo „fantastický“ by mohlo být rozděleno na „fant“, „ast“ a „ický“. To umožňuje zpracovávat informace v mnoha jazycích, ale s čísly to dělá pěknou neplechu.
Problém je v tom, že modely pro tokenizaci vlastně vůbec nerozumí tomu, co čísla jsou. Místo aby viděly číslo jako celek, rozdělí ho na části. A to může vést k docela vtipným situacím. Třeba číslo 1024 může být bráno jako jeden token, ale 1025 už jako tokeny dva – „10“ a „25“. Tím se úplně ztratí vztah mezi těmito čísly a model pak nechápe, že jdou hezky za sebou.
Statistické myšlení vs. matematická logika
Další háček je v tom, jak jazykové modely vlastně „přemýšlí“. Ve skutečnosti totiž nepřemýšlí vůbec – jen hádají, co by mohlo následovat, na základě toho, co se naučily z trénovacích dat. Je to jako kdyby se snažily dokončit větu „Dvě a dvě jsou…“ Správně odpoví „čtyři“, protože to viděly milionkrát. Ale jakmile se objeví složitější příklad, který nemají nabiflovaný, jsou v koncích.
Když se nad tím zamyslíte, není to tak nepodobné tomu, jak počítáme my lidé. Každý člověk (i ChatGPT) vám okamžitě řekne, kolik je 7×7. Ale málokdo z nás dokáže z hlavy vynásobit dvě pěticiferná čísla. Prostě na to náš mozek není stavěný. Co umíme, je rozdělit si úlohu na menší kroky a ty pak postupně řešit.
A přesně to je problém současných jazykových modelů – neumí si úlohu rozdělit na dílčí kroky, pokud je o to výslovně nepožádáme. Jsou skvělé tam, kde mohou použít nabiflované znalosti. Ale jakmile se dostaneme mimo oblast memorizace, nastávají potíže. Pokusy ukazují, že GPT-4o (standardní model ChatGPT) má problémy s násobením čísel, která mají víc než čtyři cifry. Přesnost u takových příkladů výrazně klesá.
Co má společného Bible a 11. září?
A někdy modely dokonce trpí zvláštními „předsudky“, podobně jako když člověku určité asociace brání ve správném úsudku. Fascinující příklad odhalili výzkumníci při testování různých jazykových modelů s jednoduchým příkladem: „Je větší číslo 9,9 nebo 9,11?“ Modely překvapivě konzistentně odpovídaly špatně. Když se podívali dovnitř modelu pomocí speciálních nástrojů, zjistili, že chybu způsobují především dvě silné asociace: model si číslo 9.11 spojoval s datem 11. září a s biblickými verši (kapitola 9, verš 11). Teprve když tyto matoucí koncepty výzkumníci „vypnuli“, model dokázal správně určit, že 9,9 je větší než 9,11.
Naděje na zlepšení?
Existuje šance, že by se AI mohla v matematice zlepšit? Jistě. OpenAI nedávno představila nový model o1, který je speciálně navržený pro „uvažování“. Tento model si totiž dokáže rozdělit úlohu na dílčí kroky. Ale ruku na srdce – daleko efektivnější, přesnější a neskutečně levnější je prostě popadnout kalkulačku a spočítat to postaru.

Pikantní na tom je, že ChatGPT má takovou kalkulačku k dispozici už přes rok. Jestli ji použije, o tom rozhoduje podle nějakého svého algoritmu, a někdy se rozhodne špatně. Naštěstí existuje jednoduchý trik – stačí ChatGPT říct kouzelnou větu: „pro výpočty použij python“.