Filosofia de Engenharia: Andrej Karpathy, a pilha que você não escreve

Principais conclusões
- Software 2.0 é a reformulação de Karpathy: uma rede neural é um programa compilado a partir de dados, não escrito à mão. O conjunto de dados é o código-fonte; o treinamento é o compilador.
- Ele conquista o direito de fazer essa afirmação ao construir cada camada do zero – micrograd, char-rnn, nanoGPT – porque você não pode confiar em uma pilha que não consegue reconstruir sozinho.
- Ele trata o ensino como ofício: a demonstração legível e o repositório limpo são a forma como ele depura a própria compreensão, não como a divulga.
- A disciplina que conecta tudo isso é o princípio do zero – implemente a retropropagação à mão uma vez, e a falha de um modelo real se torna algo que você conhece, em vez de adivinhar.
O princípio
“As redes neurais não são apenas mais um classificador, elas representam o começo de uma mudança fundamental na forma como desenvolvemos software. Elas são Software 2.0.” – Andrej Karpathy1
A maioria dos engenheiros em 2017 tratava as redes neurais como mais uma ferramenta na caixa – um classificador a que você recorria quando a regressão logística não bastava. Karpathy argumentou que elas eram algo totalmente diferente: um novo paradigma de programação. No Software 1.0, um humano escreve instruções explícitas em Python ou C++. No Software 2.0, o humano escreve um esqueleto aproximado – uma arquitetura de rede – e cura um conjunto de dados, e “o processo de treinar a rede neural compila o conjunto de dados no binário.”1 Nenhum humano escreve os pesos. O programa é cultivado, não redigido.
Uma única reformulação reorganiza tudo o que vem depois. Se o modelo é o programa, o conjunto de dados se torna o código-fonte, a curva de perda se torna o erro do compilador, e o trabalho do engenheiro deixa de ser escrever lógica para passar a moldar as condições sob as quais a lógica emerge. Essa mesma mudança faz com que o contexto, e não o código, seja a verdadeira arquitetura de um sistema de IA moderno: você não instrui o comportamento, você constrói o substrato em que ele se forma. E por baixo de todo o ensino de Karpathy corre uma convicção – você não pode confiar em uma pilha que não consegue construir sozinho. Então ele construiu cada camada do zero, em público, um caractere de retropropagação por vez.
Contexto
Andrej Karpathy nasceu em Bratislava, na Eslováquia, em 1986, e mudou-se com a família para Toronto aos quinze anos. Estudou ciência da computação e física na Universidade de Toronto, onde – ainda na graduação – assistiu às aulas e grupos de leitura de Geoffrey Hinton, absorvendo o evangelho das redes neurais anos antes de ele virar ortodoxia. Depois de um mestrado na Universidade da Colúmbia Britânica, foi para Stanford fazer doutorado sob orientação de Fei-Fei Li no Stanford Vision Lab, concluindo em 2015. Seu trabalho de doutorado ficava na intersecção entre visão computacional e linguagem natural – ensinar máquinas a descrever imagens – exatamente a costura que a década seguinte iria rasgar.2
Em Stanford, ele projetou e ministrou o CS231n, o primeiro curso de deep learning da universidade, que cresceu de 150 alunos em 2015 para 750 em 2017.3 Foi membro fundador da OpenAI em 2015. Em 2017, tornou-se diretor de IA da Tesla, respondendo a Elon Musk, onde comandou a pilha de visão do Autopilot. Voltou à OpenAI em 2023, saiu em 2024 para fundar a empresa de educação em IA Eureka Labs e, em 2026, juntou-se à equipe de pré-treinamento da Anthropic.2 O fio condutor de cada movimento não é o empregador. É a insistência em entender a máquina até o nível mais fundo e, então, mostrar a todo mundo como.
O trabalho
“The Unreasonable Effectiveness of Recurrent Neural Networks” (2015): a demonstração como argumento

Em maio de 2015, Karpathy publicou um post de blog que viralizou em um campo que ainda não tinha posts de blog virais. Ele treinou redes neurais recorrentes em nível de caractere – char-rnn – com texto bruto e as deixou gerar um caractere por vez. Os modelos aprenderam a produzir Shakespeare, matemática em LaTeX que quase compilava, C do kernel do Linux e marcação da Wikipédia, sem nunca terem sido informados do que era qualquer uma dessas coisas.4
O post era um argumento disfarçado de demonstração. Ao fazer um modelo pequeno produzir algo surpreendente e legível – dava para ler a confusão de caracteres ganhando coerência sintática aos poucos – Karpathy provou que os modelos de sequência haviam absorvido estrutura profunda apenas a partir dos dados. O código char-rnn que acompanhava o post no GitHub importava tanto quanto a prosa. A lição que definiria sua carreira já estava ali: o argumento mais forte a favor de uma ideia é a menor versão funcional dela, com o código anexado.
Software 2.0 (2017): a reformulação
O ensaio de 2017 é a pedra angular. A tese de Karpathy era a de que, para uma classe crescente de problemas – visão, fala, tradução –, é mais fácil coletar dados e treinar uma rede do que escrever o programa à mão, e a rede treinada costuma ser melhor. O Software 2.0 é “escrito em uma linguagem muito mais abstrata e hostil ao ser humano, como os pesos de uma rede neural”, e “nenhum humano participa da escrita desse código.”1
A verdadeira contribuição do ensaio foi cultural, não apenas técnica. Se as redes neurais são um paradigma de programação, então as equipes precisam de controle de versão para conjuntos de dados, depuradores para ativações e uma disciplina para modos de falha que a pilha antiga nunca teve. Quase uma década depois, Karpathy estendeu o enquadramento para o Software 3.0: grandes modelos de linguagem que você programa em inglês comum, razão pela qual ele pôde chamar o inglês de “a mais quente nova linguagem de programação.”5 O agente não ficou mais inteligente – o substrato ficou, e a engenharia subiu uma camada a cada vez.
Tesla Autopilot (2017–2022): Software 2.0 em produção

Como diretor de IA da Tesla, Karpathy rodou o Software 2.0 onde os riscos eram mais altos: um carro em movimento a alta velocidade. O sistema de visão do Autopilot era uma frota de redes neurais consumindo feeds de câmera, e o problema central de sua equipe era exatamente o que o ensaio previa – quando o programa é o conjunto de dados, melhorar o programa significa melhorar os dados. A Tesla construiu motores de dados: pipelines que mineravam a frota em busca dos casos raros e difíceis (um caminhão carregando cones de trânsito, um cervo ao entardecer), os rotulavam, retreinavam e reimplantavam. A base de código encolhia à medida que heurísticas escritas à mão eram apagadas e absorvidas pela rede. Karpathy descreveu isso diretamente como o código do Software 1.0 sendo “devorado” pela pilha 2.0 – a validação em produção mais clara de sua tese.2
nanoGPT, micrograd e “Neural Networks: Zero to Hero” (2022–): do zero, explicado em detalhes

Depois da Tesla, Karpathy se voltou em tempo integral para o trabalho que talvez sobreviva a todo o resto: ensinar as pessoas a construir a pilha por conta própria. Sua série de aulas “Neural Networks: Zero to Hero” começa com o micrograd – um motor completo de diferenciação automática e biblioteca de rede neural em cerca de 100 linhas de Python – e vai subindo, vídeo a vídeo, até um GPT funcional.6 A aula final, “Let’s build GPT: from scratch, in code, spelled out”, reproduz a arquitetura Transformer de “Attention Is All You Need”, digitada ao vivo. Seu repositório complementar build-nanogpt então reproduz o GPT-2 (124M) a partir de um arquivo vazio, com o histórico do git mantido limpo o suficiente para percorrer commit a commit – uma lancha funcional destilada do nanoGPT de nível de produção.7
A pedagogia é a filosofia. Não há import de biblioteca que esconda o gradiente. Você implementa a retropropagação à mão para que, quando um modelo real se comportar mal, você saiba – não acredite – o que está acontecendo dentro dele. O micrograd é a pilha inteira em 100 linhas: sem PyTorch, sem mágica, cada multiplicação visível.
O método
Primeiros princípios, depois frameworks. Karpathy se recusa a deixar uma abstração de pé até ter construído aquilo que está embaixo dela. O micrograd existe para que o autograd do PyTorch nunca seja uma caixa-preta. Construir a camada de baixo é a versão de engenheiro da recusa em citar uma fonte que você não leu.
Construa a menor versão funcional. char-rnn, micrograd, nanoGPT e seu mais recente nanochat são todos deliberadamente minúsculos – pequenos o bastante para caber inteiros na sua cabeça, completos o bastante para de fato rodar. A pequenez é o ponto: uma biblioteca de 100 linhas ensina o que uma de 100.000 linhas obscurece.
Aprenda em público. Quase tudo o que Karpathy entende, ele publica – como um post de blog, uma aula, um repositório limpo, um tuíte descartável que nomeia um fenômeno (“vibe coding”) que o resto do campo havia sentido, mas não articulado.8 O ensino força a clareza; você não consegue explicar a retropropagação em um quadro branco enquanto ainda está confuso sobre ela.
Clareza como ferramenta de pensamento. A legibilidade de suas demonstrações – assistir a uma RNN aprender sintaxe caractere por caractere – não é espetáculo. É como ele depura a própria compreensão. Se não consegue torná-la visível, é porque ainda não a entendeu.
Cadeia de influência
Quem o moldou
Geoffrey Hinton acendeu o pavio. Karpathy teve contato com a retropropagação e as redes neurais por meio do círculo de Hinton em Toronto, no momento exato – pouco antes do resultado da ImageNet em 2012 – em que o campo passou de marginal a dominante. A convicção de que as redes neurais não eram uma ferramenta de nicho, mas o futuro da computação, é de Hinton, levada adiante.
Fei-Fei Li moldou o artesão. Como sua orientadora de doutorado e arquiteta da ImageNet, ela deu a Karpathy a disciplina de tratar os dados como o objeto central – o conjunto de dados como aquilo que determina o que um modelo pode se tornar. O Software 2.0 é, em um sentido bem real, a doutrina de um laboratório de visão centrado em dados escrita como uma teoria de todo o software.
Quem ele moldou
Uma geração de engenheiros de ML. Durante anos, o CS231n foi a forma como engenheiros em atividade aprendiam deep learning; suas notas ainda são citadas como um livro-texto. “Neural Networks: Zero to Hero” e o nanoGPT então se tornaram o caminho canônico, do zero, para os Transformers – a rota que milhares de profissionais percorreram do “eu uso a API” ao “eu entendo a arquitetura”. Poucas pessoas integraram pessoalmente uma fatia tão grande da atual força de trabalho de IA.
O fio condutor
John Carmack fez engenharia reversa do hardware gráfico e reconstruiu o pipeline de renderização do zero porque não estava disposto a entregar sobre uma camada que não entendia. Karpathy implementa a retropropagação à mão pela mesma razão. Ambos tratam construir você mesmo não como um exercício de tutorial, mas como o único caminho honesto para o domínio – a convicção de que você não conhece de verdade um sistema enquanto não escreveu a menor versão completa dele. O mesmo instinto atravessa Linus Torvalds e sua recusa em confiar no que não pode inspecionar. (Ponte da série)
O que eu tiro disso
A disciplina à qual sempre volto é a recusa de Karpathy em operar sobre uma camada que ele não construiu pelo menos uma vez. Quando você está compondo agentes, é tentador tratar o modelo como um oráculo e o framework como evangelho. O exemplo dele diz: construa primeiro a menor versão você mesmo – entenda por que o agente deve chamar o modelo diretamente antes de recorrer à biblioteca de orquestração. O enquadramento do Software 2.0/3.0 também reformula o trabalho inteiro: em um sistema de agentes, você não está escrevendo o comportamento, está moldando as condições – o contexto, os dados, os prompts – sob as quais o comportamento emerge, o fio condutor de tudo, do RAG aos agentes. O mapa completo está no hub de engenharia de IA e no guia de arquitetura de agentes.
FAQ
O que é o “Software 2.0” de Andrej Karpathy?
Software 2.0 é o termo de Karpathy, de um ensaio de 2017, para programas escritos como os pesos de uma rede neural, em vez de instruções explícitas redigidas por humanos. No Software 1.0, um programador escreve a lógica; no Software 2.0, o programador especifica um objetivo e uma arquitetura, cura um conjunto de dados, e “o processo de treinar a rede neural compila o conjunto de dados no binário.” O conjunto de dados se torna o código-fonte e o treinamento se torna a compilação.1
O que Andrej Karpathy fez na Tesla?
De 2017 a 2022, Karpathy foi diretor de IA da Tesla, liderando a pilha de visão por redes neurais por trás do Autopilot. Sua equipe construiu “motores de dados” que mineravam a frota de veículos em busca de cenários de direção raros e difíceis, os rerrotulavam e retreinavam com eles, e progressivamente substituíam heurísticas de direção escritas à mão por redes aprendidas – uma demonstração em produção de sua tese do Software 2.0.2
O que é “Neural Networks: Zero to Hero”?
É a série gratuita de videoaulas de Karpathy que ensina deep learning construindo-o do zero em Python. Começa com o micrograd – um motor de diferenciação automática de cerca de 100 linhas – e vai subindo, passando por modelos de linguagem, até um GPT feito do zero, incluindo a aula “Let’s build GPT: from scratch, in code, spelled out”. O repositório complementar build-nanogpt reproduz o GPT-2 (124M) a partir de um arquivo vazio, um commit do git por vez.67
Andrej Karpathy cunhou o termo “vibe coding”?
Sim. Em um post de fevereiro de 2025 no X, Karpathy descreveu “um novo tipo de programação que chamo de ‘vibe coding’, em que você se entrega totalmente às vibes, abraça os exponenciais e esquece que o código sequer existe”, tornado possível pelas ferramentas de programação com LLM ficando boas o suficiente para construir software por conversa. Mais tarde, ele chamou o post de “tuíte descartável”; ainda assim, o termo entrou para o vocabulário da indústria.8
Fontes
-
Andrej Karpathy, “Software 2.0.” Medium, 11 de novembro de 2017. “As redes neurais não são apenas mais um classificador…Elas são Software 2.0”; “o processo de treinar a rede neural compila o conjunto de dados no binário”; “nenhum humano participa da escrita desse código.” ↩↩↩↩
-
“Andrej Karpathy.” Wikipédia. Nascido em Bratislava em 1986; Toronto, UBC, doutorado em Stanford sob orientação de Fei-Fei Li (2015); membro fundador da OpenAI; diretor de IA da Tesla (2017–2022); retorno à OpenAI (2023); Eureka Labs (2024); pré-treinamento na Anthropic (2026). ↩↩↩↩
-
Andrej Karpathy, site pessoal / bio. CS231n: o primeiro curso de deep learning de Stanford, projetado e ministrado principalmente por Karpathy; o número de matrículas cresceu de 150 (2015) para 750 (2017). Curso: CS231n. ↩
-
Andrej Karpathy, “The Unreasonable Effectiveness of Recurrent Neural Networks.” 21 de maio de 2015. RNNs em nível de caractere gerando Shakespeare, LaTeX, código-fonte do Linux e marcação da Wikipédia; código char-rnn liberado no GitHub. ↩
-
Andrej Karpathy, “The hottest new programming language is English.” X, 24 de janeiro de 2023. Estendido em sua palestra de 2025 “Software Is Changing (Again)” / Software 3.0. ↩
-
Andrej Karpathy, “Neural Networks: Zero to Hero.” Série de aulas construindo redes neurais do zero, começando com o micrograd. Repositório: nn-zero-to-hero. micrograd (~100 linhas, licença MIT): karpathy/micrograd. ↩↩
-
Andrej Karpathy, “build-nanogpt.” “Aula em vídeo+código sobre como construir o nanoGPT do zero” – reproduz o GPT-2 (124M) a partir de um arquivo vazio com commits do git limpos e passo a passo que você pode percorrer. Destilado do repositório de nível de produção: nanoGPT, “o repositório mais simples e rápido para treinar/fazer fine-tuning de GPTs de tamanho médio.” ↩↩
-
Andrej Karpathy, “There’s a new kind of coding I call ‘vibe coding’…” X, 2 de fevereiro de 2025. Mais tarde descrito como um “tuíte descartável.” ↩↩