Velký jazykový model

jazykový model s velkým množstvím parametrů

Velký jazykový model (large language model, LLM) je počítačový model jazyka založený na neuronové síti s mnoha parametry (typicky miliardami vah nebo více), trénované na velkém množství textu pomocí samoučení (self-supervised learning) nebo částečného učení s učitelem (semi-supervised learning).[1] Velké jazykové modely se objevily kolem roku 2018 a používají se jako základní modely pro širokou škálu úkolů. To posunulo těžiště výzkumu zpracování přirozeného jazyka od předchozího paradigmatu vytváření specializovaných a na učení s učitelem založených modelů pro konkrétní úkoly.

Mezi jazykové modely patří například:[2]

Využití editovat

Ačkoli termín velký jazykový model nemá žádnou formální definici, často označuje modely hlubokého učení s počtem parametrů v řádu miliard nebo více. LLM jsou modely pro všeobecné použití, které vynikají v široké škále úkolů, na rozdíl od modelů pro jeden konkrétní úkol (jako je analýza sentimentu, rozpoznávání pojmenovaných entit nebo matematické uvažování). Dovednost, s jakou LLM plní úkoly, a rozsah úkolů, které jsou schopné řešit, je především funkcí množství zdrojů (dat, počtu parametrů, výpočetního výkonu), které jsou jejich tvorbě věnovány; nejsou tedy založeny na průlomových změnách designu neuronových sítí oproti stavu vědy před rokem 2018, ale spíše mohly vzniknout díky překročení kritické hranice v množství dat a výpočetních zdrojů.[8]

Přestože se neurální jazykové modely s dostatečným školením a počty parametrů trénují na jednoduchých úkolech ve smyslu předvídání dalšího slova ve větě, dokázaly se celkem dobře naučit syntaxi a sémantice lidského jazyka. Velké jazykové modely navíc prokazují značné obecné znalosti o světě a dokáží si během učení „zapamatovat“ velké množství faktů.

Velké jazykové modely lze používat přímo jako partnery k rozhovoru, například při učení se cizím jazykům, anebo na jejich základě budovat aplikace přizpůsobené specifickým požadavkům. Pro tvorbu těchto aplikací lze kromě obecnějších programovacích jazyků využít i specializované frameworky, jako je LangChain.[9]

LLM se učí na datech rozdílných kvalit a pravdivosti. Mohou tedy obsahovat a opakovat dezinformace, konspirace či stereotypy.[10]

Vlastnosti editovat

Data editovat

LLM se učí na velkých souborech textových dat. Některé běžně používané datové sady jsou Common Crawl, The Pile, MassiveText,[11] Wikipedia a GitHub. Datové sady mají rozsah až 10 bilionů slov.

Celková světová zásoba vysoce kvalitních jazykových dat se pohybuje v rozmezí 4,6–17 bilionů slov, což je řádově v rozsahu největších použitých textových datových sad.

Škálování editovat

Obecně lze LLM charakterizovat čtyřmi parametry: velikost modelu, rozsah trénovací datové sady, náklady na učení, výkon modelu. Každá z těchto čtyř proměnných může být přesně definována a kvantifikována a empiricky bylo zjištěno, že jejich vzájemnou závislost lze zhruba vystihnout vzorci, nazývanými zákonitosti měřítka (anglicky scaling laws).

Jednu konkrétní zákonitost (zvanou „Chinchilla scaling“) pro model autoregresivně učený po jednu epochu s log-log rychlostí učení lze přibližně popsat takto:

 
kde proměnné jsou
  •   jsou náklady na trénování modelu ve FLOPS
  •   je počet parametrů v modelu
  •   je počet tokenů (zhruba řečeno slov) v tréninkové sadě
  •   je průměrná chyba na token (vyjádřená jako negativní logaritmická věrohodnost, nats/token), dosažená hotovým LLM na testovací datové sadě

a regresní parametry jsou

  •  , což znamená, že učení na jednom tokenu vyžaduje 6 FLOPS na parametr. Výpočetní náklady na učení jsou mnohem vyšší než náklady na provoz hotového modelu, kde zpracování jednoho tokenu stojí 1 až 2 FLOP na parametr.
  •  .[12]

Emergentní schopnosti editovat

 
V řadě srovnávacích testů přirozeného jazyka zahrnujících úkoly jako odpovídání na otázky, nefungují modely lépe než náhodná odpověď, dokud nedosáhnou určité velikosti (v tomto případě měřené výpočetními náklady na jejich vznik). Pak se jejich výkon prudce zvýší. To jsou příklady emergentních schopností.

I když obecně platí, že výkon velkých modelů na různých úkolech lze extrapolovat na základě výkonu podobných menších modelů, někdy dochází k „průlomům“ (breaks),[13] skokovým nárůstům schopností, takže větší modely získají podstatně lepší schopnosti, než by se dalo čekat na základě zkušenosti z menších modelů. Ty se často označují jako „emergentní schopnosti“ a jsou předmětem rozsáhlého studia. Výzkumníci tvrdí, že takové schopnosti často „nelze předvídat jednoduše extrapolací výkonu menších modelů“.[14] Spíše se samy objevují než aby byly naprogramovány nebo navrženy. V některých případech se na ně přišlo až po veřejném nasazení LLM. Byly popsány již stovky emergentních schopností. Příklady jsou vícekrokové aritmetické výpočty, složení zkoušek vysokoškolské úrovně, identifikace zamýšleného významu mnohoznačného slova, myšlenkové postupy, dekódování mezinárodní fonetické abecedy, uhodnutí slova na základě seznamu jeho písmen, identifikace urážlivého obsahu v textech psaných hinglish (kombinace hindštiny a angličtiny) a generování podobného anglického ekvivalentu svahilských přísloví.[15]

Halucinace editovat

Bylo pozorováno, že generativní LLM sebejistě tvrdí věci, které se neopírají o jejich trénovací data, což je jev, který se nazývá halucinace.[16]

Architektura editovat

Velké jazykové modely nejčastěji používají architekturu transformeru, která se od roku 2017 stala standardní technikou hlubokého učení pro sekvenční data (dříve byly nejběžnější RNN, jako je LSTM).

Tokenizace editovat

Tokenizace je převod textu na tokeny.[17] Tokenizace je pro převední textu do numerické podoby a jde tak o první krok při zpracování přirozeného jazyka, aby text mohl být strojově využit.[18] LLM je jazykový model založený na neuronové síti, kde vstupem i výstupem jsou vektory čísel. V důsledku toho musí být slova převedena na čísla.

Proto každý LLM používá samostatný tokenizer. Ten kóduje texty na posloupnosti celých čísel. Tokenizer se nejprve nastaví na celé trénovací datové sadě, aby ji dokázal reprezentovat, poté se zmrazí, načež se naučí samotný LLM. Běžnou volbou je kódování bajtových párů (byte pair encoding).

Další funkcí tokenizerů je komprese textu, která šetří paměť počítače. Běžná slova nebo fráze jako „kde je“ lze místo několika znaků zakódovat jediným tokenem. Řada OpenAI GPT používá tokenizer, který na 1 token mapuje přibližně 4 znaky nebo přibližně 0,75 slova v běžném anglickém textu.[19] Neobvyklý text je méně předvídatelný, tudíž méně komprimovatelný, a proto jeho kódování vyžaduje více tokenů.

Výstupem tokenizeru nemůže být libovolné celé číslo, ale pouze celá čísla v rozsahu  , kde   se nazývá velikost slovní zásoby tokenizeru.

Některé tokenizéry jsou schopny zpracovat libovolný text (obecně tím, že pracují přímo s jeho Unicode reprezentací), ale jiné ne. Když narazí na nekódovatelný text, tokenizér vypíše speciální token (často 0), který představuje neznámý text. Toto se často zapisuje jako [UNK], například v článku o BERT.

Dalším běžně používaným speciálním tokenem je [PAD] (často 1) jako „vycpávka“. Ta se používá, protože LLM obecně na vstup dostává celý tokenizovaný text najednou, a tyto texty obecně nemají stejnou délku. Vzhledem k tomu, že LLM obecně vyžadují, aby vstupem byl vektor přesně zadané délky, kratší kódované texty musejí být na konci doplněny vycpávkou.

Výstup editovat

Základním výstupem LLM je rozdělení pravděpodobnosti nad jeho slovní zásobou. To se obvykle dosahuje takto:

  • Po zpracování textu LLM vygeneruje vektor   kde   je velikost jeho slovní zásoby (definovaná výše).
  • Vektor   projde funkcí softmax  , která jej normalizuje.

Vektor   se obvykle nazývá nenormalizovaný logitový vektor a vektor   se nazývá vektor pravděpodobnosti. Má   prvků, všechny nezáporné, a jejich součet je 1, můžeme ho interpretovat jako rozdělení pravděpodobnosti přes   — to znamená, že se jedná o rozdělení pravděpodobnosti nad slovníkem LLM.

Učení editovat

Většina LLM se učí tak, že používá datový soubor textových tokenů a předpovídá tokeny v tomto datovém souboru. Existují dva možné postupy:[20]

  • autoregresivní (styl GPT, „předpověz další slovo“): Na základě segmentu textu jako „rád jím“ model předpoví následující tokeny, např. „zmrzlinu“.
  • maskující (styl BERT, vynechaná slova): Je zadán segment textu jako „Rád [MASKA] zmrzlinu“ a model předpovídá maskované tokeny, např. "jím".

LLM mohou být trénovány na pomocných úlohách, které testují jejich porozumění distribuci dat, jako je Next Sentence Prediction (NSP), ve které jsou prezentovány dvojice vět a model má určit, zda se v trénovacím korpusu objevily po sobě.

Obvykle jsou LLM trénovány tak, aby minimalizovaly specifickou ztrátovou funkci: průměrnou zápornou logaritmickou pravděpodobnost na token (také nazývaná ztráta křížové entropie).  Pokud například autoregresivní model s daným výrazem „rád jím“ předpovídá rozdělení pravděpodobnosti   pak je záporná pravděpodobnost ztráty logu na tomto tokenu   .

Během tréninku se ke stabilizaci učení používá také regularizace. Existuje také mnohem více hodnotících kritérií než jen negativní logaritmická pravděpodobnost.

Velikost trénovací datové sady editovat

Nejstarší LLM byly trénovány na korpusech řádově miliard slov.

GPT-1, první model z číslované řady generativních předtrénovaných transformerů OpenAI, byl v roce 2018 trénován na BookCorpus, který obsahuje 985 milionů slov.[21] Ve stejném roce byl BERT vyškolen na kombinaci BookCorpus a anglické Wikipedie, celkem 3,3 miliardy slov. Od té doby se tréninkové korpusy pro LLM řádově rozrostly a dosáhly až bilionů tokenů.

Náklady na učení editovat

Trénování LLM je výpočetně nákladné. Studie z roku 2020 odhadla náklady na trénování modelu s 1,5 miliardami parametrů (o 2 řády menší než tehdejší stav techniky) na 1,6 milionu dolarů. Pokrok softwaru a hardwaru náklady podstatně snižuje, protože dokument z roku 2023 uvádí náklady 72 300 hodin A100-GPU na trénování modelu s 12 miliardami parametrů.

Aplikace editovat

Mezi lety 2018 a 2020 bylo standardní metodou využití LLM pro konkrétní úkol model doladit (fine tune) pomocí dalšího učení specifického pro daný úkol. Poté bylo zjištěno, že výkonnější LLM, jako je GPT-3, mohou řešit úkoly bez dalšího školení pomocí vhodně formulovaného podnětu (promptu). Problém, který má být vyřešen, je modelu přímo popsán a případně doplněn příklady podobných problémů a jejich řešení.

K typickým problémům řešeným pomocí velkých jazykových modelů patří

  • Sumarizace rozsáhlého textu
  • Naopak generování textu ze sumáře
  • Stylistika textu (napodobování autora nebo postavy)
  • Použití jako osobního učitele
  • Řešení matematických a přírodovědných úloh
  • Odpovídání na otázky k textu
  • Generování počítačových programů z popisů jejich funkce[22]
  • Provoz chatbotů

Ladění editovat

Ladění je modifikace existujícího předtrénovaného jazykového modelu dalším učením (s učitelem) na konkrétní úkol (např. analýza sentimentu, rozpoznávání pojmenovaných entit nebo identifikace slovních druhů). Je to typ transferového učení. Zpravidla se využívá přidání nové sady vah spojujících poslední vrstvu předtrénovaného jazykového modelu s výstupem následné úlohy. Původní váhy jazykového modelu mohou být zmrazeny, takže se během tréninku učí pouze nová vrstva vah, spojená s výstupem. Případně mohou původní váhy být nepatrně aktualizovány (případně se zmrazenými nižšími vrstvami).

Prompting (prompt inženýrství) editovat

V paradigmatu promptingu, popularizovaném GPT-3, je problém, který má být vyřešen, formulován pomocí textové výzvy, kterou musí model zodpovědět. Prompt může také obsahovat malý počet příkladů párů (problém, řešení), čemuž se říká učení na několika příkladech, few-shot prompting. Například úkol analýzy sentimentu filmové recenze může být promptován takto:

Review: This movie stinks.
Sentiment: negative

Review: This movie is fantastic!
Sentiment:

Pokud model odpoví „pozitivní“, pak úlohu správně vyřešil. Prompt bez příkladů (zero-shot) neuvádí žádné vyřešené příklady. Příkladem pro stejný úkol analýzy sentimentu může být prompt „Pocit spojený s recenzí filmu 'Tento film je fantastický!' je".

Ukázalo se, že výkon LLM v oblasti učení na několika příkladech dosahuje konkurenceschopných výsledků v úkolech NLP a někdy překonává předchozí nejmodernější přístupy k ladění modelů. Příklady takových úloh NLP jsou překlad, odpovídání na otázky, doplňování slov do věty a použití neznámého slova ve větě. Vytváření a optimalizace takových výzev se nazývá prompt inženýrství.

Ladění instrukcí editovat

Ladění instrukcí (instruction tuning) je druh ladění navržený tak, aby usnadnila přirozenější a přesnější interakce bez příkladů. Předtrénovaný jazykový model po zadání textu vygeneruje odpověď, která odpovídá distribuci textů, na kterých byl trénován. Model je dotrénován na mnoha příkladech úloh formulovaných jako instrukce přirozeného jazyka spolu s vhodnými reakcemi.

Posílení ze zpětné vazby editovat

Protokol InstructGPT firmy OpenAI zahrnuje doladění na datové sadě lidmi generovaných párů (výzva, odpověď), doplněný lidskou zpětnou vazbou (reinforcement learning from human feedback, RLHF).

Hodnocení editovat

Nejčastěji používaným měřítkem výkonu jazykového modelu je jeho perplexita na daném textovém korpusu. Ta je mírou toho, jak dobře je model schopen předpovědět obsah datové sady. Matematicky je definována jako exponenciála průměrné pravděpodobnosti záporného logaritmu na token:

 
kde   je počet tokenů v textovém korpusu a "kontext pro token i" závisí na konkrétním typu použitého LLM. Pokud je LLM autoregresivní, pak „kontext pro token i“ je segment textu, který se objevuje před tokenem i. Pokud učení LLM využívá maskování, pak „kontext pro token i“ je segment textu obklopující token i.

Vzhledem k tomu, že jazykové modely se mohou přeučit na svých trénovacích datech, modely se obvykle hodnoceny podle jejich perplexity na testovací sadě jim neznámých dat. To představuje zvláštní výzvu, protože jak jsou modely trénovány na stále větších korpusech textu z velké části stažených z webu, je stále pravděpodobnější, že trénovací data modelů neúmyslně zahrnují i části jakékoli testovací sady.

Kromě perplexity bylo vyvinuto velké množství dalších testovacích datových sad a benchmarků pro hodnocení schopností jazykových modelů na specifičtějších úkolech. Testy mohou být navrženy tak, aby vyhodnotily různé schopnosti včetně obecných znalostí, logického uvažování a řešení matematických problémů.

Reference editovat

V tomto článku byl použit překlad textu z článku Large language model na anglické Wikipedii.

  1. Dostupné online. 
  2. TONYLOI, Isaac. Understanding large language models [online]. 2023-05-23 [cit. 2023-08-20]. Dostupné online. (anglicky) 
  3. Google I/O 2023: Making AI more helpful for everyone. Google [online]. 2023-05-10 [cit. 2023-10-08]. Dostupné online. (anglicky) 
  4. AI, Mistral. Mistral AI | Open source models. mistral.ai [online]. [cit. 2023-10-14]. Dostupné online. (anglicky) 
  5. Llama 2 - Meta AI. ai.meta.com [online]. [cit. 2023-09-05]. Dostupné online. (anglicky) 
  6. IBM Watson. www.ibm.com [online]. [cit. 2023-09-28]. Dostupné online. (anglicky) 
  7. IBM Plans to Make Llama 2 Available within its Watsonx AI and Data Platform. IBM Newsroom [online]. [cit. 2023-09-28]. Dostupné online. (anglicky) 
  8. cims.nyu.edu. Dostupné online. arXiv 2304.00612. 
  9. Introduction. docs.langchain.com [online]. LangChain [cit. 2023-07-10]. Dostupné online. (anglicky) 
  10. Large language models repeat conspiracy theories and other forms of misinformation, research finds. techxplore.com [online]. [cit. 2023-12-20]. Dostupné online. 
  11. Dostupné online. (anglicky) 
  12. J. Hoffmann, S. Borgeaud, A. Mensch, E. Buchatskaya, T. Cai, E. Rutherford, D. d. L. Casas, L. A. Hendricks, J. Welbl, A. Clark, et al., "Training Compute-Optimal Large Language Models," arXiv:2203.15556
  13. Caballero, Ethan; Gupta, Kshitij; Rish, Irina; Krueger, David (2022). Broken Neural Scaling Laws. International Conference on Learning Representations (ICLR), 2023.
  14. openreview.net. Dostupné online. 
  15. Dostupné online. 
  16. dl.acm.org. Dostupné online. arXiv 2202.03629. 
  17. TOKENIZACE | Nový encyklopedický slovník češtiny. www.czechency.org [online]. [cit. 2023-08-16]. Dostupné online. 
  18. MENZLI, Amal. Tokenization in NLP: Types, Challenges, Examples, Tools. neptune.ai [online]. 2022-07-21 [cit. 2023-08-16]. Dostupné online. (anglicky) 
  19. Dostupné online. (anglicky) 
  20. www.researchgate.net. Dostupné online. ISBN 9781450376976. arXiv 2104.10810. 
  21. www.cv-foundation.org. Dostupné online. ISBN 978-1-4673-8391-2. arXiv 1506.06724. 
  22. SHIPILOV, Denis. Your Ultimate Guide to Chat GPT and Other Abbreviations [online]. KDNuggets [cit. 2023-06-30]. Dostupné online. (anglicky) [nedostupný zdroj]

Externí odkazy editovat

  • KOUBSKÝ, Petr. Velké jazykové modely mohou být předzvěstí mocné umělé inteligence. Jsou pokročilejší, než většina z nás ví. Deník N [online]. 2021-12-26 [cit. 2023-06-14]. Dostupné online.