DEEP DIVE DO LLM: JAK SE INTERNET STÁVÁ MOZKEM CHATGPT

Velké jazykové modely (LLM) jako ChatGPT se staly nedílnou součástí našeho digitálního života. Jejich schopnost generovat koherentní a relevantní text se zdá být téměř magická. Avšak za touto „magií“ se skrývá komplexní inženýrský a matematický proces. Tento článek vás provede zákulisím vzniku a tréninku těchto fascinujících nástrojů, od sběru dat z internetu až po vnitřní fungování neuronových sítí.

Deep Dive do LLM: Jak se internet stává mozkem ChatGPT

Klíčové poznatky o vzniku LLM:

Fáze 1: Předtrénink – Jak se internet stává datovou sadou

První a fundamentální fází budování LLM je sběr a zpracování obrovského množství textových dat. Představte si, že chcete naučit model „rozumět“ lidské řeči – potřebujete mu ukázat, jak lidé mluví a píší, a to v co největším rozsahu a rozmanitosti.

Sběr dat z digitálního oceánu

Základem je internet. Organizace jako Common Crawl systematicky prohledávají web již od roku 2007 a indexují miliardy webových stránek. V roce 2024 Common Crawl například indexoval 2,7 miliardy stránek. Cílem je získat obrovské množství vysoce kvalitních dokumentů s velkou rozmanitostí, aby model získal široké znalosti.

Pro představu, datová sada FineWeb, kterou shromáždila společnost Hugging Face a která je reprezentativní pro produkční aplikace, zabírá „pouze“ asi 44 terabajtů diskového prostoru. I když se internet zdá nekonečný, agresivní filtrování textu nakonec vede k relativně kompaktní, ale nesmírně bohaté datové sadě.

Agresivní filtrování pro kvalitu a bezpečnost

Surová data z Common Crawl jsou však plná „šumu“ a nevhodného obsahu. Proto procházejí mnoha fázemi filtrování:

Po všech těchto fázích filtrace získáme obrovskou, ale čistou a strukturovanou datovou sadu – například zmiňovaných 15 bilionů tokenů textu připravených pro další krok.

Fáze 2: Tokenizace – Jak počítač „čte“ text

Než se text dostane do neuronové sítě, musí být převeden do formátu, kterému počítač rozumí – tedy do sekvence čísel. Tomuto procesu se říká tokenizace.

Od bitů k symbolům

Počítače pracují s bity (0 a 1). Surový text by mohl být reprezentován jako dlouhá sekvence bitů, ale to by bylo pro neuronovou síť příliš neefektivní. Proto se text nejprve kóduje do bajtů (skupiny 8 bitů), což nám dává 256 možných symbolů. Můžeme si to představit jako sekvenci 256 unikátních emotikonů.

Moderní jazykové modely však jdou ještě dál. Aby se zkrátila délka sekvence a zároveň se zvýšil „slovník“ symbolů, používá se algoritmus zvaný Byte Pair Encoding (BPE). Ten identifikuje často se vyskytující dvojice bajtů (nebo symbolů) a nahrazuje je novým, jedním symbolem. Tento proces se opakuje, dokud se nedosáhne požadované velikosti slovníku.

Pro představu, GPT-4 používá slovník s 100 277 možnými symboly (tokeny). Tyto tokeny mohou být jednotlivá písmena, části slov, celá slova nebo dokonce běžné fráze. Například anglická fráze „Hello World“ se může rozdělit na dva tokeny: „Hello“ a „ World“ (všimněte si mezery na začátku druhého tokenu, která je důležitá).

Webové stránky jako ticktokenizer.com umožňují experimentovat s tokenizací a vizualizovat, jak se text rozkládá na tokeny. Je zajímavé sledovat, jak se tokenizace mění v závislosti na mezerách, velikosti písmen nebo interpunkci. Na konci této fáze máme masivní jednorozměrnou sekvenci číselných tokenů, která představuje veškerý tréninkový text.

Fáze 3: Trénink neuronové sítě – Předpovídání budoucnosti textu

Nyní přichází ta „zábavná“ část, kde se děje většina výpočetně náročných operací: trénink samotné neuronové sítě. Cílem je naučit síť modelovat statistické vztahy mezi tokeny – tedy předpovídat, jaký token nejpravděpodobněji následuje po dané sekvenci.

Koncept kontextových oken

Síť se učí tak, že jí předkládáme „okna“ tokenů z datové sady. Tato okna, neboli kontext, mohou mít délku od nuly až po maximální velikost (např. 8 000 tokenů). Síť vezme tyto vstupní tokeny a pokusí se předpovědět, jaký token přijde dále v sekvenci. Pokud je například vstupem „Jak se máš“, síť by měla předpovědět token „?“ nebo „dnes“ s vysokou pravděpodobností.

Jak síť dělá předpovědi a učí se z chyb

Výstupem neuronové sítě je sada pravděpodobností – jedna pro každý z 100 277 možných tokenů ve slovníku. Na začátku tréninku jsou tyto předpovědi zcela náhodné, protože parametry sítě jsou náhodně inicializované. Síť tak říká, že token „směr“ má 4% šanci, zatímco token „post“ má 3% šanci, že přijde jako další.

Protože máme k dispozici tréninková data, známe „správnou odpověď“ (tzv. label). Víme, že po daném kontextu skutečně následoval token „post“. Nyní můžeme síť „naladit“. Matematickým procesem se upravují parametry sítě tak, aby se pravděpodobnost správného tokenu (v tomto případě „post“) mírně zvýšila a pravděpodobnosti ostatních tokenů se snížily. Tento proces se děje iterativně a paralelně pro tisíce takových oken tokenů v obrovských dávkách dat.

Představte si parametry sítě jako miliardy knoflíků na obrovském DJ pultu. Trénink znamená objevování takového nastavení těchto knoflíků, které konzistentně generuje předpovědi odpovídající statistice tréninkových dat. Je to proces neustálého drobných úprav, které se sčítají, až se síť stane expertem na předpovídání dalšího tokenu v jakékoli sekvenci.

Fáze 4: Anatomie LLM – Pohled do nitra Transformeru

Co se vlastně děje uvnitř té „černé skříňky“ neuronové sítě? V základu je neuronová síť obrovský matematický výraz, který míchá vstupní tokeny s miliardami parametrů (tzv. vah) sítě, aby vytvořil výstupní předpovědi.

Transformer: Základ moderních LLM

Moderní LLM, včetně ChatGPT, jsou postaveny na architektuře zvané Transformer. Je to speciální typ neuronové sítě, která je velmi efektivní ve zpracování sekvencí dat. I menší Transformer modely mohou mít desítky tisíc parametrů (např. 85 000 parametrů pro vizualizovaný příklad), zatímco velké modely mají miliardy.

Informace proudí sítí v sérii transformací. Nejprve jsou vstupní tokeny „vloženy“ do vektorových reprezentací – každý token je převeden na číselný vektor, který zachycuje jeho význam. Tyto vektory pak procházejí různými vrstvami Transformeru, včetně Attention bloku (blok pozornosti), který umožňuje modelu vážit důležitost různých částí vstupní sekvence, a Multi-Layer Perceptron (MLP) bloku.

„Syntetické neurony“ a jejich omezení

Během těchto transformací se vytvářejí mezihodnoty, které lze volně přirovnat k „aktivaci“ syntetických neuronů. Je však důležité si uvědomit, že tyto „neurony“ jsou nesmírně jednoduché ve srovnání s biologickými neurony v lidském mozku. Jsou bezpaměťové a pouze provádějí fixní matematické operace od vstupu k výstupu. Nejedná se o dynamické procesy s pamětí, které bychom našli v živém organismu. Klíčové je, že celá síť je optimalizována tak, aby její parametry vedly k předpovědím, které jsou statisticky konzistentní s tréninkovými daty.

Závěr

ChatGPT a další velké jazykové modely se na první pohled mohou zdát jako zázrak. Ale jak jsme viděli, jejich „inteligence“ je výsledkem pečlivého, vícefázového procesu: masivního sběru a čištění dat z internetu, chytré tokenizace, intenzivního tréninku neuronových sítí na předpovídání dalšího slova a sofistikované Transformer architektury. Pochopení těchto základních principů nám umožňuje lépe využívat a kriticky hodnotit schopnosti těchto revolučních nástrojů, které mění způsob, jakým interagujeme s digitálním světem.

O Tunehill

Tunehill přináší myšlenky a rozhovory, které hýbou světem. Srozumitelně a ve tvém jazyce. Články a podcasty o technologiích, práci a budoucnosti.

ChatGPT: Jak fungují velké jazykové modely (LLM) – Deep Dive | Tunehill