o nanochat agora pode treinar LLM de grau GPT-2 por <<$100 (~$73, 3 horas em um único nó 8XH100). GPT-2 é apenas meu LLM favorito porque é a primeira vez que a pilha de LLMs se reúne de forma reconhecidamente moderna. Então, virou uma obsessão meio estranha e duradoura para mim treinar um modelo com capacidade GPT-2, mas por muito menos dinheiro, com o benefício de ~7 anos de progresso. Em particular, suspeitava que hoje seria possível treinar um por <<$100. Originalmente em 2019, o GPT-2 foi treinado pela OpenAI em chips 32 TPU v3 durante 168 horas (7 dias), com $8/hora/TPUv3 na época, por um custo total de aproximadamente $43K. Ele alcança 0,256525 na pontuação CORE, que é uma métrica de conjunto introduzida no artigo do DCLM em 22 avaliações como ARC/MMLU/etc. Com as últimas melhorias incorporadas ao nanochat (muitas delas originadas em repositórios nanoGPT modificados), agora consigo alcançar uma pontuação CORE mais alta em 3,04 horas (~$73) em um único nó 8XH100. Isso representa uma redução de custo de 600 vezes em 7 anos, ou seja, o custo para treinar o GPT-2 cai aproximadamente 2,5 vezes a cada ano. Acho que isso provavelmente é uma subestimação porque ainda estou encontrando melhorias com relativa regularidade e tenho um acúmulo de ideias para tentar. Um post mais longo, com muitos detalhes das otimizações envolvidas e dicas sobre como reproduzir, está aqui: Inspirado pelo modded-nanogpt, também criei um ranking para o "time to GPT-2", onde esse primeiro modelo "Jan29" é a entrada #1 com 3,04 horas. Vai ser divertido repetir isso e agradeço ajuda! Minha esperança é que o nanochat possa crescer e se tornar um autênseo experimental de LLM muito bonito, limpo e ajustado para prototipagem de ideias, para se divertir e, claro, para aprender. As maiores melhorias das coisas que funcionaram logo de cara e simplesmente produziram ganhos imediatamente foram: 1) Flash Attention 3 kernels (mais rápidos e permitem que window_size kwarg obtenha padrões de atenção alternados), otimizador Muon (tentei por ~1 dia deletá-lo e só usei o AdamW, mas não consegui), caminhos residuais e conexões de salto bloqueados por escalares aprendíveis, e embeddings de valor. Havia muitas outras coisas menores que se acumulavam. Imagem: um deleite visual semi-relacionado de derivar as leis de escala para a minissérie atual do modelo nanochat, bonito e satisfatório!