Novo post: minissérie nanochat v1 A maneira correta de pensar sobre LLMs é que você não está otimizando para um único modelo específico, mas para uma família de modelos controlados por um único botão (o poder computacional que você deseja gastar) para alcançar resultados monotonamente melhores. Isso permite que você faça uma ciência cuidadosa das leis de escalonamento e, em última análise, é isso que lhe dá a confiança de que, quando você paga pela "grande execução", a extrapolação funcionará e seu dinheiro será bem gasto. Para o primeiro lançamento público do nanochat, meu foco estava em um pipeline de ponta a ponta que executa todo o pipeline LLM com todas as suas etapas. Agora, depois de fazer algumas execuções antes, estou voltando para desenvolver algumas das partes que passei rapidamente, começando, claro, com o pré-treinamento, que é tanto computacionalmente pesado quanto crítico como a base da inteligência e do conhecimento nesses modelos. Depois de ajustar localmente alguns dos hiperparâmetros, eu eliminei uma série de modelos fixando o orçamento de FLOPs. (Para cada meta de FLOPs, você pode treinar um modelo pequeno por muito tempo ou um modelo grande por pouco tempo.) Acontece que o nanochat obedece a leis de escalonamento muito boas, basicamente reproduzindo os gráficos do artigo Chinchilla: Que é apenas uma versão reduzida deste gráfico do Chinchilla: Muito importante e encorajador, o expoente em N (parâmetros) e D (tokens) é igual a ~=0.5, então, assim como no Chinchilla, obtemos uma constante única (independente de computação) que relaciona o tamanho do modelo aos horizontes de treinamento de tokens. No Chinchilla, isso foi medido como 20. No nanochat, parece ser 8! Uma vez que podemos treinar modelos computacionalmente ótimos, eu eliminei uma minissérie de d10 a d20, que são tamanhos de nanochat que podem fazer 2**19 ~= 0.5M tamanhos de lote em um nó 8XH100 sem acumulação de gradiente. Obtemos gráficos de treinamento bonitos e não interseccionais para cada tamanho de modelo. Então, a parte divertida é relacionar esta minissérie v1 à minissérie GPT-2 e GPT-3 para que saibamos que estamos no caminho certo. A perda de validação tem muitos problemas e não é comparável, então, em vez disso, uso a pontuação CORE (do artigo DCLM). Eu a calculei para o GPT-2 e a estimei para o GPT-3, o que nos permite finalmente colocar o nanochat de forma adequada e na mesma escala: O custo total desta minissérie é de apenas ~$100 (~4 horas em 8XH100). Esses experimentos nos dão confiança de que tudo está funcionando muito bem e que, se pagarmos mais (virar o botão), obteremos modelos cada vez melhores. TLDR: podemos treinar minisséries computacionalmente ótimas e relacioná-las ao GPT-2/3 via pontuações CORE objetivas, mas melhorias adicionais são desejáveis e necessárias. Por exemplo, igualar o GPT-2 atualmente precisa de ~$500, mas na minha opinião deveria ser possível fazer por menos de $100 com mais trabalho. O post completo com muito mais detalhes está aqui: E todo o ajuste e código foi enviado para o master e as pessoas podem reproduzir isso com os scripts bash scaling_laws .sh e miniseries .sh.