Problémy dnešních generátorů jazyka
| 5. 9. 2022Generování přirozeného jazyka je úloha, při níž počítač na základě nějakých vstupních dat vytvoří srozumitelné a plynulé sdělení např. v angličtině nebo češtině. Jak funguje?
Vstupní data může představovat např. tabulka s výsledky z databáze nebo výstup měřicího přístroje, ale za problém generování jazyka se považuje i odpovídání v dialogu s chatbotem, kde vstupem je text dosavadní konverzace. Velmi pravděpodobně proto generování jazyka už dnes používáte. Automaticky generované jsou odpovědi chytrých reproduktorů a virtuálních asistentů v mobilních telefonech a na generovaný text narazíte na různých webech – jsou to např. notifikace na sociálních sítích, ale i zprávy o počasí nebo některé sportovní zprávy. Jak už u nástrojů pracujících s jazykem bývá zvykem, častěji se s generovanými texty setkáte v angličtině než v češtině.
Bude <teplota> stupňů
Prakticky všechny dnes komerčně používané generátory jsou založené na ručně psaných pravidlech, což je technologie používaná už od minulého století. V praxi často stačí doplňování specifických hodnot do šablon – vět s vynechanými mezerami. Např. ze šablony „Dnes bude <teplota> stupňů a <počasí>.“ jednoduše dostanete větu: „Dnes bude 25 stupňů a polojasno“. Pro složitější aplikace je k šablonám nutné přidat pravidla na jejich výběr a kombinování. Ta určují např. jak vybrat, které události fotbalového zápasu jsou hodné zmínky, nebo jak sestavit sdělení popisující cestu MHD s několika přestupy. Pro morfologicky bohaté jazyky, jako je i čeština, ještě přibývá nutnost doplňovaná slova vyskloňovat (typicky podle slovníku), abychom se vyhnuli krkolomným formulacím typu „Toto se líbí uživateli Ondřej Dušek“.
„Neuronové systémy běžně buď ‚zapomenou‘ sdělit důležité informace, nebo naopak ‚halucinují‘ – informují o věcech, které vstupními daty nejsou podložené.“
Šablony a pravidla fungují celkem spolehlivě a výstupy dnešních generátorů jsou dobře srozumitelné, ale mají dvě zásadní nevýhody. Jednak kombinace šablon (a popř. absence skloňování) často vede k nepřirozeně znějícím větám, jednak je pro každou novou aplikaci nutné šablony a pravidla vytvořit znova, což je pracné a ve výsledku drahé. Kromě toho generátor pokaždé pro stejný typ sdělení používá tutéž šablonu, takže se vygenerované texty často opakují.
Neuronové sítě
Oproti komerčním systémům se výzkum generování přirozeného jazyka už několik let zabývá téměř výhradně generátory založenými na umělých neuronových sítích.1) V této oblasti totiž došlo k obrovskému pokroku: v letech 2014–2015 se objevily první rekurentní architektury pro neuronové sítě generující celé věty slovo po slově, v roce 2017 dnes nejčastěji používaná architektura Transformer (viz obr. a popisek) a od roku 2018 se objevují nové a nové tzv. předtrénované jazykové modely, tedy sítě typu Transformer, které jsou natrénovány na miliardách vět stažených z internetu. Postupně přitom roste jejich velikost – počet neuronových vrstev a v nich počet jednotlivých umělých neuronů (tj. maticových sčítání, násobení a jednoduchých matematických funkcí) – a zlepšuje se také plynulost a přirozenost textů, které jsou modely schopny vygenerovat.
Hlavní myšlenka generování v neuronovém jazykovém modelu je až překvapivě jednoduchá: model dostane začátek věty a snaží se předpovědět, které slovo bude další. Tuhle situaci lze dále upravit tak, že model dostane na vstupu i nějaká data a v prvním kroku bude „začátek“ věty prázdný, takže můžeme vygenerovat celou větu na základě dat. Při trénování model začíná s náhodnými parametry (koeficienty pro ona sčítání a násobení v neuronech). Postupně dostává text, a kdykoli netrefí další slovo správně, drobně si parametry upraví, až se trefuje čím dál častěji. Neuronové modely se už v praxi používají v jiných oblastech zpracování jazyka – např. při rozpoznávání řeči (model dostává na vstupu zvukový signál a „generuje“ odpovídající slova) nebo ve strojovém překladu (vstupem je text v cizím jazyce). Tady díky neuronovým sítím došlo k výraznému pokroku, kdy za určitých podmínek můžou automatické systémy soutěžit s lidmi.2) Kdybychom si srovnali automatický překlad z doby před deseti lety a z dneška, uvidíme obrovský rozdíl.
Také pro generování jazyka představují neuronové sítě obrovský potenciál – např. celý virtuální asistent může být reprezentován jednou neuronovou sítí a může přímo z uživatelských dotazů generovat odpovědi. Stejně tak můžeme neuronovému modelu jen dodat trénovací příklady pro danou aplikaci (např. data z meteostanic a odpovídající texty o počasí) a síť se sama naučí tvořit plynulé texty, bez nutnosti psát ručně šablony nebo pravidla pro jejich spojování. Schopnost generovat úžasně plynulé a realisticky vypadající texty už dostala předtrénované jazykové modely i do povědomí široké veřejnosti v podobě zpráv o automatickém vygenerování vědeckého článku, divadelní hry (v projektu THEaiTRE,3) na němž se podílela i MFF UK), rozhovoru s digitálním Václavem Havlem či při spekulacích, zda už neuronové modely nabyly vědomí.
Od imitace k chápání významu
Vědomí je možná spíš filozofická otázka, ale většina vědecké komunity věnující se zpracování jazyka je přesvědčena, že u současných neuronových modelů se o něm mluvit nedá. A nejen to, jazykové modely vlastně nejsou ani dost dobře použitelné pro generování jazyka v praxi, proto se stále používají pravidla a šablony. Vygenerování uvěřitelně vypadajícího textu je totiž něco jiného než přesné popsání zadaných dat nebo pravdivá odpověď na uživatelovu otázku.
I když se jazykovým modelům správně popisovat data a zodpovídat otázky často daří,, není to stále dost často na to, aby se na ně dalo spolehnout. Neuronové systémy totiž běžně buď „zapomenou“ sdělit důležité informace, nebo naopak „halucinují“ – informují o věcech, které vstupními daty nejsou podložené. Dnes nelze ani stoprocentně zaručit, že jejich vygenerovaný text nebude pro uživatele hrubý nebo urážlivý. Protože neuronové jazykové modely jsou typicky předtrénovány na čistě jazykových datech (textech stažených z internetu) a učí se jen velmi jednoduché úlohy (jako je výběr následujícího slova), chybí jim dostatečné propojení s reálným světem. Proto byly také v nedávném hojně diskutovaném článku nazvány „stochastickými papoušky“4) – výborně imitují lidská sdělení, ale význam a propojení s realitou jim uniká.
Máme tedy k dispozici dva základní typy generátorů jazyka, a ani jeden z nich není ideální. Můj začínající výzkumný projekt „Generování přirozeného jazyka nové generace“, financovaný Evropskou unií z grantu Evropské výzkumné rady (ERC), si klade za cíl spojení předností obou typů generátorů. Cílem je vytvořit systémy, které je možné natrénovat z dat a zároveň se spolehnout na jejich přesnost. Plánujeme proto neuronové modely více kontrolovat a omezovat jejich výstup – vstupem nebudou přímo data, ale podrobný plán sdělení, kde lze snadno ověřit shodu se vstupními daty, a řídit podle něj generování. Zároveň je chceme propojovat s „realitou“ v podobě rozsáhlých grafů znalostí – databází faktů. Generátor se tak naučí produkovat nejen uvěřitelná, ale i ověřitelná sdělení.
Poznámky
1) O neuronových sítích obecně viz Vesmír 95, 276, 2016/5, o hlubokém učení Vesmír 100, 31, 2021/1.
2) Strojově přeložený článek o strojovém překladu: Vesmír 99, 546, 2020/10.
4) Bender E. M. et al.: On the Dangers of Stochastic Parrots: Can Language Models Be Too Big? Proceedings of the FAccT 21, 610, 2021, DOI: 10.1145/3442188.3445922.
Ke stažení
- článek ve formátu pdf [469,15 kB]