jancll.com

Lekce 11 · 12 min čtení

Co dělá GPT-4 jiné

Bonus na čtení. Cesta od našeho mini-GPT k opravdovému chatbotovi: měřítko, data, instruction tuning a RLHF.

Úvod

Postavil sis vlastní GPT. Hádá další token, skládá transformer bloky, učí se gradientem. A teď ta dobrá zpráva: GPT-4 dělá v jádru přesně to samé. Žádný jiný tajný princip tam není.

Tak proč je mezi naším mini-GPT a ChatGPT takový propastný rozdíl? Tahle poslední lekce je mapa té propasti. Žádný kód, jen čtení. Projdeme si, co všechno se mezi „hospodská edice" a „nástroj, co mění svět" ještě musí stát. Hezky se ti to bude číst, protože principy už znáš.

Za prvé: měřítko

Nejnudnější odpověď je zároveň ta nejdůležitější. GPT-4 je hlavně mnohem větší verze toho, co jsi postavil.

  • Náš mini-GPT měl kolem 50 tisíc parametrů a trénoval se na pár větách.
  • Velké modely mají stovky miliard až biliony parametrů a trénují se na velké části veřejného internetu, tedy na bilionech tokenů.
  • Náš trénink trval pár vteřin na tvém procesoru. Trénink velkého modelu trvá týdny na tisících grafických kartách a stojí desítky milionů dolarů.

A teď to zajímavé: když stejný princip nafoukneš do takového měřítka, začnou se objevovat schopnosti, které nikdo přímo neprogramoval. Překládání, psaní kódu, shrnování, základní uvažování. Říká se tomu emergentní schopnosti. Vynoří se prostě z toho, že model viděl dost textu a má dost kapacity. To je možná nejpřekvapivější věc na celé éře velkých modelů.

Stejný nápad, jiné měřítko

Když příště uvidíš titulek „nový model má bilion parametrů", víš, co to číslo znamená. Je to počet vah ve W maticích, přesně těch, co jsi sám trénoval gradient descentem. Jen jich je o sedm řádů víc.

Za druhé: lepší vstup

Pár věcí kolem modelu jsme si zjednodušili a velké modely je dělají pořádně.

  • Tokenizace. My jsme krájeli po znacích. Velké modely používají BPE z lekce 2, takže pracují s rozumnými kousky slov a zvládnou každý jazyk i emoji.
  • Délka kontextu. Náš model viděl 24 znaků dozadu. Dnešní modely uvidí klidně statisíce tokenů, tedy celé knihy najednou. Proto si „pamatují", o čem byla řeč před hodinou konverzace.
  • Spousta drobných vylepšení architektury, učení a numeriky, díky kterým jde trénink stabilně i v obřím měřítku. Jádro ale zůstává transformer blok, který jsi složil v lekci 9.

Za třetí: z pokračovače textu udělat asistenta

Tohle je rozdíl, který lidi nejvíc překvapí. Model po základním tréninku (říká se mu base model) umí jen jednu věc: pokračovat v textu. Není to chatbot. Když mu napíšeš otázku, klidně ti místo odpovědi vygeneruje dalších deset otázek, protože tak nějak vypadají texty na internetu.

Náš mini-GPT je přesně tohle: pokračovač textu. Aby se z něj stal ochotný asistent, který odpovídá na to, co se ptáš, musí projít ještě dvěma fázemi.

Instruction tuning

Nejdřív se base model doučí na příkladech typu „tady je zadání, tady je dobrá odpověď". Tisíce takových dvojic, často psaných lidmi. Model se z nich naučí nový vzorec: když dostanu instrukci, mám ji splnit, ne pokračovat v textu. Pořád je to ten samý trénink (hádej další token), jen na pečlivě připravených datech. Tomuhle kroku se říká instruction tuning nebo supervised fine-tuning.

RLHF: učení z lidské zpětné vazby

Instruction tuning udělá z modelu asistenta. Poslední fáze ho udělá příjemného a užitečného. Funguje zhruba takhle:

  1. Model vygeneruje na stejné zadání víc odpovědí.
  2. Člověk je seřadí od nejlepší po nejhorší.
  3. Z těch hodnocení se natrénuje druhý model, odměnový, který odhaduje, jak moc by se odpověď člověku líbila.
  4. Hlavní model se pak doladí tak, aby maximalizoval tu odměnu.

Říká se tomu RLHF (reinforcement learning from human feedback). Je to ono ladění, díky kterému model odpovídá zdvořile, drží se tématu, přizná, že něco neví, a odmítne škodlivé prosby. Osobnost a způsoby chatbota nevznikly z internetu, ale právě tady, z lidských preferencí.

Celá cesta v jedné větě

Pretraining naučí model jazyk a svět (hádej další token na internetu), instruction tuning ho naučí poslouchat zadání, a RLHF ho naučí být užitečný a slušný. Tři fáze, na jejichž konci je ChatGPT.

A pak je toho ještě víc

Aby byl obrázek úplný, kolem téhle kostry je dnes ještě další vrstva:

  • Nástroje. Model umí zavolat kalkulačku, vyhledávání, spustit kód. Sám o sobě pořád jen předpovídá tokeny, ale naučí se generovat „příkazy", které něco spustí.
  • Multimodalita. Obrázky, zvuk a video se převedou na tokeny podobně jako text, takže je model zpracuje stejným strojem.
  • Systémový prompt a bezpečnostní vrstvy kolem modelu, které hlídají, co smí a nesmí.

Ale všimni si, že nic z toho nemění to jádro. Pořád je to transformer, který hádá další token. Všechno ostatní jsou chytré obaly kolem myšlenky, kterou už znáš.

Cvičení

Cvičení · lekce11-cv1

Kolika hlavními fázemi projde model na cestě od základního pokračovače textu k hotovému chatbotovi?

Cvičení · lekce11-cv2

Která z těch fází podle tebe nejvíc rozhoduje o tom, jestli je z modelu příjemný asistent, nebo jen stroj na text? Napiš proč.

Shrnutí

  • GPT-4 stojí na stejném principu jako tvůj mini-GPT: transformer, který hádá další token. Rozdíl je měřítko, ne nápad.
  • Měřítko (víc parametrů, dat a výpočtu) přináší emergentní schopnosti.
  • Lepší tokenizace a obří kontext dělají z modelu praktický nástroj.
  • Base model jen pokračuje v textu. Asistenta z něj udělá instruction tuning a slušného a užitečného ho udělá RLHF.
  • Nástroje, multimodalita a bezpečnostní vrstvy jsou obaly kolem stále stejného jádra.

Díky a co dál

Tak jsme na konci. Začali jsme u tabulky, která hádala, že po pan přijde Švejk, a skončili u vlastního GPT, který píše švejkovinu a u kterého rozumíš každému řádku. To je pořádný kus cesty.

Teď máš to, co jsem ti na začátku slíbil: mentální model toho, co se uvnitř jazykových modelů děje. Když příště narazíš na článek o novém modelu, na slova jako attention, embedding, RLHF nebo kontextové okno, nebude to zaklínadlo. Budeš vědět, co je pod tím. A to je přesně ta výhoda, o kterou v době AI jde: rozumět principům, ne jen mačkat tlačítka.

Díky, že jsi to dotáhl až sem. A teď jdi něco postavit.