Sobre o projeto

PlanckGPT é um projeto educacional que demonstra como treinar um modelo de linguagem estilo GPT do zero em hardware de nível de consumo. O modelo tem aproximadamente 540 milhões de parâmetros e é pré-treinado em cerca de 2 bilhões de tokens do conjunto de dados Fineweb-edu, com um estágio opcional de ajuste fino para chat usando dados Smol-smoltalk. O projeto visa alcançar a melhor relação qualidade-tempo de treinamento, com um limite suave de 50 horas de treinamento. No laptop do autor (Intel Core i7 14700HX, 24GB RAM, RTX 5070 Mobile 8GB), o pré-treinamento leva cerca de 28 horas e 20 minutos, enquanto o ajuste fino para chat leva aproximadamente 4 horas e 10 minutos. A arquitetura usa um decodificador transformer de 14 camadas com 7 cabeças de consulta, embeddings de 896 dimensões, embeddings posicionais rotativos, embeddings de valor alternados, ativação ReLU quadrada e RMSNorm. O tokenizador é Tiktoken com codificação GPT-2 (tamanho de vocabulário 50.257). O treinamento emprega o otimizador NorMuon para pesos do transformer, Adam de 8 bits para embeddings, precisão mista BF16, checkpointing de gradiente e torch.compile. O projeto fornece scripts para pré-treinamento, avaliação, ajuste fino para chat e inferência. O desempenho pré-treinado é próximo ao GPT-2-medium com perda média de validação de ~2,97 no Fineweb-edu. O desempenho com ajuste fino para chat atinge perda média de validação de ~1,13 no Smol-smoltalk. A inferência usa amostragem top-k e top-p com cache KV para geração mais rápida. O projeto é inspirado em modded-nanogpt e nanochat, e é licenciado sob Apache 2.0.