Sobre el proyecto

PlanckGPT es un proyecto educativo que demuestra cómo entrenar un modelo de lenguaje estilo GPT desde cero en hardware de nivel consumidor. El modelo tiene aproximadamente 540 millones de parámetros y se preentrena con alrededor de 2 mil millones de tokens del conjunto de datos Fineweb-edu, con una etapa opcional de ajuste de chat usando datos Smol-smoltalk. El proyecto apunta a lograr la mejor relación calidad-tiempo de entrenamiento, con un límite suave de 50 horas de entrenamiento. En la laptop del autor (Intel Core i7 14700HX, 24GB RAM, RTX 5070 Mobile 8GB), el preentrenamiento toma alrededor de 28 horas y 20 minutos, mientras que el ajuste de chat toma aproximadamente 4 horas y 10 minutos. La arquitectura usa un decodificador transformer de 14 capas con 7 cabezas de consulta, incrustaciones de 896 dimensiones, incrustaciones posicionales rotatorias, incrustaciones de valor alternantes, activación ReLU al cuadrado y RMSNorm. El tokenizador es Tiktoken con codificación GPT-2 (tamaño de vocabulario 50,257). El entrenamiento emplea el optimizador NorMuon para pesos de transformador, Adam de 8 bits para incrustaciones, precisión mixta BF16, checkpointing de gradientes y torch.compile. El proyecto proporciona scripts para preentrenamiento, evaluación, ajuste de chat e inferencia. El rendimiento preentrenado es cercano a GPT-2-medium con una pérdida de validación promedio de ~2.97 en Fineweb-edu. El rendimiento ajustado para chat alcanza una pérdida de validación promedio de ~1.13 en Smol-smoltalk. La inferencia usa muestreo top-k y top-p con caché KV para generación más rápida. El proyecto está inspirado en modded-nanogpt y nanochat, y está licenciado bajo Apache 2.0.