Hefsto

IA

Treine sua primeira IA em casa: de graça, no seu notebook

Por Jonatas

Uma IA de verdade, no seu notebook, por R$ 0

Você pode treinar uma IA do zero no seu próprio notebook, sem pagar nada e sem placa de vídeo. Em um MacBook Air, o treino completo deste guia levou 45 segundos.

A receita vem de Andrej Karpathy, pesquisador conhecido por explicar como a IA funciona por dentro. Em fevereiro de 2026 ele publicou o microgpt: um único arquivo de cerca de 200 linhas de Python, sem bibliotecas externas, que treina e roda um GPT. É o mesmo tipo de modelo por trás do ChatGPT, em versão minúscula.

Este guia leva você do zero ao primeiro resultado, explicando cada termo no caminho. Você não precisa saber programar: basta copiar e colar alguns comandos.

O que você vai construir

Você vai treinar uma IA que inventa nomes de pessoas. Ela lê uma lista de 32.033 nomes reais, descobre os padrões de como as letras se combinam e passa a criar nomes novos que parecem reais, mas não existem.

Depois de 3.000 passos de treino, a IA deste guia gerou nomes como amilyn, anaya, alena, daris e nikee. Nenhum deles foi copiado de propósito: ela escolhe cada letra com base no que aprendeu.

A IA não entende o que é um nome. Ela só aprendeu quais letras costumam vir depois de quais. É exatamente esse o princípio de um chatbot, que prevê a próxima palavra em vez da próxima letra.

O que você precisa (custo zero)

Você precisa de um notebook comum e de programas gratuitos. Não há conta para criar, chave de API, nuvem paga nem placa de vídeo.

  • Um notebook ou PC. Este guia foi testado em um MacBook Air.
  • Python 3, a linguagem em que o microgpt é escrito. É gratuito em python.org.
  • VS Code, um editor de código gratuito que já traz um terminal embutido. O Terminal do próprio sistema também serve.
  • Internet, só para baixar dois arquivos na primeira vez.

Os comandos foram testados no macOS. No Windows e no Linux o caminho é o mesmo, mas alguns comandos mudam de nome (por exemplo, python no lugar de python3).

Glossário rápido

Oito termos explicam quase tudo o que aparece na tela durante o treino.

Termo O que significa
GPT Tipo de IA que prevê o próximo pedaço de um texto. É o princípio do ChatGPT.
Treinar Mostrar muitos exemplos para a IA ajustar seus números internos até errar menos.
Parâmetros Os números internos que o treino ajusta, como botões de um painel. Aqui são 4.192. Os modelos grandes têm bilhões.
Token A unidade que a IA enxerga. Neste projeto, cada letra é um token.
Passo (step) Uma rodada de aprendizado. O arquivo faz 1.000, um nome por passo.
Loss (perda) A nota de erro. Quanto menor, melhor a IA prevê a próxima letra.
Inferência Usar a IA já treinada para gerar algo novo.
Temperature O nível de ousadia ao gerar. Baixa é previsível, alta é mais aleatória.

Passo a passo

Seis passos levam você do zero ao treino rodando. Os comandos são digitados no terminal, que é uma janela onde você dá ordens ao computador por texto.

  1. Crie uma pasta chamada microgpt (por exemplo, em Documentos) e abra-a no VS Code em File > Open Folder.
  2. Abra o terminal em Terminal > New Terminal. Ele já abre dentro da pasta.
  3. Confirme que o Python está instalado com python3 --version. Deve aparecer algo como Python 3.12. Se o sistema oferecer instalar as ferramentas de desenvolvedor, aceite e espere terminar.
  4. Baixe o código: curl -L -o microgpt.py https://gist.githubusercontent.com/karpathy/8627fe009c40f57531cb18360106ce95/raw
  5. Baixe a lista de nomes: curl -L -o input.txt https://raw.githubusercontent.com/karpathy/makemore/988aa59/names.txt
  6. Treine a IA: time python3 microgpt.py. O time no começo mostra, no final, quanto o programa demorou.

O arquivo microgpt.py baixaria a lista de nomes sozinho, mas em alguns Macs isso falha por causa de um certificado de segurança. O passo 5 evita o problema (veja a seção “Se der erro”).

Como ler o resultado

A tela mostra o tamanho do problema, o treino terminando e os nomes que a IA inventou. Esta foi a saída real da primeira rodada, cortada nos cinco primeiros nomes:

num docs: 32033
vocab size: 27
num params: 4192
step 1000 / 1000 | loss 2.6497
--- inference (new, hallucinated names) ---
sample  1: kamon
sample  2: ann
sample  3: karai
sample  4: jaire
sample  5: vialan
  • num docs: 32033. A lista tinha 32.033 nomes. Cada nome é um “documento” de estudo.
  • vocab size: 27. A IA conhece 27 símbolos: as 26 letras do alfabeto e um símbolo especial que marca o começo e o fim do nome.
  • num params: 4192. O modelo tem 4.192 números internos ajustados pelo treino.
  • loss 2.6497. Chutar letras ao acaso entre 27 opções daria uma loss perto de 3,3. Quanto mais abaixo disso, mais a IA aprendeu.
  • sample 1 a 20. São os nomes inventados. Eles mudam se você mudar a configuração, mas, com o código original, cada pessoa vê os mesmos resultados, porque o arquivo usa uma semente fixa de sorteio.

A loss mostrada é a do último passo, calculada sobre um único nome. Por isso ela oscila e não deve ser lida como nota final do modelo.

Experimentos para você repetir

Mudar um único número no arquivo já mostra como cada ajuste afeta a IA. Para repetir, abra o microgpt.py, use Cmd + F (Ctrl + F no Windows e no Linux) para achar o nome da configuração, troque o valor, salve e rode de novo. Mude uma coisa por vez e volte ao valor original antes do próximo teste.

Experimento O que mudou Parâmetros Loss final Tempo
Quase sem treino num_steps = 10 4.192 3,25 1,2 s
Base (original) num_steps = 1000 4.192 2,65 45 s
Mais treino num_steps = 3000 4.192 2,17 2 min 17 s
Mais ousadia temperature = 1.0, com 3.000 passos 4.192 2,17 2 min 17 s
Modelo maior n_embd = 32 14.528 2,62 5 min 25 s
Outros dados input.txt com 96 cidades brasileiras 4.064 1,34 57 s

O que cada teste revelou:

  • Quase sem treino: com 10 passos a loss fica perto do chute (3,25) e saem nomes sem forma, como zpsoadopodwlu, além de nomes de uma só letra. A IA ainda não sabe onde um nome termina.
  • Mais treino: passar de 1.000 para 3.000 passos baixou a loss de 2,65 para 2,17, e os nomes ficaram mais plausíveis.
  • Mais ousadia: com temperature 1.0 a loss não muda, porque o treino é o mesmo. Muda a escolha das letras: aparecem nomes mais longos e estranhos, como amryluram e zhdelos.
  • Modelo maior: os parâmetros foram a 3,5 vezes mais e o tempo a cerca de 7 vezes mais, mas a loss caiu pouco (2,65 para 2,62), diferença pequena demais para concluir algo.
  • Outros dados: treinada com cidades, a IA inventou tecife, icaju e itaii, pedaços recombinados de recife, aracaju e itajai. A loss de 1,34 não se compara com a dos nomes, porque os dados são outros.

Para usar seus próprios dados, guarde o input.txt original com outro nome e crie um novo com uma palavra por linha, em letras minúsculas e sem acento.

Se der erro

O erro mais comum é CERTIFICATE_VERIFY_FAILED, que aparece quando o script tenta baixar a lista de nomes. Ele acontece em alguns Macs com o Python instalado pelo site python.org, que vem sem os certificados de segurança usados para baixar arquivos por HTTPS. O problema não está no código do microgpt.

A solução mais rápida é baixar a lista com o curl, como no passo 5, e rodar o treino de novo. O script só tenta baixar o arquivo se o input.txt não existir.

Para corrigir o Python de vez, abra a pasta do Python em Aplicativos e dê dois cliques em Install Certificates.command. Para este projeto isso não é necessário.

O que isso ensina sobre o ChatGPT

Seu mini-GPT e o ChatGPT seguem o mesmo princípio: ler muito texto e prever o próximo pedaço. Segundo Karpathy, o que separa os dois é quase só eficiência e escala, não um algoritmo diferente. O seu modelo tem 4.192 parâmetros, e os grandes têm bilhões.

Os testes deste guia mostram três ideias que valem para qualquer IA:

  • Treino muda o resultado. Com mais passos, a IA erra menos.
  • Os dados definem o estilo. Com nomes ela inventa nomes, com cidades ela inventa cidades.
  • Tudo tem custo. O modelo maior levou cerca de 7 vezes mais tempo e melhorou pouco com o mesmo número de passos.

Para continuar:

  • Treine com uma lista sua: nomes de animais, de produtos, de lugares.
  • Mude o learning_rate (o original é 0.01), que controla o tamanho de cada ajuste, e compare o resultado.
  • Leia o post em que o próprio Karpathy explica o código seção por seção (link abaixo).

Créditos e fontes

O código do microgpt e a lista de nomes são de Andrej Karpathy. Este guia não copia o código: ele ensina a baixar o arquivo da fonte original. A página do código não informa uma licença, então confira os termos antes de redistribuir.

Todos os números das tabelas vêm de execuções reais em um MacBook Air. O tempo pode variar de um computador para outro.