nanochat kan nu träna GPT-2-klassade LLM för <<$100 (~$73, 3 timmar på en enda 8XH100-nod). GPT-2 är bara min favorit-LLM eftersom det är första gången LLM-stacken samlas i en igenkännbar modern form. Så det har blivit en lite konstig och bestående besatthet för mig att träna en modell till GPT-2-kapacitet, men mycket billigare, med fördelen av ~7 års framsteg. Särskilt misstänkte jag att det borde vara möjligt idag att träna en för <<$100. Ursprungligen 2019 tränades GPT-2 av OpenAI på 32 TPU v3-chip i 168 timmar (7 dagar), med 8 dollar per timme per TPUv3 då, till en total kostnad på cirka 43 000 dollar. Den uppnår 0,256525 CORE-poäng, vilket är en ensemble-metrik som introducerades i DCLM-artikeln över 22 utvärderingar som ARC/MMLU/etc. Från och med de senaste förbättringarna som slogs ihop i nanochat (många av dem har sitt ursprung i modd-nanogpt-repo), kan jag nu nå ett högre CORE-poäng på 3,04 timmar (~$73) på en enda 8XH100-nod. Detta är en kostnadsreduktion på 600 gånger över 7 år, det vill säga kostnaden för att träna GPT-2 minskar ungefär 2,5 gånger varje år. Jag tror att detta troligen är en underskattning eftersom jag fortfarande hittar fler förbättringar relativt regelbundet och jag har en eftersläpning av fler idéer att prova. Ett längre inlägg med mycket detaljer om optimeringarna och tips om hur man kan reproducera finns här: Inspirerad av moddd-nanogpt skapade jag också en topplista för "tid till GPT-2", där denna första "Jan29"-modell är post #1 vid 3,04 timmar. Det kommer att bli roligt att utveckla detta vidare och jag välkomnar hjälp! Min förhoppning är att nanochat kan växa till att bli en mycket fin, ren och välanpassad experimentell LLM-plattform för prototypidéer, för att ha roligt och såklart för att lära sig. De största förbättringarna av saker som fungerade direkt och helt enkelt gav vinster direkt var 1) Flash Attention 3-kärnor (snabbare och tillåter window_size kwarg att få alternerande uppmärksamhetsmönster), Muon-optimeraren (jag försökte i ~1 dag att ta bort den och använde bara AdamW och kunde inte), restvägar och hoppade kopplingar som styrdes av lärbara skalärer, och värdeinbäddningar. Det fanns många andra mindre saker som staplades. Bild: halvrelaterat ögongodis om att härleda skalningslagarna för den nuvarande nanochat-modellminiserien, vacker och tillfredsställande!