← Todos los articulos

Filosofía de ingeniería: Andrej Karpathy, el stack que no escribes

Andrej Karpathy, investigador y educador de IA

Ideas clave

  • Software 2.0 es el replanteamiento de Karpathy: una red neuronal es un programa compilado a partir de datos, no escrito a mano. El conjunto de datos es el código fuente; el entrenamiento es el compilador.
  • Se gana el derecho a esa afirmación construyendo cada capa desde cero – micrograd, char-rnn, nanoGPT –, porque no puedes confiar en un stack que no eres capaz de reconstruir por tu cuenta.
  • Trata la enseñanza como un oficio: la demostración legible y el repositorio limpio son la forma en que depura su propia comprensión, no la forma en que se promociona.
  • La disciplina que conecta todo esto es el principio de hacerlo desde cero: implementa la retropropagación a mano una sola vez, y el fallo de un modelo real pasa a ser algo que conoces en lugar de adivinar.

El principio

«Las redes neuronales no son solo otro clasificador más: representan el comienzo de un cambio fundamental en la forma en que desarrollamos software. Son Software 2.0.» – Andrej Karpathy1

En 2017, la mayoría de los ingenieros trataba las redes neuronales como una herramienta más de la caja: un clasificador al que recurrías cuando la regresión logística no daba para más. Karpathy sostuvo que eran algo completamente distinto: un nuevo paradigma de programación. En el Software 1.0, una persona escribe instrucciones explícitas en Python o C++. En el Software 2.0, la persona escribe un esqueleto aproximado – una arquitectura de red – y selecciona un conjunto de datos, y «el proceso de entrenar la red neuronal compila el conjunto de datos en el binario».1 Nadie escribe los pesos a mano. El programa se cultiva, no se redacta.

Un solo replanteamiento reorganiza todo lo que viene después. Si el modelo es el programa, el conjunto de datos se convierte en el código fuente, la curva de pérdida se convierte en el error de compilación, y el trabajo del ingeniero deja de ser escribir lógica para pasar a moldear las condiciones bajo las cuales la lógica emerge. Ese mismo cambio hace que el contexto, no el código, sea la verdadera arquitectura de un sistema de IA moderno: no le das instrucciones al comportamiento, construyes el sustrato en el que se forma. Y bajo toda la enseñanza de Karpathy corre una convicción: no puedes confiar en un stack que no eres capaz de construir tú mismo. Por eso construyó cada capa desde cero, en público, un carácter de retropropagación a la vez.

Contexto

Andrej Karpathy nació en Bratislava, Eslovaquia, en 1986, y se mudó con su familia a Toronto a los quince años. Estudió ciencias de la computación y física en la Universidad de Toronto, donde – siendo estudiante de grado – asistió a la clase y a los grupos de lectura de Geoffrey Hinton, absorbiendo el evangelio de las redes neuronales años antes de que se volviera ortodoxia. Tras una maestría en la Universidad de Columbia Británica, se fue a Stanford para hacer un doctorado bajo la dirección de Fei-Fei Li en el Stanford Vision Lab, que terminó en 2015. Su trabajo doctoral se situó en la intersección de la visión por computadora y el lenguaje natural – enseñar a las máquinas a describir imágenes –, justo la costura que la década siguiente terminaría de abrir.2

En Stanford diseñó e impartió CS231n, el primer curso de deep learning de la universidad, que pasó de 150 estudiantes en 2015 a 750 para 2017.3 Fue miembro fundador de OpenAI en 2015. En 2017 se convirtió en director de IA de Tesla, reportando a Elon Musk, donde dirigió el stack de visión de Autopilot. Volvió a OpenAI en 2023, lo dejó en 2024 para fundar la empresa de educación en IA Eureka Labs, y en 2026 se unió al equipo de preentrenamiento de Anthropic.2 El hilo conductor a lo largo de cada movimiento no es el empleador. Es la insistencia en entender la máquina hasta el fondo, y luego mostrárselo a todos los demás.

El trabajo

«The Unreasonable Effectiveness of Recurrent Neural Networks» (2015): la demostración como argumento

Diagrama del char-rnn de Karpathy: la red lee los caracteres «h, e, l, l» a través de una capa de entrada, una oculta y una de salida, y aprende a predecir el siguiente carácter en cada paso -- «e, l, l, o»

En mayo de 2015, Karpathy publicó una entrada de blog que se volvió viral en un campo que aún no tenía entradas de blog virales. Entrenó redes neuronales recurrentes a nivel de carácter – char-rnn – sobre texto en bruto y las dejó generar un carácter a la vez. Los modelos aprendieron a producir Shakespeare, matemáticas en LaTeX que casi compilaban, C del kernel de Linux y marcado de Wikipedia, sin que nunca se les hubiera dicho qué era ninguna de esas cosas.4

La entrada era un argumento disfrazado de demostración. Al hacer que un modelo pequeño hiciera algo sorprendente y legible – podías leer el galimatías cohesionándose lentamente en sintaxis –, Karpathy demostró que los modelos de secuencia habían absorbido una estructura profunda solo a partir de los datos. El código de char-rnn que lo acompañaba en GitHub importaba tanto como la prosa. La lección que definiría su carrera ya estaba presente: el argumento más fuerte a favor de una idea es la versión funcional más pequeña de ella, con el código adjunto.

Software 2.0 (2017): el replanteamiento

El ensayo de 2017 es la piedra angular. La afirmación de Karpathy era que, para una clase creciente de problemas – visión, habla, traducción –, es más fácil recopilar datos y entrenar una red que escribir el programa a mano, y la red entrenada suele ser mejor. El Software 2.0 está «escrito en un lenguaje mucho más abstracto y poco amigable para los humanos, como los pesos de una red neuronal», y «ningún humano participa en la escritura de este código».1

La verdadera contribución del ensayo fue cultural, no solo técnica. Si las redes neuronales son un paradigma de programación, entonces los equipos necesitan control de versiones para los conjuntos de datos, depuradores para las activaciones y una disciplina para modos de fallo que el stack antiguo nunca tuvo. Casi una década después, Karpathy extendió el planteamiento al Software 3.0: grandes modelos de lenguaje que programas en inglés llano, razón por la cual podía llamar al inglés «el nuevo lenguaje de programación más candente».5 El agente no se volvió más inteligente: lo hizo el sustrato, y la ingeniería subió una capa cada vez.

Tesla Autopilot (2017–2022): Software 2.0 en producción

El stack de visión de Autopilot de Tesla: las imágenes en bruto de las cámaras (arriba) reconstruidas en un «espacio vectorial» a vista de pájaro con los bordes de la carretera y la geometría de los carriles (abajo) -- Software 2.0 funcionando en un coche en movimiento

Como director de IA en Tesla, Karpathy dirigió el Software 2.0 donde lo que estaba en juego era lo más alto: un coche desplazándose a velocidad. El sistema de visión de Autopilot era una flota de redes neuronales que consumían las imágenes de las cámaras, y el problema central de su equipo era justo el que el ensayo predijo: cuando el programa es el conjunto de datos, mejorar el programa significa mejorar los datos. Tesla construyó motores de datos: tuberías que rastreaban la flota en busca de los casos raros y difíciles (un camión cargado con conos de tráfico, un ciervo al atardecer), los etiquetaban, los reentrenaban y los volvían a desplegar. La base de código se encogía a medida que las heurísticas escritas a mano se eliminaban y se absorbían dentro de la red. Karpathy describió esto directamente como código de Software 1.0 que estaba siendo «devorado» por el stack 2.0 – la validación de producción más clara de su tesis.2

nanoGPT, micrograd y «Neural Networks: Zero to Hero» (2022–): desde cero, explicado paso a paso

El banner de nanoGPT -- el chiste de Karpathy sobre las implementaciones de GPT disponibles: las opciones pesadas tachadas en favor de una «lancha rápida» pequeña y legible

Después de Tesla, Karpathy se dedicó a tiempo completo al trabajo que quizá sobreviva a todo lo demás: enseñarle a la gente a construir el stack por sí misma. Su serie de clases «Neural Networks: Zero to Hero» empieza con micrograd – un motor completo de diferenciación automática y una biblioteca de redes neuronales en unas 100 líneas de Python – y va construyendo, video tras video, hasta llegar a un GPT funcional.6 La clase final, «Let’s build GPT: from scratch, in code, spelled out», reproduce la arquitectura del Transformer de «Attention Is All You Need», escrita en vivo. Su repositorio complementario build-nanogpt reproduce luego GPT-2 (124M) a partir de un archivo vacío, con el historial de git lo bastante limpio como para recorrerlo commit a commit – una lancha rápida funcional destilada del nanoGPT de calidad de producción.7

La pedagogía es la filosofía. No hay ningún import de biblioteca que oculte el gradiente. Implementas la retropropagación a mano para que, cuando un modelo real se comporte mal, sepas – no creas – qué está pasando dentro de él. micrograd es el stack completo en 100 líneas: sin PyTorch, sin magia, cada multiplicación a la vista.

El método

Primero los fundamentos, luego los frameworks. Karpathy se niega a dejar que una abstracción se sostenga hasta haber construido aquello que hay debajo. micrograd existe para que el autograd de PyTorch nunca sea una caja negra. Construir la capa de abajo es la versión que tiene el ingeniero de negarse a citar una fuente que no ha leído.

Construye la versión funcional más pequeña. char-rnn, micrograd, nanoGPT y su más reciente nanochat son todos deliberadamente diminutos – lo bastante pequeños como para sostener la cosa entera en la cabeza, lo bastante completos como para correr de verdad. La pequeñez es el punto: una biblioteca de 100 líneas enseña lo que una de 100.000 oscurece.

Aprende en público. Casi todo lo que Karpathy entiende, lo publica – como entrada de blog, como clase, como repositorio limpio, como un tuit desechable que pone nombre a un fenómeno («vibe coding») que el resto del campo había sentido pero no articulado.8 La enseñanza fuerza la claridad; no puedes explicar la retropropagación paso a paso en una pizarra mientras sigues confundido sobre ella.

La claridad como herramienta de pensamiento. La legibilidad de sus demostraciones – ver a una RNN aprender sintaxis carácter a carácter – no es espectáculo. Es la forma en que depura su propia comprensión. Si no puede hacerlo visible, todavía no lo entiende.

Cadena de influencia

Quién lo formó

Geoffrey Hinton encendió la mecha. Karpathy se topó con la retropropagación y las redes neuronales a través del entorno de Hinton en Toronto, en el momento preciso – justo antes del resultado de ImageNet de 2012 – en que el campo pasó de marginal a dominante. La convicción de que las redes neuronales no eran una herramienta de nicho sino el futuro de la computación es de Hinton, llevada adelante.

Fei-Fei Li formó al artesano. Como su directora de doctorado y arquitecta de ImageNet, le dio a Karpathy la disciplina de tratar los datos como el objeto central – el conjunto de datos como aquello que determina lo que un modelo puede llegar a ser. El Software 2.0 es, en un sentido real, la doctrina de un laboratorio de visión centrado en los datos escrita como una teoría de todo el software.

A quién formó él

A toda una generación de ingenieros de ML. CS231n fue, durante años, la forma en que los ingenieros en activo aprendían deep learning; sus apuntes todavía se citan como un libro de texto. «Neural Networks: Zero to Hero» y nanoGPT se convirtieron luego en el camino canónico, desde cero, hacia los Transformers – la ruta que miles de profesionales tomaron desde «uso la API» hasta «entiendo la arquitectura». Pocas personas han incorporado personalmente a una porción mayor de la actual fuerza de trabajo en IA.

El hilo conductor

John Carmack hizo ingeniería inversa del hardware de gráficos y reconstruyó la canalización de renderizado desde cero porque no estaba dispuesto a publicar sobre una capa que no entendía. Karpathy implementa la retropropagación a mano por la misma razón. Ambos tratan el construirlo tú mismo no como un ejercicio de tutorial, sino como el único camino honesto hacia la maestría – la convicción de que no conoces de verdad un sistema hasta que has escrito su versión completa más pequeña. El mismo instinto recorre a Linus Torvalds y su negativa a confiar en lo que no puede inspeccionar. (Puente de la serie)

Lo que me llevo de esto

La disciplina a la que sigo volviendo es la negativa de Karpathy a operar sobre una capa que no ha construido al menos una vez. Cuando estás componiendo agentes, es tentador tratar el modelo como un oráculo y el framework como un dogma. Su ejemplo dice: construye primero tú mismo la versión más pequeña – entiende por qué el agente debería llamar al modelo directamente antes de recurrir a la biblioteca de orquestación. El planteamiento del Software 2.0/3.0 también replantea todo el trabajo: en un sistema de agentes, no estás escribiendo comportamiento, estás moldeando las condiciones – el contexto, los datos, los prompts – bajo las cuales el comportamiento emerge, el hilo conductor de todo, desde RAG hasta los agentes. El mapa completo vive en el hub de ingeniería de IA y en la guía de arquitectura de agentes.

Preguntas frecuentes

¿Qué es el «Software 2.0» de Andrej Karpathy?

El Software 2.0 es el término de Karpathy, de un ensayo de 2017, para los programas escritos como los pesos de una red neuronal en lugar de como instrucciones explícitas redactadas por humanos. En el Software 1.0 un programador escribe la lógica; en el Software 2.0 el programador especifica un objetivo y una arquitectura, selecciona un conjunto de datos, y «el proceso de entrenar la red neuronal compila el conjunto de datos en el binario». El conjunto de datos se convierte en el código fuente y el entrenamiento se convierte en la compilación.1

¿Qué hizo Andrej Karpathy en Tesla?

De 2017 a 2022, Karpathy fue director de IA de Tesla, al frente del stack de visión basado en redes neuronales detrás de Autopilot. Su equipo construyó «motores de datos» que rastreaban la flota de vehículos en busca de escenarios de conducción raros y difíciles, los reetiquetaban y reentrenaban sobre ellos, y reemplazaban progresivamente las heurísticas de conducción escritas a mano por redes aprendidas – una demostración en producción de su tesis del Software 2.0.2

¿Qué es «Neural Networks: Zero to Hero»?

Es la serie gratuita de videoclases de Karpathy que enseña deep learning construyéndolo desde cero en Python. Empieza con micrograd – un motor de diferenciación automática de unas 100 líneas – y va subiendo, pasando por los modelos de lenguaje, hasta un GPT hecho desde cero, incluida la clase «Let’s build GPT: from scratch, in code, spelled out». El repositorio complementario build-nanogpt reproduce GPT-2 (124M) partiendo de un archivo vacío, un commit de git a la vez.67

¿Acuñó Andrej Karpathy el término «vibe coding»?

Sí. En una publicación de febrero de 2025 en X, Karpathy describió «un nuevo tipo de programación que llamo “vibe coding”, en el que te entregas por completo a las vibras, abrazas las exponenciales y olvidas que el código siquiera existe», hecho posible porque las herramientas de programación con LLM se volvieron lo bastante buenas como para construir software conversando. Más tarde llamó a la publicación un «tuit desechable»; aun así, el término entró en el vocabulario de la industria.8


Fuentes


  1. Andrej Karpathy, «Software 2.0». Medium, 11 de noviembre de 2017. «Las redes neuronales no son solo otro clasificador más… Son Software 2.0»; «el proceso de entrenar la red neuronal compila el conjunto de datos en el binario»; «ningún humano participa en la escritura de este código». 

  2. «Andrej Karpathy». Wikipedia. Nacido en Bratislava en 1986; Toronto, UBC, doctorado en Stanford bajo Fei-Fei Li (2015); miembro fundador de OpenAI; director de IA de Tesla (2017–2022); regreso a OpenAI (2023); Eureka Labs (2024); preentrenamiento en Anthropic (2026). 

  3. Andrej Karpathy, sitio personal / biografía. CS231n: la primera clase de deep learning de Stanford, diseñada e impartida principalmente por Karpathy; la matrícula creció de 150 (2015) a 750 (2017). Curso: CS231n. 

  4. Andrej Karpathy, «The Unreasonable Effectiveness of Recurrent Neural Networks». 21 de mayo de 2015. RNNs a nivel de carácter generando Shakespeare, LaTeX, código fuente de Linux y marcado de Wikipedia; código de char-rnn publicado en GitHub. 

  5. Andrej Karpathy, «The hottest new programming language is English». X, 24 de enero de 2023. Ampliado en su charla de 2025 «Software Is Changing (Again)» / Software 3.0. 

  6. Andrej Karpathy, «Neural Networks: Zero to Hero». Serie de clases que construye redes neuronales desde cero, empezando con micrograd. Repositorio: nn-zero-to-hero. micrograd (~100 líneas, con licencia MIT): karpathy/micrograd. 

  7. Andrej Karpathy, «build-nanogpt». «Clase en video+código sobre cómo construir nanoGPT desde cero» – reproduce GPT-2 (124M) a partir de un archivo vacío con commits de git limpios, paso a paso, que puedes recorrer. Destilado del repositorio de calidad de producción: nanoGPT, «el repositorio más simple y rápido para entrenar/afinar GPTs de tamaño medio». 

  8. Andrej Karpathy, «There’s a new kind of coding I call ‘vibe coding’…». X, 2 de febrero de 2025. Descrito más tarde como un «tuit desechable». 

Artículos relacionados

Filosofía de ingeniería: Geoffrey Hinton, la convicción por encima de la moda

Geoffrey Hinton apostó por las redes neuronales inspiradas en el cerebro durante dos inviernos de la IA, cuando el campo…

18 min de lectura

Filosofía de ingeniería: Demis Hassabis, resolver la inteligencia para resolverlo todo

Demis Hassabis construyó inteligencia general desde primeros principios -- los juegos como banco de pruebas, la neurocie…

20 min de lectura

The Shader Gallery That Lied: Debugging 216 WebGL Presets

A user said the shader playground looked broken. Pixel-readback testing found 30 dead presets, 11 that never compiled, a…

11 min de lectura