← Volver al Blog

Entrenar un GPT-2 costaba $43,000 en 2019: cuánto cuesta hoy con nanochat de Karpathy (precios GPU 2026)

En 2019, OpenAI necesitó 32 chips TPU v3 corriendo 168 horas para entrenar GPT-2. La cuenta, publicada en el propio repositorio de nanochat, fue de $43,000 USD. Siete años después, Karpathy publicó nanochat: 8,159 líneas de código que permiten entrenar un modelo con la misma puntuación CORE en 8 GPU H100 durante 2 horas. El precio hoy: $48 USD en tarifa on-demand, o cerca de $15 USD en instancias spot.

“Todo se abarató” ya lo dicen los titulares. Prefiero algo más útil: leer el archivo dev/LEADERBOARD.md línea por línea, rastrear de dónde salieron los 100x de reducción de tiempo, y rehacer la cuenta con precios de GPU accesibles desde América Latina en julio de 2026.

Aclaro un prejuicio antes de empezar: escribí una guía de lectura de nanochat, así que tengo interés en que te parezca interesante. A mí no me sorprendió el número final, me sorprendió que Karpathy documentara cada mejora con fecha y URL de pull request. Eso es contabilidad pública de un experimento científico, algo raro en el ecosistema LLM.

Los $43,000 de 2019: de dónde salen

La cifra aparece en la fila cero de dev/LEADERBOARD.md. OpenAI usó 32 TPU v3, 168 horas de reloj, a aproximadamente $8 por chip por hora en las tarifas de nube de aquella época. La multiplicación da $43,008. Redondeado, es el número que la industria terminó citando.

Dos detalles se suelen omitir. Primero, esa cifra ya asume tarifas de nube con descuento corporativo, no precio de lista. Alquilar 32 TPU v3 por una semana en 2019 al precio público era bastante más caro. Segundo, “GPT-2” aquí significa algo muy concreto: alcanzar un puntaje CORE de 0.256525 en la suite de benchmarks DCLM. Un objetivo medible, no una impresión de “está bien”.

Esta precisión es lo que hace que la comparación con 2026 sea posible. Sin esa métrica, cada quien cuenta con reglas distintas.

Los $48 de 2026: y por qué en realidad son menos

runs/speedrun.sh es el archivo que hizo famoso al proyecto: 79 líneas de bash que ejecutan todo el pipeline. Entrena un modelo d24 (24 capas Transformer) en un nodo de 8 H100 durante aproximadamente 2 horas. La fila 6 de la tabla de líderes actualizó ese tiempo a 1.65 horas el 14 de marzo de 2026.

Los $48 vienen del cálculo de Karpathy asumiendo una noche de Lambda Labs a tarifa on-demand publicada en el momento del lanzamiento. El mercado se movió. Los precios actuales de H100 en proveedores que sirven bien a LatAm (Lambda tiene región en São Paulo, RunPod tiene punto de presencia allí, Vast.ai funciona globalmente):

ProveedorTipoPrecio (USD/GPU-hora)Corrida completa (8 GPU × 1.65h)
Lambda Labs on-demandH100 SXM~$2.49~$32.87
RunPod on-demandH100 SXM~$2.69~$35.51
RunPod spotH100 SXM~$1.19~$15.71
Spheron spotH100 SXM5~$1.03~$13.60
Vast.ai peer-to-peerH100 varía~$1.60~$21.12

El piso real hoy está entre $13 y $16 USD para un speedrun completo en spot. En pesos mexicanos, cerca de 240–300 pesos. En pesos argentinos, dependiendo del tipo de cambio, algo entre 20,000 y 26,000. En reales, alrededor de R$ 70–85. Un almuerzo caro y ya entrenaste un GPT-2.

Aviso de honestidad: las instancias spot pueden interrumpirse. Si eso te obliga a reiniciar desde un checkpoint, el costo real puede subir 10–30%. Suma también almacenamiento de snapshots y una cuenta de WandB (que speedrun.sh usa por defecto). Considera un margen del 20% sobre el piso spot si es tu primera vez.

Colapso de costo GPT-2: $43,000 en 2019 vs $13-$48 hoy según proveedor

Dónde se fueron los 100x de aceleración

La tabla dev/LEADERBOARD.md responde con detalle a la pregunta “¿dónde se fue el dinero?”. Ninguna mejora mágica: hay una secuencia de pull requests con fecha, autor y diff:

FilaFechaTiempoCOREQué cambió
02019168h0.2565GPT-2 original de OpenAI
12026-01-293.04h0.2585Baseline d24, ligeramente sobreajustada
22026-02-022.91h0.2578d26 subajustada + fp8
32026-02-052.76h0.2602Batch size subido a 1M tokens
42026-03-042.02h0.2571Cambio de dataset a NVIDIA ClimbMix
52026-03-091.80h0.2690Autoresearch round 1
62026-03-141.65h0.2626Autoresearch round 2

De 168 horas a 1.65 es alrededor de 100x, pero ninguna fila sola aporta más de un tercio de esa mejora. Los kernels fp8 mediante torch._scaled_mm recortaron una parte. El re-tuneo del batch size otra. Un mejor dataset (ClimbMix de NVIDIA) una tercera. Y dos rondas de “autoresearch” (donde Karpathy dejó que un LLM propusiera cambios al bucle de entrenamiento y los probó en A/B) cerraron el resto.

El hardware también contribuye. Pasar de TPU v3 a H100 es aproximadamente 15–20x más throughput por chip en cargas bf16, y H100 con fp8 duplica de nuevo en las capas donde es estable. Aun así, la propia historia de la tabla indica que las mejoras algorítmicas están haciendo más trabajo que el silicio durante la ventana 2026-a-2026, porque el hardware no cambió dentro de ese año.

El parámetro que subentrena a propósito

Fila 2 esconde un ajuste sutil. El argumento --target-param-data-ratio en scripts/base_train.py tiene valor por defecto 12. Chinchilla dice 20 (aproximadamente 20 tokens por parámetro es lo compute-optimal). El speedrun lo baja a 8.

Subentrenamiento intencional. El comentario en el shell script es honesto: “slightly undertrained to beat GPT-2”. La meta no es el mejor modelo posible dentro del presupuesto de cómputo, sino la ruta más corta a una puntuación CORE específica. Si buscas “GPT-2 más barato”, a propósito te alejas de compute-optimal, porque esa métrica optimiza otra cosa.

A mí me hizo replantear una idea que tenía por obvia: “más pequeño y más rápido siempre es peor”. Depende de tu métrica. Si es “mejor modelo”, sí; si es “pasar el umbral con el mínimo costo”, la decisión hasta tiene sentido. No es la primera vez que me equivoco en algo que sonaba evidente, y probablemente no será la última.

Qué significa esto si desarrollas desde LatAm

Dos cosas cambian si venías postergando tocar pre-entrenamiento porque parecía “cosa de laboratorio con presupuesto de startup”.

Primera: pre-entrenar un modelo es hoy el costo de un sábado. Con $50 USD y ocho horas puedes producir un modelo objetivamente mejor en DCLM CORE que el que OpenAI anunció con blog post y todo en 2019. Esto no te convierte en competencia de los modelos frontier (un d24 no se parece a GPT-5), pero la barrera de “yo nunca entrené un LLM de verdad” ahora cuesta menos que un cargador para tu computadora nueva.

Segunda: el pipeline que clonas de nanochat es legiblemente el mismo pipeline que ejecutan los laboratorios frontier. Escalas distintas, mejores datos, más cómputo, pero la forma es idéntica: entrenamiento de tokenizer, pre-entrenamiento con fp8 y Flash Attention 3, SFT, evaluación, inferencia con cache KV. Leer las 8,159 líneas del repo es el curso intensivo más rápido que conozco para entender qué significa realmente “entrenar un LLM” a nivel de llamadas a funciones.

Si vienes armando aplicaciones RAG y prompts complejos preguntándote cuándo va a dejar de sentirse mágico, es ahora. Sin volverte especialista en pre-entrenamiento: basta con ejecutar bash runs/speedrun.sh una vez y mirar las curvas de wandb subir. El misterio se desinfla rápido.

Cómo empezar hoy mismo

Un plan de un día:

  1. Crea cuenta en RunPod o Lambda Labs (RunPod acepta tarjetas latinoamericanas sin problemas; Lambda pide más verificación pero funciona).
  2. Carga $30 USD de crédito. Alcanza para dos speedruns completos incluyendo margen para errores.
  3. Alquila 8xH100 SXM en spot (RunPod Community Cloud es la opción más accesible).
  4. git clone https://github.com/karpathy/nanochat y bash runs/speedrun.sh.
  5. Después de las ~2 horas, ejecuta python -m scripts.chat_cli y habla con tu modelo.

El modelo no va a reemplazar a GPT-4. Es un GPT-2: sabrá que París es la capital de Francia, dirá barbaridades sobre historia moderna, y olvidará el contexto largo. Pero es tu GPT-2. Tú lo entrenaste. Y eso cambia cómo ves el resto de la industria.

Cierre

  • El costo de entrenar GPT-2 cayó de $43,000 en 2019 a $13-$48 hoy, una reducción de 900-3000x en 7 años.
  • El desglose real está en dev/LEADERBOARD.md: hardware, fp8, batch, dataset, autoresearch. Nadie inventó una mejora del 100x sola.
  • El speedrun subentrena a propósito. Compute-optimal y “más barato” no son la misma cosa.
  • Con $30 USD puedes reproducir el experimento este fin de semana desde cualquier país de LatAm.

Lecturas relacionadas

ken imoto · WebRTC & Voice AI engineer · kenimoto.dev

Convirtiendo LLMs de Mentirosos en Expertos Libro relacionado Convirtiendo LLMs de Mentirosos en Expertos Ingeniería de Contexto desde cero — RAG, MCP, CLAUDE.md y Agentic RAG, con benchmarks que muestran hasta 4,6× de mejora Ver la página del libro →