nanochat ahora puede entrenar un LLM de grado GPT-2 por <<$100 (~$73, 3 horas en un solo nodo 8XH100). GPT-2 es simplemente mi LLM favorito porque es la primera vez que la pila de LLM se presenta en una forma reconociblemente moderna. Así que se ha convertido en una especie de obsesión extraña y duradera para mí entrenar un modelo con capacidad de GPT-2 pero mucho más barato, con el beneficio de ~7 años de progreso. En particular, sospechaba que debería ser posible hoy entrenar uno por <<$100. Originalmente en 2019, GPT-2 fue entrenado por OpenAI en 32 chips TPU v3 durante 168 horas (7 días), a $8/hora/TPUv3 en ese entonces, con un costo total de aproximadamente $43K. Logra un puntaje CORE de 0.256525, que es una métrica de conjunto introducida en el artículo DCLM a través de 22 evaluaciones como ARC/MMLU/etc. A partir de las últimas mejoras fusionadas en nanochat (muchas de ellas originadas en el repositorio modded-nanogpt), ahora puedo alcanzar un puntaje CORE más alto en 3.04 horas (~$73) en un solo nodo 8XH100. Esta es una reducción de costo de 600X en 7 años, es decir, el costo para entrenar GPT-2 está cayendo aproximadamente 2.5X cada año. Creo que esto es probablemente una subestimación porque todavía estoy encontrando más mejoras relativamente de forma regular y tengo una lista de ideas más para probar. Una publicación más larga con muchos de los detalles de las optimizaciones involucradas y pistas sobre cómo reproducirlo está aquí: Inspirado por modded-nanogpt, también creé una tabla de clasificación para "tiempo hasta GPT-2", donde este primer modelo "Jan29" es la entrada #1 con 3.04 horas. Será divertido iterar más sobre esto y agradezco la ayuda. Mi esperanza es que nanochat pueda crecer para convertirse en un arnés experimental LLM muy bonito/limpio y ajustado para prototipar ideas, para divertirse y, por supuesto, para aprender. Las mayores mejoras de cosas que funcionaron desde el principio y simplemente produjeron ganancias de inmediato fueron 1) núcleos de Flash Attention 3 (más rápidos, y permite el argumento window_size kwarg para obtener patrones de atención alternos), optimizador Muon (intenté durante ~1 día eliminarlo y solo usar AdamW y no pude), caminos residuales y conexiones de salto controladas por escalares aprendibles, y embeddings de valor. Hubo muchas otras cosas más pequeñas que se acumulan. Imagen: golosinas visuales semi-relacionadas de derivar las leyes de escalado para la actual miniserie del modelo nanochat, ¡bonita y satisfactoria!