Jazykové modelování jako jedna z klíčových domén vývoje umělé inteligence

Jednou z nejvíce využívaných, ale relativně málo viditelných aplikací „umělé inteligence“ je jazykové modelování. To už v současné době zasahuje do toho, jak fungují internetové vyhledávače, umožňuje rozeznávat řeč či strojově překládat libovolný text, zjednodušuje naši každodenní práci s kancelářskými balíky. Jak jazykové modelování funguje? Jak vypadá vývoj a jakým směrem se ubírá?


Muppeti jako častá předloha názvů jazykových modelů

Autoři nové modely často pojmenovávají po postavičkách ze seriálu „Sezame, otevři se“. Jedním z nejznámějších příkladů je BERT od Googlu (vlevo). Zdroj: needpix.com

Od N-gramů po rekurentní neuronové sítě

Nejběžnější způsob modelování jazyka funguje na základě četnosti jednotlivých tzv. n-gramů. N-gram může být foném, písmeno, slovo. Pokud si za n-gram určíme slovo – tedy jinými slovy modelujeme pomocí unigramů – znamená to, že počítáme pravděpodobnost pro každé slovo za slovem ve větě následující. Jednotlivé statistické modely a jejich schopnost predikovat se od sebe liší zejména technickým řešením toho, jak „vyhlazují“ četnosti a nakolik přesně jsou schopny predikovat sekvenci slov. Takovýto způsob statistického modelování má ale několik zásadních nevýhod – pravděpodobnost je počítána pro jednotlivé kombinace slov ve větách zvlášť, a jakákoli sebemenší změna či anomálie v pořadí způsobí, že model musí vstup přepočítávat. Stejně tak je v základním modelu problémem sémantická, tj. nedoslovná podobnost textu. Tj. takový model považuje každou větu nehledě na její význam za specifickou, a potřebuje k ní vždy dostatek příkladů/dat.

Dalším z problémů variací tohoto „klasického přístupu“ je obecně nutnost zadávání specifických příkazů. V takovém systému je právě sofistikovanost daných příkazů a jejich správné (resp. datový soubor vystihující) napsání zárukou přesnosti daného jazykového modelu. Se strojovým učením a neuronovými sítěmi se ale tento předpoklad do značné míry mění.

Využívané neuronové sítě  můžeme odlišit na dva základní typy: (1) tzv. feed-forward neuronové sítě a (2) rekurentní neuronové sítě. U neuronových sítí spočívá jedna z hlavních výhod v tom, že jsou obecně namísto slov uvažovány funkční celky – před samotným výpočtem jsou významově podobná slova shlukována, a s tímto shlukem je dále počítáno. Pro jednotlivá slova tak výpočet nemusí probíhat zvlášť, což by teoreticky pro daný výpočet mělo šetřit výpočetní kapacitu modelujícího zařízení. Problematickým bodem ve feed-forward přístupech nicméně pořád zůstává omezenost daného funkčního celku – tj. pořád nám uniká širší kontext (dlouhé věty se složitější větnou stavbou).

Zde nastupují právě rekurentní neuronové sítě, které na rozdíl od feed-forward sítí dokáží pracovat cyklicky – bez větší supervize, v krocích a s teoretickou libovolně dlouhou délkou vstupu. Dokáží si rovněž poradit s méně strukturovaným obsahem a stejně tak i s obsahem, ve kterém se vyskytují chyby. Přesnost se pak zvyšuje s velikostí zpracovaného korpusu. Kromě výpočtu pravděpodobnosti jsou ale rekurentní neuronové sítě schopny zpracovávat text pro mnohem více účelů, lze kupř. označit jednotlivá slova ve větách podle jejich emočního „vyznění“ – a s těmito emočními „tagy“ se pak dále dá pracovat kupř. v rámci analýzy sentimentu.

Současné technologie a aplikace

Jazykové modelování, resp. nejčastěji rekurentní neuronové sítě v současnosti řeší několik problému, mezi ně patří kupř. (1) velikost a strukturovanost datasetů – ty musí být dopředu v menší míře strukturované, anebo alespoň filtrovány dle relevance. (2) Větší datasety a více funkčních úkonů si vyžadují více výpočtů, a mají tak větší nároky kupř. na paměť.

Vývojáří umělé inteligence generují obrovské množství projektů, sytémů, balíků a modulů – word2vec , Seq2Seq, GloVe, ULMFit, Elmo, Rosita, KERMIT a mnoho mnoho dalších, které jsou často open-source, a autoři je mezi sebou často sdílí, a značně tak urychlují vývoj v jazykovém modelování. Schopnost pracovat s co největšími datasety co nejefektivněji je v současné době předmětem předhánění se několika „hlavních hráčů“:

Sanfranciské OpenAI má svůj v současnosti nejsofistikovanější modelovací systém GPT-2. Google má svůj systém BERT, nVidia má svůj Megatron-LM, a Microsoft svůj Turing-NLG. Výhody a nevýhody všech čtyř jazykových modelů jsou nad naše porozumění, ale všechny mají společné to, že v menší či větší kvalitě dokážou kódovat vstupní data bez nutnosti supervize. To probíhá ve fázi modelování, které se říká pre-training.

Ilustrace Megatronu LM

A právě v trénování na datasetu je hlavní kámen úrazu – jedná se o výpočetně složitý proces, který ubírá značnou kapacitu hardwaru. Proto byly vyvinuty přístupy, která rozdělují data, modely a jednotlivé úkoly. To se nejnověji alespoň dle veřejně dostupných vyjádření nedávno vskutku bravurně podařilo právě týmu Microsoftu, který přišel se svým open-source balíkem DeepSpeed s optimalizací paměti ZeRo. Optimalizace dokáže lépe rozdělovat právě data, a to bez jakýchkoli doposud nutných redundancí napříč výpočetními jednotkami, které jsou ve zkratce nahrazeny dynamičtějším systémem vzájemné komunikace. To výrazně šetří paměť, nadto se dá optimalizace dat kombinovat s další optimalizací rozdělení modelů a úkolů. Výsledkem je skokový nárůst počtu parametrů, se kterými dokáže T-NLG počítat. Naproti nedávnému rekordu Megatronu s 8 miliardami parametrů se tak dostáváme k 17 miliardám parametrů. A zajímavostí je, že pro výpočet nejnovějšího modelu vývojáři potřebovali „pouhých“ 256 grafických karet naproti 1024 grafickým kartám v případě slabšího Megatronu. 

Spousta čísel a názvů, ale co to všechno znamená?

Konkrétně Microsoft dle svých slov pracuje na vývoji T-NLG s několika cíli, které mohou znít poněkud banálně: Jedním z nich je poskytnout uživatelům přímější odpovědi. To konkrétně znamená, že hlasový asistent by měl uměl odpovědět na konkrétní otázky v „lidštějších“ větných konstrukcích. Zejména by ale současný pokrok v jazykovém modelování mohl výrazně usnadnit sumarizaci textů. Namísto poměrně snadného popisu bloku extrahováním několika hlavních vět by měl být T-NLG schopný vytvářet složité abstrakty a sumáře e-mailů či prezentací, a to zejména z hlediska uživatelského obsahu – tj. po vašem dotázání by vám měl být asistent schopný přesně říci, o čem v konkrétním odstavci píšete, anebo co se vám obšírně snaží kolega ve svém rozsáhlém mailu říci.

I když vývojáři praktické důsledky uvádí zejména ve vztahu k uživatelskému prostředí svého komerčního softwaru, my si klademe otázku, za jak dlouho nám asistenti budou kupř. schopni kompletně přečíst a originálně sumarizovat velkou část vědeckých článků bez našeho výrazného přičinění, a přispět tak k naší orientaci v čím dál informačně náročnějším světě.* Šíři důsledků automatizace takovýchto doposud čistě lidských schopností necháme na vašem domyšlení.


Zajímavé odkazy

Newsletter přímo se zabývající strojovým zpracováváním jazyka.

Podcast o možnostech odhalování sofistikovanějších ideologicky laděných textů (Apple ale neumíme, takže za obsah neručíme).

Rozhovor s Tomášem Mikolovem v pořadu Hyde park civilizace 15. února 2020.

Toolkit pro potenciální NLP kutily.

Tutoriál k tvorbě vlastního jazykového modelu.


Zdroje

Anderson, D. (2019). A deep dive into BERT: How BERT launched a rocket into natural language understanding. Google Research Blog.
Devlin J., Chang, M. W. (2018). Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing. Google Research Blog.
Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2018). Bert: Pre-training of deep bidirectional transformers for language understanding.
Exxactcorp.org (2019). Megatron Unleashed: NVIDIA’s NLP Model “Megatron-LM” is the Largest Transformer Ever Trained. Exacctcorp Blog. 
Gori, M. (2018). Chapter 5: Deep Architectures. Machine Learning: A Constraint-Based Approach 2018, Pages 236-338. 
Jin, K. (2017). Language Model: A Survey of the State-of-the-Art Technology. Synced.
Jurafsky D. & Martin H. J. (2019). Chapter 3: N-gram Language Models. Speech and Language  Processing.
Jurafsky, D.: Language Modelling: Intoduction to N-grams. Prezentace. Stanford University: 
Majumder, R., Wang J. (2020). ZeRO & DeepSpeed: New system optimizations enable training models with over 100 billion parameters. Microsoft Research Blog.
Mikolov, T. (2012). Statistical language models based on neural networks. Disertační práce: VUT Brno. Vedoucí práce: Doc. Dr. Ing. Jan Černocký.
Rodriguez, J. (2020). Microsoft Open Sources ZeRO and DeepSpeed: The Technologies Behind the Biggest Language Model in History. Towards Data Science. 
Rosset, C. (2020).  Turing-NLG: A 17-billion-parameter language model by Microsoft. Microsoft Research Blog. 
See, A.. Natural Language Processing with Deep Learning. Prezentace. Stanford University. 

 

25/02/2020 (mp)

 

Stránka ukládá soubory cookies.

Pokud s použitím cookies nesouhlasíte, nastavte prosím váš internetový prohlížeč.