Co se při trénování vlastně mění
Model se neučí tak, že by se do něj psala nová pravidla. Model má obrovské množství čísel, kterým se říká váhy nebo parametry, u velkých jazykových modelů jich jsou miliardy. Trénování znamená jediné: tahle čísla se opakovaně mírně upravují tak, aby model dělal na trénovacích datech menší chybu než předtím.
Chyba se měří jednou funkcí, které se říká ztrátová funkce. Vysoká hodnota znamená, že model hádá špatně, nízká hodnota znamená, že hádá dobře. Trénování je hledání takové kombinace čísel, při které je tahle hodnota co nejnižší. Přesně tohle znázorňuje kulička ve hře výš: terén je graf ztrátové funkce, poloha kuličky je aktuální nastavení modelu a dno je nejlepší možné nastavení, jaké se v daném terénu dá najít.
U velkého jazykového modelu je terén nepředstavitelně mnohorozměrný, protože každý parametr přidává další rozměr, ve kterém se dá pohybovat. Graf ve hře má jen jeden rozměr, aby se dal vůbec nakreslit a sledovat okem, ale rovnice, která kuličku posouvá, je ta samá, jakou počítač skutečně používá při tréninku modelu. Proto stojí za to sledovat, jak se skutečné kroky chovají, ne jen si přečíst definici: intuice o tom, kdy krok stačí a kdy ne, se nejrychleji získá tak, že se jich pár stovek na vlastní oči vyhodnotí.
Co dělá learning rate
Aby model věděl, kterým směrem svoje čísla upravit, spočítá se gradient, tedy směr, kterým chyba nejrychleji roste. Model pak udělá krok opačným směrem, aby chyba klesla. Learning rate, česky rychlost učení, je jediné číslo, které říká, jak velký tenhle krok bude.
Malý learning rate je bezpečný, ale pomalý. Kulička se pohybuje sotva znatelně a k lepšímu řešení dojde až po obrovském množství kroků, pokud vůbec ve stanoveném čase trénování. Velký learning rate je rychlý, ale nebezpečný. Kulička přeskočí dno a s každým dalším krokem se pohyb zesiluje, protože svah je na druhé straně o to strmější. Výsledkem je trénování, které se nikdy neustálí a jehož chyba osciluje nebo roste. Mezi oběma extrémy leží úzké pásmo hodnot, které pro daný model a data skutečně fungují, a najít ho patří k prvním praktickým rozhodnutím u jakéhokoli trénování.
Co je lokální minimum
Ztrátová funkce reálného modelu nemá jedno hladké údolí, má jich tisíce, různě hluboká. Gradientní sestup vidí jen svoje bezprostřední okolí, ne celou mapu terénu, takže může sklouznout do mělkého důlku a tam zůstat, i když o kousek dál leží mnohem hlubší dno. Tomuhle mělkému důlku se říká lokální minimum: řešení, které je lepší než všechno ve svém okolí, ale není nejlepší možné.
V praxi to znamená, že dva modely natrénované na stejných datech, se stejnou architekturou, ale s trochu jiným nastavením kroku, mohou skončit s viditelně různou kvalitou, protože jeden uvízl v mělčím důlku a druhý ne. Proto se výkon modelu nedá spolehlivě posoudit z jediného tréninkového běhu a proč se seriózní vývoj modelu dělá s několika běhy a měřením na datech, která model při trénování neviděl.
Proč není víc tréninku automaticky líp
Intuitivní odpověď na horší výsledek je natrénovat model déle. Občas to pomůže, ale ne vždy a ne bez hranic. Po určitém bodě model přestává hledat obecné zákonitosti v datech a začíná si pamatovat přímo trénovací příklady, včetně jejich šumu a náhodných chyb. Tomu se říká přetrénování a pozná se jednoduše: model je čím dál lepší na datech, která už viděl, a čím dál horší na datech, která ještě neviděl.
Delší trénování navíc stojí reálné peníze a čas výpočetního výkonu, a od určitého bodu přináší čím dál menší zlepšení za čím dál vyšší cenu. Pro firmu, která si trénování modelu objednává nebo platí za výpočetní čas, je tohle přesně to místo, kde se ptát dodavatele, podle čeho poznal, že delší trénování ještě pomáhalo, a na jakých datech to změřil.
Konkrétní signál, podle kterého se přetrénování pozná, je rozestup mezi dvěma křivkami: chybou na trénovacích datech a chybou na datech, která model při trénování nikdy neviděl. Dokud obě klesají společně, trénování ještě pomáhá. Jakmile trénovací chyba dál klesá, ale ta druhá se začne zvedat, model se přestal učit obecné vzorce a začal si pamatovat konkrétní příklady. Od tohohle bodu dál je každá další hodina tréninku spíš škoda peněz než zlepšení.