Přeskočit na obsah

Jak funguje jazykový model · lekce 6 z 10 · 12 min čtení

Jak se model trénuje: od internetu k asistentovi

Jak vzniká jazykový model: nejdřív se z obrovského množství textu učí předpovídat další token, pak ho lidé (a jiné modely) učí být užitečným asistentem. Proč to stojí tolik peněz, co jsou parametry a co je systémový prompt.

Když se ChatGPT nebo Claude zeptáš na recept, dostaneš ochotnou, přehlednou odpověď s odrážkami. Působí to, jako by na druhé straně seděl asistent, kterého někdo naučil odpovídat. A je to tak, jen ne tak, jak by sis možná představoval. Nikdo mu nenapsal pravidla „na recept odpověz seznamem surovin“. Asistent vznikl ve dvou velkých krocích: nejdřív se model naučil jazyk a svět z obrovského množství textu, a pak se naučil chovat jako asistent.

V lekci Jak se stroje učí jsi poznal obecný princip: síť dostává příklady, porovná svůj výstup se správnou odpovědí a malinko se upraví. Teď uvidíš, jak se tenhle princip použije na jazykový model a proč z něj vyleze právě to, co znáš z chatu.

Fáze 1: předtrénink, neboli čtení internetu

První a zdaleka nejdražší fáze se jmenuje předtrénink (pretraining). Model na začátku neumí nic, jeho vnitřní nastavení jsou náhodná čísla. Pak dostane obrovské množství textu: veřejné webové stránky, knihy, odborné články, programový kód, encyklopedie. Přesné složení dat výrobci většinou nezveřejňují, ale řádově jde o biliony tokenů. Například Meta u modelu Llama 3 uvedla, že byl předtrénován na více než 15 bilionech tokenů.

Úkol, na kterém se model učí, je přesně ten z minulé lekce: předpověz další token. Vezme se kus textu, model vidí jeho začátek a má odhadnout, co následuje. Pak se mu ukáže, co tam doopravdy bylo. Když dal správnému tokenu nízkou pravděpodobnost, jeho nastavení se nepatrně posunou tak, aby příště dal vyšší. A znovu, na dalším kousku textu. Tohle se opakuje miliardkrát.

Učení s vlastním dohledem(self-supervised learning)
Způsob tréninku, kdy správné odpovědi nemusí nikdo ručně připravovat, protože jsou obsažené přímo v datech. U jazykového modelu je „správná odpověď“ prostě další token ve skutečném textu. Díky tomu lze trénovat na obrovském množství textu bez lidských anotátorů.

Proč je to tak silné? Protože aby model předpovídal dobře, musí si osvojit všechno, co text předvídatelným dělá: gramatiku, styl, fakta („Hlavní město Francie je…“), logiku, ale i to, jak se píše e-mail, jak vypadá smlouva nebo jak se dokazuje matematická věta. Nikdo ho tohle explicitně neučí. Vyplyne to z jednoho jednoduchého úkolu opakovaného v obrovském měřítku.

Parametry: miliardy naučených knoflíků

Všechno, co se model naučí, je uložené v jeho parametrech (parameters). Jsou to čísla uvnitř neuronové sítě, která určují, jak se vstup přepočítá na výstup. Každý krok tréninku je o maličko posune. Můžeš si je představit jako knoflíky na obrovském mixážním pultu: na začátku jsou nastavené náhodně a trénink je postupně dotáčí, až pult „hraje“ dobře.

Parametry(parameters)
Naučená čísla uvnitř modelu (také váhy, weights). Určují, jak model ze vstupu spočítá výstup. Po tréninku jsou pevná: když model používáš, už se nemění a nic nového se do nich neukládá.

Velikost modelu se udává právě počtem parametrů. GPT-3 z roku 2020 jich měl 175 miliard, dnešní velké modely jsou podle dostupných informací ve stovkách miliard i víc (u řady komerčních modelů výrobci počet nezveřejňují). Víc parametrů obecně znamená víc „místa“ pro naučené vzorce, ale také dražší trénink i provoz.

Jedna věc je pro praxi zásadní: parametry se po tréninku nemění. Když modelu v chatu něco řekneš, nenaučí se to. Nic z konverzace se do parametrů nezapíše. Jak je možné, že si model „pamatuje“, co jsi napsal o tři zprávy dřív, vysvětlí lekce Kontextové okno.

Proč je trénink tak drahý

Každý krok tréninku znamená projít textem celý model, tedy provést výpočty se všemi těmi miliardami parametrů, a pak je všechny upravit. A takových kroků jsou nesmírná množství, protože dat jsou biliony tokenů. Tohle se nedá spočítat na běžném počítači. Trénink běží na tisících až desítkách tisíc specializovaných čipů (grafických karet a podobných akcelerátorů) propojených do jednoho obřího systému, typicky po týdny až měsíce. Meta například u Llamy 3 popsala dva clustery o zhruba 24 tisících grafických kartách.

K tomu se přidává cena elektřiny, chlazení, sběru a čištění dat, platy výzkumníků a hlavně všech pokusů, které nevyšly. Proto velké základní modely trénuje jen hrstka firem na světě. Pro tvoji firmu z toho plyne jednoduchá věc: vlastní velký model od nuly trénovat nebudeš. Budeš používat hotové modely a přizpůsobovat jejich chování jinými, mnohem levnějšími způsoby.

Základní model není asistent

Po předtréninku vznikne takzvaný základní model (base model). Umí skvěle pokračovat v textu, ale asistent to není. Když mu napíšeš „Jak upéct chleba?“, může klidně pokračovat „Jak upéct koláč? Jak upéct dort?“, protože na internetu se takové otázky často objevují v seznamech pod sebou. Nebo dopíše diskusi z fóra. Dělá přesně to, co se naučil: věrohodně pokračuje v textu. Neví, že od něj čekáš odpověď.

Aby z něj byl asistent, přichází druhá fáze, souhrnně zvaná dotrénování (post-training). Je výrazně menší a levnější než předtrénink, ale pro chování modelu rozhodující.

Učení na ukázkách: instruction tuning

Nejdřív lidé připraví tisíce až desetitisíce ukázkových rozhovorů: otázka nebo úkol a k tomu kvalitní odpověď, jakou by napsal dobrý asistent. Model se na nich dotrénuje stejným způsobem jako předtím (předpovídá další token), jen teď na textech ve tvaru „uživatel se ptá, asistent odpovídá“. Tomu se říká dolaďování podle instrukcí (instruction tuning), což je druh dolaďování (fine-tuning).

Dolaďování(fine-tuning)
Další trénink už hotového modelu na menší, cíleně vybrané sadě dat. Změní styl a chování modelu nebo ho naučí specifický formát. Základní znalosti pocházejí z předtréninku, dolaďování je hlavně usměrňuje.

Lidé hodnotí odpovědi: RLHF

Ukázky mají limit: je těžké napsat dokonalou odpověď na všechno. Mnohem snazší je posoudit, která ze dvou odpovědí je lepší. Na tom stojí metoda učení posilováním ze zpětné vazby od lidí (reinforcement learning from human feedback, RLHF):

  1. Model na stejnou otázku vygeneruje několik odpovědí.
  2. Lidé je seřadí od nejlepší po nejhorší (podle užitečnosti, pravdivosti, bezpečnosti).
  3. Z tisíců takových hodnocení se natrénuje pomocný „model odměny“ (reward model), který se naučí odhadovat, jak by odpověď ohodnotil člověk.
  4. Hlavní model se pak dál trénuje tak, aby psal odpovědi, kterým model odměny dá vysoké skóre.

Účinek je velký. OpenAI v roce 2022 popsalo, že hodnotitelé dávali přednost odpovědím jejich dotrénovaného modelu InstructGPT s 1,3 miliardy parametrů před odpověďmi původního GPT-3 se 175 miliardami parametrů. Model zhruba stokrát menší, ale vychovaný k tomu být užitečný, lidi přesvědčil víc.

Novější varianty: AI hodnotí AI

Lidské hodnocení je drahé a pomalé, a tak vznikly metody, kde část práce dělá jiný model. Anthropic v roce 2022 představil přístup Constitutional AI: lidé sepíší sadu zásad („ústavu“), model podle nich sám kritizuje a přepisuje své odpovědi a jiný model pak podle těchto zásad vybírá, která ze dvou odpovědí je lepší. Takovému postupu se obecně říká učení posilováním ze zpětné vazby od AI (RLAIF). Lidé tu tedy pořád určují, co je dobré, ale nemusí ručně hodnotit každou odpověď.

Dotrénování je dnes aktivní oblast výzkumu a výrobci kombinují různé metody, které se rychle vyvíjejí. Princip zůstává: předtrénink dá modelu znalosti a schopnosti, dotrénování mu dá chování.

Systémový prompt: instrukce, které nevidíš

I hotový asistent dostává před každou konverzací ještě instrukce, které běžně nevidíš. Říká se jim systémový prompt (system prompt). Výrobce chatovací aplikace v něm může modelu sdělit třeba dnešní datum, jak má formátovat odpovědi, jaké nástroje má k dispozici nebo čemu se má vyhýbat. Firma, která model zapojí do vlastní aplikace, si do systémového promptu napíše vlastní pravidla: „Jsi asistent zákaznické podpory firmy X, odpovídej stručně a jen o našich produktech.“

Systémový prompt(system prompt)
Text s instrukcemi, který aplikace pošle modelu na začátku konverzace, ještě před zprávami uživatele. Nemění parametry modelu, jen ovlivňuje, jak bude odpovídat. Model se ho obvykle drží silněji než běžných zpráv, protože byl během dotrénování naučen mu dávat přednost.

Pro praxi je to důležité rozlišení. Když chceš změnit chování AI ve firmě, máš zhruba tři páky, od nejlevnější po nejdražší: dobrý prompt a systémový prompt (změna za pár minut), dodání dokumentů do kontextu (aby model pracoval s vašimi informacemi) a dolaďování (když potřebuješ trvalou změnu stylu nebo formátu a máš na to data). Předtrénink od nuly v tom seznamu prakticky není.

Do hloubkyTransformer a pozornost: co se děje uvnitř

Téměř všechny dnešní jazykové modely stojí na architektuře zvané transformer. Představili ji výzkumníci Googlu v roce 2017 v článku s výmluvným názvem „Attention Is All You Need“ (Pozornost je vše, co potřebuješ).

Problém, který transformer řeší. Význam slova závisí na okolí. Ve větě „Míč se nevešel do kufru, protože byl moc velký“ se „byl moc velký“ vztahuje k míči. Když větu změníš na „…protože byl moc malý“, vztahuje se ke kufru. Gramatika tu nepomůže (míč i kufr jsou rodu mužského), rozhodne jen to, jak věci ve světě fungují. Model musí pro každé slovo zjistit, která ostatní slova jsou pro něj důležitá, a to i když jsou daleko.

Pozornost (attention). Transformer to řeší mechanismem pozornosti. Zjednodušeně: každý token se „podívá“ na všechny předchozí tokeny a pro každý spočítá, jak moc je pro něj relevantní. Pak si z nich vezme informace v poměru této relevance. Token „velký“ tak může dát velkou váhu tokenu „míč“ a malou slovu „kufru“, kdežto „malý“ naopak. Technicky má každý token tři role: „otázku“ (co hledám), „klíč“ (co nabízím) a „hodnotu“ (jakou informaci předám). Relevance se počítá porovnáním otázky jednoho tokenu s klíči ostatních.

Vrstvy a hlavy. Tohle se neděje jednou, ale v mnoha vrstvách nad sebou (velké modely jich mají desítky) a v každé vrstvě souběžně v několika „hlavách“, z nichž každá si může všímat jiného druhu vztahu (gramatika, kdo je kdo, co souvisí tematicky). Mezi vrstvami pozornosti jsou další části sítě, ve kterých se podle všeho ukládá velká část naučených faktů. Na konci poslední vrstvy vypadne pro každý možný další token jedno číslo, logit, ze kterého se počítají pravděpodobnosti (to znáš z minulé lekce).

Proč transformer zvítězil. Starší jazykové sítě četly text slovo po slovu, takže trénink šel špatně rozdělit mezi mnoho čipů a vzdálené souvislosti se ztrácely. Transformer zpracovává celý trénovací úsek textu najednou (pozornost se dá spočítat pro všechny tokeny souběžně), což se skvěle hodí pro grafické karty. Díky tomu šlo modely zvětšovat do dnešních rozměrů.

Pro intuitivní obrázkový výklad doporučuji „The Illustrated Transformer“ od Jaye Alammara (odkaz ve Zdrojích).

Embeddingy: význam jako místo v prostoru

Poslední pojem, který se ti bude hodit, i když se k němu podrobně vrátíme až v kurzu o stavbě AI aplikací. Model si každý token (a v dalších vrstvách i celé úseky textu) převede na dlouhou řadu čísel, takzvaný embedding. Tu si můžeš představit jako souřadnice bodu v prostoru, který má místo tří rozměrů stovky až tisíce.

Embedding(embedding)
Řada čísel, která zachycuje význam slova nebo textu jako polohu v mnohorozměrném prostoru. Texty s podobným významem mají blízké polohy, i když nesdílejí jediné slovo.

Během tréninku se tyto polohy uspořádají tak, aby to modelu pomáhalo s předpovědí. Výsledkem je, že „pes“ a „štěně“ jsou blízko sebe, „faktura“ a „daňový doklad“ také, zatímco „pes“ a „faktura“ daleko. Nikdo to tak ručně nenastavil, vyplynulo to z tréninku. Na tomhle principu stojí vyhledávání podle významu, které poznáš v kurzu o RAG (napojení AI na firemní dokumenty).

Co si odnést

  • Předtrénink: model se z obrovského množství textu učí předpovídat další token. Správné odpovědi jsou přímo v datech (učení s vlastním dohledem), a tak z jednoho jednoduchého úkolu vyrostou znalosti jazyka i světa.
  • Všechno naučené je uložené v parametrech, miliardách čísel uvnitř modelu. Po tréninku se nemění, takže model se z tvých konverzací nic neučí.
  • Předtrénink je mimořádně drahý (tisíce čipů, týdny až měsíce), proto ho dělá jen pár firem. Ty budeš hotové modely přizpůsobovat promptem, dokumenty nebo dolaďováním.
  • Základní model jen pokračuje v textu. Asistentem se stává dotrénováním: učením na ukázkových rozhovorech a na hodnocení odpovědí lidmi (RLHF) nebo podle sepsaných zásad jiným modelem (Constitutional AI, RLAIF).
  • Systémový prompt jsou skryté instrukce před konverzací. Mění chování, ne znalosti modelu, a je to nejlevnější páka, jak AI přizpůsobit firmě.

Zdroje a další čtení