Large language model (CS)

From Systems analysis Wiki
Jump to navigation Jump to search

Velký jazykový model (large language model, LLM) — je typ modelu strojového učení, implementovaný pomocí hluboké neuronové sítě s velkým počtem parametrů (obvykle miliardy a více), trénovaný na rozsáhlých objemech textových dat. „Velký" v tomto kontextu odkazuje zároveň na rozsah parametrů i na objem trénovacího korpusu, který v moderních systémech dosahuje několika petabajtů a bilionů tokenů. LLM modely jsou trénovány převážně metodou samo- nebo polo-samořízeného učení (self-/semi-supervised), přičemž předpovídají následující token v sekvenci, a tím si osvojují statistické zákonitosti jazyka. Růst parametrů, dat a výpočetních kroků vede k předvídatelnému zlepšení kvality, což potvrzují scaling laws.

Po vzniku modelu BERT (2017) a zejména GPT-3 (2020) se přístup LLM stal dominantním v oblasti zpracování přirozeného jazyka. Moderní modely (GPT-4o, Claude 3, Gemini 1.5, LLaMA 3 a další) bez speciálního nastavení umí psát texty a programový kód, překládat, sumarizovat, odpovídat na otázky a sestavovat řetězce úvah; multimodální verze analyzují obrázky, zvuk a video. Adaptace na konkrétní úlohu se provádí jemným doladěním (fine-tuning) nebo inženýrstvím výzev (prompt engineering, in-context learning). Spolu s úspěchy LLM přebírají předsudky a chyby zdrojových dat, mají sklon k „halucinacím" a vyžadují rozsáhlé výpočetní zdroje, proto se výzkum dnes soustřeďuje na sladění chování modelů, filtraci korpusů a energeticky úsporné architektury.

Architektura

V moderních LLM se téměř vždy používá architektura Transformer (transformér) – síť s mechanismem vlastní pozornosti (self-attention). Poprvé byl model transforméru navržen v článku Attention is All You Need od vývojářů společnosti Google v roce 2017.

Architektura Transformer je základní neuronová síťová schéma pro práci se sekvencemi, která zahrnuje dva logické moduly — enkodér (kóduje vstup) a dekodér (generuje výstup). Na vstup je přijata sekvence, vytvoří se její vektorové znázornění (embedding), přičte se vektor pozičního kódování, poté sada prvků bez ohledu na pořadí v sekvenci vstupuje do kódující komponenty (paralelní zpracování), a následně dekódující komponenta dostává jako vstup část této sekvence a výstup kódující komponenty. Výsledkem je nová výstupní sekvence.

Kódující komponenta transforméru se skládá z několika identických vrstev-enkodérů; analogicky je uspořádána i dekódující komponenta. Samotný transformér je sekvencí modelů pozornosti, které přeměňují původní sekvenci vektorů na novou sekvenci, kde každý prvek zohledňuje kontext ostatních. Enkodér vytváří skrytá reprezentace vstupních dat, přičemž uchovává informace o vztazích mezi prvky. Dekodér na základě skrytých reprezentací vytváří novou sekvenci embeddingů pro výstupní tokeny. Poté jsou na základě těchto embeddingů pomocí jazykového modelu generovány výsledné výstupní prvky.

Protože transforméry byly původně vyvíjeny pro úlohy jako strojový překlad, jejich architektura zahrnuje enkodér (zpracovávající vstupní text, například zdrojovou větu) a dekodér (generující výstup, například překlad). V mnoha jazykových modelech se však používá pouze dekodérová část, pracující v autoregresivním režimu.

Transforméry se používají ve třech základních konfiguracích, z nichž každá jinak využívá enkodér a dekodér a je zaměřena na svůj okruh úloh:

  • Enkodér-transforméry (obousměrné) se učí obnovovat záměrně skryté části textu, a proto jsou vhodné pro úlohy „porozumění" — klasifikaci, extrakci faktů, sémantické vyhledávání.
  • Dekodér-transforméry (autoregresivní) jsou optimalizovány na předpovídání následujícího tokenu a používají se tam, kde je potřeba průběžný výstup: dialogoví agenti, automatické doplňování kódu, kreativní generování.
  • Plná schémata „enkodér + dekodér" kombinují oba přístupy: enkodér buduje reprezentaci celého vstupního textu, zatímco dekodér, opíraje se o ni, postupně formuje výsledek. Tato konfigurace je nejúčinnější pro strojový překlad, sumarizaci a systémy pro zodpovídání otázek.

Tokenizace

Tokenizace je klíčovým počátečním krokem zpracování textu ve velkých jazykových modelech. V tomto kroku se nepřetržitý řetězec znaků rozděluje na samostatné jednotky — tokeny. Tokenizace plní úlohu přeměny sekvence znaků na sekvenci strukturovaných prvků, které zajišťují efektivní fungování neuronové sítě.

Z lingvistického hlediska by tokenizace do jisté míry mohla odpovídat procesu vymezení minimálních jednotek jazyka, které mají samostatný smysl nebo funkční zátěž, jako jsou slova, morfémy nebo jejich fragmenty. Nicméně token je často pouze statisticky frekventovanou sekvencí znaků, proto je důležité nepřeceňovat lingvistickou smysluplnost všech tokenů. V závislosti na zvolené metodě může být tokenem: celé slovo, podslovo, jednotlivý znak, pomocná značka (například markery začátku a konce sekvence).

Tokenizace umožňuje:

  • omezit velikost slovníku na přijatelné měřítko;
  • správně zpracovávat vzácná a nová slova;
  • zajistit jednoznačné zobrazení textu na sekvenci číselných identifikátorů.

Pro rozdělení textu se používají subslovní algoritmy, z nichž nejrozšířenější jsou Byte Pair Encoding (BPE), WordPiece a UnigramLM. Každý z nich sestavuje slovník z nejčastějších fragmentů korpusu a používá jej pro postupnou segmentaci libovolného vstupního textu.

Po fázi tokenizace je každá textová jednotka — token — převedena na číselné znázornění srozumitelné neuronové síti. Tento proces zahrnuje několik postupných kroků:

  • Převod tokenů na identifikátory: Každý token je přiřazen k unikátnímu číselnému indexu na základě předem sestaveného slovníku tokenů. Textové tokeny jsou nahrazeny jejich unikátními číselnými identifikátory (ID). Každé ID je číslem tokenu v předem sestaveném slovníku, což umožňuje neuronové síti pracovat s čísly místo se slovy.
  • Převod identifikátorů na embeddingy: Pro každý identifikátor tokenu je extrahován nebo vypočten odpovídající vektor pevné dimenze — embedding. Toto vícerozměrné číselné znázornění nahrazuje ID a již obsahuje informace o významu a kontextových vlastnostech tokenu. Všechny embeddingy mají stejnou délku pro snadnost zpracování.
  • Přidání pozičních kódování: Protože architektura Transformer sama o sobě nezohledňuje pořadí prvků, k embeddingům jsou přidána poziční kódování (positional encodings), která poskytují informace o pozici tokenu v sekvenci. Jinými slovy, díky tomu model „ví", který token je první, druhý, třetí atd. ve větě.
  • Sestavení vstupních matic: Na výstupu je získána matice dimenze [длина последовательности × размерность эмбеддинга], která slouží jako počáteční reprezentace textu a je předána na vstup neuronové sítě, konkrétně do bloků vlastní pozornosti (self-attention) Transformeru. Každý řádek této matice odpovídá jednomu tokenu a vektor v něm obsažený nese jak jeho sémantický význam (embedding), tak informaci o jeho poloze v textu (poziční kódování).
Текст → Токены → Идентификаторы → Эмбеддинги + Позиционные кодировки → Вход в модель

Mechanismus pozornosti

Mechanismus pozornosti (attention mechanism) je klíčovou komponentou architektury Transformer, která umožňuje zohledňovat závislosti mezi tokeny bez ohledu na vzdálenost mezi nimi v sekvenci. Poté co je vstupní text přeměněn na sekvenci vektorů, tato sekvence vstupuje do ústředního prvku transforméru — bloku pozornosti (attention block).

Mechanismus pozornosti představuje způsob, jakým neuronová síť určuje, které části vstupních dat si zaslouží větší pozornost při zpracování každého prvku sekvence. Díky němu mohou vektory jednotlivých fragmentů textu navzájem interagovat, obohacovat se informacemi a aktualizovat své hodnoty s ohledem na okolní kontext. Tím model získává schopnost efektivně zachycovat jak lokální, tak vzdálené závislosti mezi tokeny, což podstatně zvyšuje jeho schopnost interpretovat složité textové struktury.

V přirozeném jazyce není smysl slova nebo výrazu určován izolovaně — závisí na kontextu, tedy na ostatních slovech a strukturách v okolí. V neuronových sítích je text kódován prostřednictvím vektorových znázornění — embeddingů, které číselně odrážejí lexikální a syntaktické vlastnosti tokenů. Bez mechanismu přímé pozornosti (jako v Transformeru) by informace o kontextu buď mizela na velkých vzdálenostech (jako v jednoduchých modelech), nebo by se přenášela postupně, což je méně efektivní pro zachycení vzdálených vazeb. V přirozeném jazyce je však smysl slova nebo syntaktické konstrukce dynamický a jeho interpretace se musí přizpůsobovat v závislosti na kontextu. Mechanismus pozornosti provádí kontextualizaci vektorových znázornění, což znamená (nebo jednoduše :):

  • Každý token „hodnotí" svou důležitost vůči ostatním tokenům ve větě.
  • Během aktualizace jsou vektorová znázornění obohacována vzájemnými informacemi, odrážejícími syntaktické závislosti, sémantické role a pragmatický kontext.


Výsledkem této výměny informací je, že aktualizované vektory začínají kódovat nejen samotný význam tokenu, ale také jeho gramatické vazby (syntax), roli v popisované situaci (sémantika) a celkový smysl v kontextu (pragmatika).

Входные векторы токенов (с позициями) → Механизм Внимания (Взаимодействие векторов) → Контекстуализированные векторы токенов (Векторы обогащенные информацией о связях с другими токенами)

Technická implementace mechanismu pozornosti

Vnitřní uspořádání mechanismu pozornosti zahrnuje několik klíčových výpočetních kroků a komponent. Pro každý vstupní vektor jsou generovány tři vektory: Dotaz (Query), Klíč (Key) a Hodnota (Value). Na základě jejich vzájemného působení jsou vypočítány váhy pozornosti, které jsou následně použity k získání aktualizovaných, kontextualizovaných vektorových znázornění. Běžným přístupem je použití vícehllavé architektury (Multi-Head Attention) pro paralelní zpracování informací.

Dotaz (Query), Klíč (Key), Hodnota (Value)

Základem výpočtu mechanismu pozornosti je přeměna každého vstupního vektoru (který je součtem embeddingu tokenu a jeho pozičního kódování) na tři různá vektorová znázornění: Dotaz (Query, Q), Klíč (Key, K) a Hodnota (Value, V).

Konceptuálně plní tyto tři vektory v mechanismu pozornosti následující role:

  • Dotaz (Query): Představuje vektor aktuálního tokenu, který iniciuje proces hledání relevantních informací v sekvenci. Lze jej chápat jako „otázku" nebo „sondu" používanou k hodnocení důležitosti ostatních tokenů vůči aktuálnímu.
  • Klíč (Key): Vystupuje v roli identifikátoru nebo „štítku", který popisuje aspekt obsahu každého tokenu. Vektor Dotazu (Q) aktuálního tokenu je porovnáván se všemi vektory Klíčů (K) v sekvenci (včetně vlastního) za účelem určení míry jejich shody nebo relevance.
  • Hodnota (Value): Obsahuje skutečné informace nebo znázornění přidružené ke každému tokenu, které budou předány dále. Po výpočtu vah pozornosti na základě vzájemného působení Dotazů a Klíčů jsou tyto váhy aplikovány na vektory Hodnot pro sestavení výsledného váženého znázornění, které je výstupem mechanismu pozornosti pro daný token.

Trénování velkých jazykových modelů

Trénování LLM probíhá převážně ve dvou fázích:

  1. Předtrénování (Pretraining) V této fázi je model trénován na rozsáhlých neoznačených textových korpusech metodou samořízeného učení (self-supervised learning). Úloha spočívá v předpovídání následujícího tokenu v sekvenci (autoregrese) nebo v obnovování skrytých fragmentů (maskované učení). Předtrénování umožňuje modelu osvojit si rozsáhlé statistické zákonitosti jazyka, gramatiku, fakta o světě a základní formy uvažování.
  2. Doladění (Fine-tuning) Po předtrénování je model dále trénován na specializovaných datech pro plnění konkrétních úloh, například generování odpovědí, klasifikaci textů nebo plnění instrukcí. Moderní přístupy zahrnují:
    • Doladění na označených datasetech (supervised fine-tuning).
    • Zpětnovazební učení s účastí člověka (RLHF, reinforcement learning from human feedback) pro korekci chování modelu v souladu s cílovými metrikami kvality, bezpečnosti a užitečnosti.

Problémy a omezení

Navzdory působivému pokroku mají moderní velké jazykové modely (LLM) řadu problémů a omezení:


I. Výpočetní a architektonická omezení

  1. Vysoké výpočetní náklady: Trénování a provoz LLM vyžadují značné výpočetní kapacity, čas a energii, což přináší vysoké ekonomické a ekologické náklady. Navíc autoregresivní povaha generování (postupné vytváření tokenů) omezuje paralelizaci a zpomaluje rychlost inference ve srovnání s neautoregresivními přístupy.
  2. Omezení délky kontextu: Architektura Transformer má kvadratickou závislost výpočetních nákladů a nároků na paměť na délce sekvence. To nutí stanovit pevný limit (kontextové okno) na objem textu, který model dokáže zpracovat najednou, což vede k ořezávání dlouhých dokumentů a ztrátě informací za hranicí okna.


II. Problémy spolehlivosti a přesnosti generování

  1. Halucinace: Generování fakticky nesprávných, ale věrohodně znějících informací. Souvisí s absencí skutečného porozumění světu ze strany modelu, spoléháním na statistické zákonitosti v datech a neschopností ověřovat generovaná tvrzení.
  2. Kumulace chyb (Error Propagation): Proces, při němž chyby učiněné v raných fázích generování se zesilují a vedou k narůstání nepřesností v následujících krocích, čímž snižují celkovou kvalitu a soudržnost textu.
  3. Omezená kompozičnost: Potíže s úlohami vyžadujícími víceúrovňové logické vyvozování nebo přesné výpočty (například násobení vícemístných čísel, řešení hádanek). Přesnost modelů v takových úlohách prudce klesá s rostoucí složitostí kvůli autoregresivní povaze generování.
  4. Opakování: Sklon k nadbytečnému opakování slov nebo frází, který snižuje informativnost a čitelnost textu. Souvisí se zvláštnostmi trénování a algoritmů dekódování (výběru následujícího tokenu).
  5. Reverzní kletba (Reversal Curse): Neschopnost modelu automaticky zobecňovat znalosti v opačném směru: po naučení tvrzení „A je B" model často nedokáže odvodit „B je A".
  6. Kompromis „kreativita-přesnost": Nutnost vyvažovat generování různorodých, originálních odpovědí a udržování faktické přesnosti. Zvýšení jednoho aspektu často negativně ovlivňuje druhý — například vysoká kreativita může korelovat se zvýšením halucinací.

III. Problémy interakce a řízení:

  1. Nízká ovladatelnost: Obtížnost přesného kontrolování stylu, tónu, obsahu generovaného textu nebo dodržování složitých instrukcí. Ovladatelnost silně závisí na kvalitě vstupních instrukcí (promptů) a metodách dolaďování (fine-tuning).
  2. Citlivost na formulace: Nepatrné změny ve vstupním dotazu (promptu) mohou vést k podstatně odlišným odpovědím, i když je sémantika dotazu zachována. To ztěžuje získávání stabilních a předvídatelných výsledků.


IV. Etické a společenské aspekty:

  1. Problémy zaujatosti a spravedlnosti: Modely mohou reprodukovat a zesilovat společenské stereotypy, předsudky nebo toxicitu obsažené v trénovacích datech. Zajištění spravedlnosti a bezpečnosti modelů je náročným úkolem.
  2. Problém sladění (LLM Alignment): Obecnější problém zahrnující předchozí bod. Jde o úlohu zajistit soulad chování modelu s lidskými hodnotami, záměry a etickými normami. Zahrnuje boj se zaujatostí, halucinacemi, generováním škodlivého obsahu a zvyšování ovladatelnosti.
  3. Rizika zneužití: Možnost využití LLM k vytváření a masovému šíření dezinformací, phishingu, spamu, škodlivého kódu nebo generování přesvědčivých falešných textů, což představuje hrozbu pro informační a osobní bezpečnost a podkopává důvěru ve společnosti.

Odkazy:

  • „Velký jazykový model" // Wikipedie (ruská verze)
  • Large Language Model // Wikipedia (English version)
  • Grand Modèle de Langage // Wikipédia (Version française)
  • Sprachmodell // Wikipedia (Deutsche version)
  • Naveed H. a kol. // A Comprehensive Overview of Large Language Models // arXiv:2307.06435, 2023

Literatura

  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Brown, T. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
  • Kaplan, J. et al. (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
  • Hoffmann, J. et al. (2022). Training Compute-Optimal Large Language Models. arXiv:2203.15556.
  • Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. arXiv:2203.02155.
  • Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
  • Bubeck, S. et al. (2023). Sparks of Artificial General Intelligence: Early Experiments with GPT-4. arXiv:2303.12712.
  • OpenAI. (2023). GPT-4 Technical Report. arXiv:2303.08774.
  • Touvron, H. et al. (2024). The Llama 3 Herd of Models. arXiv:2407.21783.