1 puntos por GN⁺ 2026-03-03 | 1 comentarios | Compartir por WhatsApp
  • MicroGPT es una implementación mínima de un modelo GPT escrita en 200 líneas de Python puro, diseñada para entender visualmente la estructura central de los modelos de lenguaje grandes
  • Se entrena con un dataset de 32,000 nombres humanos para generar nombres nuevos, y visualiza paso a paso el proceso de tokenización, predicción, cálculo de pérdida y retropropagación
  • Explica, junto con el código, los principales componentes de GPT como Softmax, Cross-Entropy Loss, Backpropagation, Embedding y Attention
  • Durante el entrenamiento utiliza el optimizador Adam para reducir gradualmente la pérdida, y después genera distintos nombres mediante ajuste de temperatura (Temperature Sampling)
  • Como una forma simplificada del algoritmo central de modelos grandes como ChatGPT, es un material educativo para entender cómo funcionan internamente los LLM

Resumen de MicroGPT

  • Basado en un script de Python de 200 líneas escrito por Andrej Karpathy, explica visualmente el proceso de entrenamiento e inferencia de un modelo GPT
    • Implementado en Python puro sin librerías externas
    • Incluye los algoritmos básicos de los modelos de lenguaje grandes como ChatGPT
  • El texto muestra cada etapa del modelo paso a paso mediante un enfoque visual amigable para principiantes

Dataset y objetivo de entrenamiento

  • Usa como datos de entrenamiento 32,000 nombres humanos (por ejemplo, emma, olivia, ava)
    • Cada nombre se considera un documento, y el modelo aprende patrones de caracteres en los nombres
    • Después del entrenamiento, genera nombres nuevos como “kamon”, “karai”, “anna” y “anton”
  • El modelo aprende relaciones estadísticas entre caracteres, la longitud de los nombres y patrones fonéticos de inicio y final

Proceso de convertir texto en números

  • Como la red neuronal solo procesa números, cada carácter se convierte en un ID entero
    • a–z se asigna a 0–25, y BOS (Beginning of Sequence) a 26
    • El token BOS marca el inicio y el final del nombre
  • En el GPT-4 real, tiktoken tokeniza por fragmentos de texto en lugar de caracteres, pero el principio es el mismo

Predicción del siguiente token

  • El modelo predice el siguiente carácter dado un contexto
    • Ejemplo: [BOS] → “e”, [BOS, e] → “m”, [BOS, e, m] → “m”, [BOS, e, m, m] → “a”
  • Cada etapa genera pares de entrada (contexto) y objetivo (siguiente carácter), igual que en ChatGPT

Softmax y cálculo de probabilidades

  • La salida del modelo está compuesta por 27 logits, que se convierten en probabilidades mediante Softmax
    • Cada logit se exponencia y luego se divide por la suma para crear una distribución de probabilidad
    • Restar el valor máximo es una estabilización para evitar overflow
  • El resultado de Softmax representa la probabilidad de que cada token aparezca a continuación

Cálculo de pérdida: Cross-Entropy

  • La precisión de la predicción se calcula como −log(p)
    • Cuanto mayor sea la probabilidad correcta, menor es la pérdida; cuanto más cerca de 0, mayor es la pérdida
    • Cuando p=1, la pérdida es 0; cuando p→0, la pérdida tiende a infinito
  • El entrenamiento avanza en la dirección de minimizar esta pérdida

Retropropagación (Backpropagation)

  • A partir de la pérdida, se calcula cómo afecta cada parámetro al resultado
    • La derivación se realiza mediante un grafo computacional que representa todas las operaciones (add, multiply, exp, log, etc.) como nodos
    • Cada nodo guarda sus entradas y derivadas locales, y propaga gradientes en sentido inverso
  • Ejemplo: L = a⋅b + a (a=2, b=3) → el gradiente de a es 4.0 (la suma de dos rutas)
  • Es el mismo principio que loss.backward() en PyTorch

Embedding

  • Cada ID de token se convierte en un vector de 16 dimensiones para aprender significado
    • Se usa como entrada la suma del embedding del token y el embedding posicional
    • El rol del mismo carácter cambia según la posición
  • Después del entrenamiento, caracteres similares (por ejemplo, vocales) terminan con vectores parecidos

Attention

  • Cada token genera vectores Query, Key y Value
    • La relevancia se calcula mediante el producto punto entre Query y Key, y los pesos se obtienen con Softmax
    • El Value ponderado se usa como salida
  • Se aplica una Causal Mask para no mirar tokens futuros
  • Cuatro cabezas de atención operan en paralelo y aprenden patrones distintos

Estructura completa de GPT

  • Los tokens de entrada pasan por las siguientes etapas
    1. Embedding + embedding posicional
    2. Normalización RMSNorm
    3. Atención multi-head
    4. Conexión residual (Residual)
    5. MLP (expansión a 64 dimensiones → ReLU → reducción a 16 dimensiones)
    6. Otra conexión residual y cálculo de logits de salida
  • La conexión Residual evita la desaparición del gradiente
  • RMSNorm mantiene estable la magnitud de las activaciones y ayuda a estabilizar el entrenamiento

Bucle de entrenamiento

  • Entrenamiento repetido 1,000 veces
    • Selección de nombre → tokenización → forward pass → cálculo de pérdida → retropropagación → actualización de parámetros
  • Uso del optimizador Adam
    • Logra una convergencia estable mediante momentum y tasa de aprendizaje adaptativa
  • La pérdida baja de aproximadamente 3.3 a 2.37
    • Los nombres generados evolucionan gradualmente de algo aleatorio a formas más naturales

Inferencia y sampling

  • Después del entrenamiento, empieza con BOS y predice repetidamente el siguiente token
    • La generación se repite hasta que vuelve a aparecer BOS
  • Temperature ajusta la diversidad del muestreo
    • Cuanto más baja, más determinista (promedio); cuanto más alta, más creativa pero menos estable
    • La temperatura adecuada para generar nombres es de alrededor de 0.5
  • Ejemplo de salida: “karai”

Eficiencia y escalabilidad

  • MicroGPT es una implementación completa simplificada del algoritmo central de GPT
    • La diferencia con ChatGPT es solo de escala
    • En lugar de 32,000 nombres, usa billones de tokens; en lugar de 4,192 parámetros, cientos de miles de millones de parámetros
    • En lugar de operaciones escalares sobre CPU, usa operaciones tensoriales en GPU
  • El bucle básico es el mismo: tokenizar → embedding → attention → predicción → pérdida → retropropagación → actualización

Conclusión

  • MicroGPT es un modelo educativo que permite aprender de forma intuitiva cómo funciona GPT por dentro
  • Simplifica la compleja estructura de los LLM a gran escala para que sea posible experimentar directamente los mecanismos centrales de un modelo de lenguaje

1 comentarios

 
GN⁺ 2026-03-03
Comentarios en Hacker News
  • Dice que al terminar el entrenamiento el modelo genera nombres como "kamon", "karai", "anna" y "anton", pero en realidad esos nombres también están incluidos en el dataset
    Parece que sería mejor usar otros nombres — enlace al dataset

    • Sí, todo el artículo se sintió como si lo hubiera escrito una IA
    • Gracias, lo corregiré
  • Dice que es para principiantes, pero no sé cuántos principiantes podrían entender este tipo de explicación matemática
    Por ejemplo, la parte donde explica la fórmula de cross-entropy loss se sintió demasiado compleja

    • Yo tampoco soy experto, pero como tengo cierto conocimiento, creo que termino usando expresiones que pueden resultar difíciles desde la perspectiva de un principiante
      Lo volveré a pensar
  • La parte que no entiendo es cómo un modelo tan simple puede llegar a depurar cualquier problema de código
    Me da curiosidad cómo la inferencia estadística se convierte en una “capacidad de razonamiento”
    Como uso Claude Code todos los días, ya parece de verdad que eso pasa

    • Creo que esa pregunta es el mayor misterio de la investigación en ML
      La idea clave es: “si siempre puedes predecir correctamente la siguiente palabra, al final podrás responder correctamente cualquier pregunta”
      Por eso últimamente se está avanzando hacia enfoques basados en aprendizaje por refuerzo como RLHF o RLVR para encontrar la ‘respuesta correcta’
    • No se trata simplemente de inferencia estadística a nivel de palabras, sino de un proceso repetido de inferencia jerárquica de estructuras semánticas complejas
    • Los DNN no son inferencia estadística en el sentido común del término
      Matemáticamente, se parecen más a un problema de optimización basado en cálculo diferencial
      No se limitan a aprender estadísticas del texto, sino que encuentran una solución compleja para predecir el siguiente token
    • La expresión “inferencia estadística” es una explicación demasiado simplificada
      En las redes neuronales hay elementos estadísticos, pero también hay algo más, como en el cerebro humano
  • Leí todo el artículo; tenía partes útiles, pero se sintió como eso de ‘dibuja el resto del búho’
    Parecía que faltaban las conexiones entre los conceptos, aunque la estructura interactiva estuvo bien

    • Al principio iba bien, pero pronto aparecieron explicaciones como “el MLP es una red feedforward de 2 capas, proyecta a 64 dimensiones, aplica ReLU y luego vuelve a proyectar a 16 dimensiones”, y de repente el nivel de dificultad subió muchísimo
      Me habría gustado que lo tratara con más profundidad
  • Me pregunto si últimamente se ha puesto de moda meter errores de ortografía o gramática a propósito para demostrar que un texto no fue escrito por un LLM
    También vi bastantes errores así en el blog de Karpathy y en este artículo

    • Este tipo de counter signaling probablemente se volverá más común en adelante
    • Creo que apenas ahora me di cuenta de eso
    • Si soy sincero, Karpathy tampoco es una figura tan increíble
      Solo sostuvo durante mucho tiempo el proyecto de Full Self Driving de Elon, y tampoco estuvo tanto tiempo en OpenAI
      Últimamente parece estar concentrado casi solo en code golf o en inventar neologismos
  • El original está en el blog de Karpathy — enlace al artículo de microGPT

  • Algunos dijeron que era demasiado básico y otros que iba demasiado a fondo, pero
    para alguien como yo, que no entiende bien cómo funcionan los modelos, fue una buena visión general
    No lo entendí del todo, pero me pareció un buen punto de partida para empezar a aprender

  • Fue uno de los tutoriales más útiles que he visto hasta ahora
    Yo no programaba, pero gracias a la IA empecé a escribir código
    La explicación es simple y clara, así que ayuda mucho a pensar qué pedirle a la IA

  • Parece que T-Mobile está bloqueando esta página del blog
    enlace a la página de advertencia de bloqueo

  • Al leer el artículo entendí que se imprimieran nombres, pero me pregunté por qué usaron específicamente generación de nombres como ejemplo

    • Los nombres son solo un problema arbitrario para demostrar el modelo
      Se podría hacer también con cualquier otro tipo de datos