
nanochat
Andrej Karpathy · Outros · Chatbot
O nanochat é um framework de código aberto e de pilha completa para treinar LLM, criado por Andrej Karpathy, que constrói um modelo de linguagem no estilo ChatGPT do zero. Ele cobre todo o pipeline, da tokenização e do pré-treinamento até o ajuste fino, a avaliação e a inferência, em uma única base de código de cerca de 8.000 linhas. Você aluga um nó com GPU, roda um script e, algumas horas depois, conversa com o modelo que acabou de treinar por uma interface web ou pela linha de comando.

Sobre nanochat
O que é o nanochat
O nanochat é a configuração experimental mais simples para treinar grandes modelos de linguagem. Ele foi feito para um único nó com GPU, o código é mínimo e fácil de alterar, e percorre todas as etapas importantes de um LLM: tokenização, pré-treinamento, treinamento intermediário, ajuste fino supervisionado, aprendizado por reforço opcional, avaliação e inferência. Karpathy o chama de o melhor ChatGPT que 100 dólares podem comprar.
A ideia não é competir com modelos de fronteira. Um modelo nanochat treinado por algumas horas é algo pequeno e curioso, capaz de manter conversas básicas, contar histórias e responder perguntas simples. O que você ganha é um pipeline de treinamento completo e legível, que de fato dá para entender e mudar. Por isso ele vem se firmando como o projeto final do curso LLM101n de Karpathy.
O limite honesto: isto é uma ferramenta de aprendizado e pesquisa, não um modelo de produção. O próprio Karpathy não recomenda ajustá-lo com os seus próprios textos. Um modelo tão pequeno imita o estilo superficial, não capta o raciocínio mais profundo que um LLM de ponta tem. Se você quer isso, faça o ajuste fino de um modelo aberto maior, como o Llama 3, ou use recuperação com um sistema maior.
Primeiros passos
- Suba um servidor de GPU na nuvem com um único nó 8XH100 (o preço de mercado gira em torno de 24 dólares por hora).
- Clone o repositório do GitHub e instale o gerenciador de projetos
uvcaso ainda não o tenha. - Rode o script
runs/speedrun.sh, que cuida da preparação dos dados, do treinamento e do ajuste fino de ponta a ponta. - Espere algumas horas. O script treina um modelo de nível GPT-2 e informa as suas pontuações.
- Inicie o servidor web ou a CLI e converse com o seu modelo recém-treinado.
Informações do produto
Uma visão rápida dos preços, das plataformas compatíveis e do desempenho de nanochat.
Ideal para
Os usuários, tarefas e cenários em que esta ferramenta se encaixa melhor.
Usuários
- Estudantes de aprendizado de máquina
- Pesquisadores e entusiastas
- Equipes pequenas que exploram modelos personalizados
Tarefas
- Treinar um modelo de linguagem da classe GPT-2
- Estudar o pipeline de um LLM
- Comparar ajustes de treinamento
Cenários
- Rodar o seu primeiro trabalho de treinamento de ponta a ponta
- Dar aula ou ministrar um workshop
- Experimentar no fim de semana
Principais recursos
Um script, o pipeline inteiro
O speedrun do nanochat amarra todo o processo em um servidor recém-criado. Ele prepara os dados, treina um tokenizador, pré-treina o transformer, roda o treinamento intermediário e o ajuste fino, e produz um modelo com o qual você pode conversar. Um único comando substitui o habitual mosaico de ferramentas separadas, que é justamente o motivo de manter tudo em um só repositório em vez de espalhar por vários projetos.
O botão de profundidade
O nanochat foi montado para treinar toda uma família de modelos de custo computacional ótimo mudando um único ajuste: --depth, o número de camadas do transformer. Todo o resto, incluindo largura, cabeças de atenção, cronogramas de taxa de aprendizado e horizonte de treinamento, é calculado de forma automática. Quer nível GPT-2? Defina a profundidade em 26. É mais ou menos aí que fica a capacidade do GPT-2.
Tokenizador em Rust e preparação de dados limpa
O tokenizador foi escrito do zero em Rust para ganhar velocidade, e o pipeline de dados reempacota um subconjunto do dataset FineWeb-Edu em arquivos Parquet compactos para streaming. É o encanamento pouco glamouroso. Mas é a parte que quase todo tutorial pula, e aqui ela está inteira.
Motor de inferência com interface web
O treinamento termina com algo que você realmente pode usar. O nanochat traz um motor de inferência eficiente com cache KV, além de uma CLI e uma interface web no estilo ChatGPT. Há também um sandbox leve de Python para chamadas de ferramentas, então o modelo tenta executar código. Esse último detalhe é um bom toque.
Etapa de RL opcional
Além do ajuste fino supervisionado, você pode rodar uma etapa opcional de aprendizado por reforço com o algoritmo GRPO sobre o dataset de matemática GSM8K. É uma etapa extra, não um requisito central, mas mostra como dá para levar um modelo pequeno em tarefas avaliáveis, o que é bastante útil se a sua pesquisa toca em raciocínio ou matemática.
Relatório em Markdown
Depois do treinamento, o nanochat gera um único relatório em Markdown que resume a execução. Ele se lê como um placar, com o tamanho do modelo, o tempo de treinamento e os resultados em testes como MMLU, ARC-Easy e GSM8K. Isso deixa as comparações fáceis. Guarde-o.
Licença MIT e fácil de alterar
Todo o projeto é aberto sob a licença MIT e tem cerca de 8.000 linhas, em sua maioria Python com um pouco de Rust. O código foi feito para ser lido, bifurcado e modificado. Karpathy escreveu a maior parte à mão, e a estrutura fica próxima do metal, o que significa que há pouca mágica escondida para te surpreender quando você começar a fuçar.
Prós e contras
Prós
- Cobre todo o pipeline de um LLM, do tokenizador à interface de chat, em um repositório pequeno.
- Treina um modelo da classe GPT-2 por cerca de 100 dólares de aluguel de GPU, muito abaixo do que custava em 2019.
- Precisa de apenas um nó com GPU, então você pula a complexidade do treinamento distribuído.
- A licença MIT e o código legível facilitam bifurcar e adaptar para os seus próprios experimentos.
- Mantém um ranking ativo do speedrun que mostra até onde outras pessoas levaram a mesma tarefa.
Contras
- Não é um modelo de produção. O resultado é um modelo pequeno para aprendizado, não um rival do GPT-4 ou do Claude, então não espere respostas refinadas.
- Você ainda precisa de hardware de GPU de verdade ou de uma conta na nuvem; não há como treinar em um notebook ou em um celular.
- Ajustá-lo para imitar um estilo de escrita pessoal não funciona bem, porque o modelo base é pequeno demais para absorver mais do que padrões superficiais.
- A configuração pressupõe certa familiaridade com Linux, Python e a linha de comando, o que deixa de fora os usuários não técnicos.
Perguntas frequentes
O nanochat serve para treinar e rodar um pequeno modelo de linguagem no estilo ChatGPT do zero. As pessoas o usam para aprender como os LLM funcionam de ponta a ponta, para testar ideias de treinamento de forma barata e para construir um chatbot funcional a partir de um único script.
Conteúdo relacionado
Explore ferramentas, skills e artigos relacionados a nanochat.
Alternativas a nanochat

Odyssey 3
Odyssey · OutrosOdyssey-3 é o modelo de mundo fundacional da Odyssey. Simula física em tempo real, transforma um texto em ambiente interativo e se adapta a robôs, carros e jogos.
JarvisCore
Prescott Data · Programação · Produtividade · OutrosJarvisCore é um runtime de código aberto em Python em que agentes de IA atuam como pares numa malha, assumem tarefas de um registro compartilhado e chegam a serviços externos por um broker sem confiança.
Clef
Cloudflare · Negócios · OutrosClef é o modelo de decisão open source da Cloudflare para o Workers AI. Devolve probabilidades calibradas para perguntas tipadas em vez de texto, então o agente classifica, roteia e age rápido.
