Model trénovaný na jednoduchých příkladech si nejdřív všechno zapamatuje. Pak přestane dělat pokroky. Vypadá to, jako by se zasekl. A pak, po dalším trénování, se něco zlomí. Přesnost na neviděných datech vyskočí z náhodného hádání na téměř dokonalou znalost. Tento jev dostal název grokking. Poprvé ho popsali výzkumníci z OpenAI v roce 2022 v článku publikovaném na arXiv. A od té doby nedává spát mnoha lidem, kteří se zabývají tím, jak neurální sítě vlastně fungují.
Co je grokking a proč nás to překvapilo
Neurální sítě se normálně chovají předvídatelně. Trénujete je, chybovost klesá a výkon roste. Pak to zastaví. Na tomto principu stojí celé strojové učení. Grokking tento systém mění.
Výzkumníci z OpenAI natrénovali modely na malých datasetech složených z matematických operací. Konkrétně dělení modulo 97. Model si rychle zapamatoval správné odpovědi na trénovacích příkladech, přesnost se blížila 100 procentům. Na datech, která nikdy předtím neviděl, ale odpovídal prakticky náhodně. Typický případ přetrénování, nic, co by výzkumníky překvapilo.
Překvapení přišlo až potom. Když výzkumníci nechali model trénovat výrazně déle, než bylo nutné k zapamatování dat, přesnost na testovací sadě začala náhle stoupat. Ne postupně, ale skokově. V jednom experimentu se to stalo až po milionu tréninkových kroků, přičemž zapamatování zvládl model při méně než tisíci krocích. Tisícinásobný rozdíl. Model se nejdřív přetrénoval a pak se sám od sebe zobecnil. Bez jakéhokoli zásahu zvenku.
Jak výzkum probíhal a co odhalil
Původní studie pracovala s jednoduchými matematickými operacemi ve tvaru a ◦ b = c, kde a, b, c jsou diskrétní symboly. Výzkumníci testovali různé typy operací, různě velké datasety i různé architektury modelů.
Jedno zjištění bylo hodně výrazné. Čím menší dataset, tím víc tréninkových kroků bylo potřeba k tomu, aby se grokking projevil. Malé datasety prostě vyžadují mnohem víc výpočetní práce, než model přejde od zapamatování ke skutečnému pochopení. A hlavně, jev se objevoval napříč různými modely i optimalizacemi. Nešlo o náhodu nebo artefakt jedné konkrétní architektury.
Neel Nanda, výzkumník z Anthropicu, se rozhodl grokking prozkoumat přímo v útrobách natrénovaného modelu. Vzal jednoduchý transformerový model a naučil ho sčítání modulo 113. Model prošel známým průběhem: zapamatování, stagnace a pak skok na téměř dokonalou přesnost na nových datech.
Nanda pak model doslova rozebral. Použil k tomu mechanickou interpretabilitu. To je přístup, který se snaží zpětně rekonstruovat algoritmy přímo ze závaží natrénovaných sítí. A co tam Nanda našel, nečekal nikdo.
Model si sám vyvinul algoritmus založený na diskrétní Fourierově transformaci a trigonometrických identitách. Čísla převáděl na frekvence, ty skládal pomocí rotací na kružnici a z výsledku pak četl odpověď. Jako by si sám od sebe odvodil polární souřadnice a teorii čísel. Nikdo ho to neučil. Nikdo mu neřekl, co je Fourierova transformace ani mu nikdo nenaprogramoval práci s kružnicemi. Model to celé odvodil sám, čistě z příkladů.
Co se děje uvnitř, když navenek nic nevidíme
Jedno z nejzajímavějších zjištění Nandovy analýzy se týká toho, co se děje v té zdánlivě prázdné fázi mezi zapamatováním a grokkem. Navenek model stagnuje. Přesnost na testovacích datech zůstává nízká. Vypadá to, jako by se nedělo vůbec nic, jenže uvnitř je to jinak.
Model v této fázi buduje obvod, který skutečně zobecňuje. Zároveň ale stále běží starý obvod, který si jen zapamatovává příklady. Ten přidává šum a generalizačnímu obvodu brání v tom, aby se naplno projevil. Grokking přijde ve chvíli, kdy generalizační obvod získá dost síly na to, aby model pamatovací obvod sám odstranil. Vyčistil ho. A pod ním se následně ukáže hotový algoritmus. Jako by dvě řešení soupeřila o místo v modelu. Jedno musí ustoupit, aby druhé mohlo vyhrát.
Nanda upozorňuje, že má přímou spojitost s fázovými přechody, tedy s náhlými skoky ve schopnostech modelů v průběhu tréninku. A ty se objevují i ve velkých modelech trénovaných na reálných datech. Příklad: transformery při škálování náhle získají schopnost učit se ze souvislostí v kontextu. Tato schopnost nevzniká postupně, ale skokem ve chvíli, kdy model vytvoří specifický obvod označovaný jako indukční hlavy.
Struktura tohoto přechodu je velmi podobná grokkingu. Model tajně buduje schopnost, která se navenek neprojeví, dokud není zralá/hotová. Pak se přepne. To naznačuje, že velká část toho, co u velkých modelů vnímáme jako záhadné náhlé chování, může mít úplně stejný mechanismus jako grokking na jednoduché aritmetice.
Nahlédnutí do černé skříňky
Dlouho se předpokládalo, že velké modely jsou ze své podstaty neprůhledné. Víme, co produkují, ale ne proč. Mechanická interpretabilita tento předpoklad zpochybňuje. Nandova analýza grokkingu je jedním z mála případů, kdy se podařilo kompletně zpětně zrekonstruovat algoritmus přímo ze závaží sítě. A dokázat, že právě tento algoritmus za výkonem modelu stojí.
Model trénovaný jen na příkladech si sám odvodil matematiku, ke které lidé dospívali staletí. A my jsme na to přišli tak, že jsme se prostě podívali dovnitř. Kolik dalších mechanizmů tam ještě čeká?
Zdroj: alignmentforum.org
