Repolode
FareedKhan-dev

FareedKhan-dev/train-llm-from-scratch

Um guia prático e codebase em PyTorch para treinar um LLM do zero, cobrindo pré-treinamento, SFT, modelagem de recompensas, DPO/PPO/GRPO e geração.

Estrelas
12,328
Forks
1,816
Issues abertas
2
Último commit
há 18 dias

O que é?

Este repositório implementa um modelo de linguagem transformer do zero, usando apenas PyTorch e seguindo o design original de "Attention is All You Need", além de mostrar todo o processo, do texto bruto a um modelo no estilo chat. Inclui um tokenizador BPE em nível de byte, um decoder no estilo do GPT-2 clássico e uma variante moderna com RoPE, RMSNorm, SwiGLU, grouped-query attention e Mixture of Experts, tudo implementado manualmente, sem usar os trainers do Hugging Face.

As etapas de pós-treinamento também são implementadas do zero: fine-tuning supervisionado com uma máscara de loss aplicada apenas às respostas do assistente, um modelo de recompensa Bradley-Terry, DPO, ORPO, KTO, PPO com GAE e GRPO. Cada etapa tem seu próprio script de preparação de dados e arquivo de configuração JSON. Presets menores, como um modelo TinyStories minúsculo, podem ser treinados em minutos na CPU de um laptop, enquanto configurações maiores precisam de uma GPU.

Recursos principais

  • 01Implementa attention, MLP e blocos transformer do zero em PyTorch.
  • 02Inclui um tokenizador BPE em nível de byte implementado no repositório.
  • 03Abrange SFT com uma máscara de loss aplicada apenas às respostas do assistente em dados de chat.
  • 04Implementa modelagem de recompensas, DPO/ORPO/KTO, PPO e GRPO.
  • 05Oferece um preset minúsculo que pode ser treinado na CPU de um laptop, sem GPU.

Casos de uso

  • Aprender passo a passo como funciona um modelo de linguagem transformer e seu loop de treinamento.
  • Pré-treinar um LLM pequeno em uma GPU ou laptop como experimento.
  • Estudar métodos de pós-treinamento, como DPO, PPO e GRPO, em um codebase fácil de acompanhar.
  • Comparar componentes clássicos e modernos de transformers no mesmo pipeline.

Início rápido

  1. 1

    Clone o repositório

    git clone https://github.com/FareedKhan-dev/train-llm-from-scratch.git
  2. 2

    Acesse a pasta do projeto

    cd train-llm-from-scratch
  3. 3

    Instale o projeto em modo editável

    pip install -e .
  4. 4

    Treine um modelo pequeno na CPU de um laptop após preparar os dados

    python scripts/train_transformer.py --preset tiny --arch modern

Antes de usar

  • Configurações de modelos grandes precisam de uma GPU, e um modelo com um bilhão de parâmetros não cabe em uma T4 gratuita.
  • Algumas etapas dependem de conjuntos de dados públicos que precisam ser baixados primeiro.

Tópicos

Perguntas frequentes

O que é train-llm-from-scratch?
Um guia prático e codebase em PyTorch para treinar um LLM do zero, cobrindo pré-treinamento, SFT, modelagem de recompensas, DPO/PPO/GRPO e geração. Este repositório implementa um modelo de linguagem transformer do zero, usando apenas PyTorch e seguindo o design original de "Attention is All You Need", além de mostrar todo o processo, do texto bruto a um modelo no estilo chat. Inclui um tokenizador BPE em nível de byte, um decoder no estilo do GPT-2 clássico e uma variante moderna com RoPE, RMSNorm, SwiGLU, grouped-query attention e Mixture of Experts, tudo implementado manualmente, sem usar os trainers do Hugging Face.
train-llm-from-scratch é gratuito? Qual é a licença?
train-llm-from-scratch é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
train-llm-from-scratch ainda é mantido?
Manutenção ativa. O último commit de train-llm-from-scratch foi em 2 de out. de 2026.
Para que posso usar train-llm-from-scratch?
Aprender passo a passo como funciona um modelo de linguagem transformer e seu loop de treinamento. Pré-treinar um LLM pequeno em uma GPU ou laptop como experimento. Estudar métodos de pós-treinamento, como DPO, PPO e GRPO, em um codebase fácil de acompanhar. Comparar componentes clássicos e modernos de transformers no mesmo pipeline.
Como instalar train-llm-from-scratch?
Clone o repositório: git clone https://github.com/FareedKhan-dev/train-llm-from-scratch.git Acesse a pasta do projeto: cd train-llm-from-scratch Instale o projeto em modo editável: pip install -e . Treine um modelo pequeno na CPU de um laptop após preparar os dados: python scripts/train_transformer.py --preset tiny --arch modern
Onde consigo train-llm-from-scratch?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/FareedKhan-dev/train-llm-from-scratch

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados