24 pontos por GN⁺ 2025-01-31 | 1 comentários | Compartilhar no WhatsApp
  • Projeto simples de treinamento de LLM baseado em PyTorch, projetado para fins educacionais, aplicando treinamento eficiente e técnicas modernas de amostragem

Recursos

  • Base de código mínima: implementado em PyTorch, sem abstrações complexas
  • Arquitetura moderna: modelo GPT com Flash Attention, RMSNorm, SwiGLU e técnicas eficientes de amostragem
  • Recursos de treinamento:
    • precisão mista (bfloat16/float16)
    • acumulação de gradiente
    • decaimento da taxa de aprendizado com warmup
    • weight decay e gradient clipping
  • Suporte a datasets: processamento integrado do dataset TinyStories
  • Tokenizador personalizado: integração do treinamento do tokenizador SentencePiece

Instalação

  • Python 3.8+
  • PyTorch 2.0+ e CUDA
  • GPU moderna recomendada

Início rápido 🚀

Opção 1: ciclo completo de treinamento

  1. Preparar o dataset
  2. Iniciar o treinamento
  3. Gerar texto

Opção 2: usar modelo pré-treinado

  1. Baixar os assets
  2. Executar a inferência

Detalhes do modelo pré-treinado

  • Treinado com o dataset TinyStories
  • Vocabulário de 4096 tokens, transformer com 8 heads e 8 camadas, dimensão de embedding de 512
  • Treinado por 18,5 horas com cerca de 400 milhões de tokens
  • Perda de validação: 1.0491

Especificações do equipamento de treinamento

  • GPU: NVIDIA L4 Tensor Core
  • vCPUs: 16
  • RAM: 64 GB
  • VRAM: 24 GB

Observação: esta implementação foi criada para fins educacionais com base em práticas modernas de treinamento de LLM. Em ambientes de produção, é recomendável ampliar o tamanho do modelo e do dataset.

1 comentários

 
GN⁺ 2025-01-31
Opiniões no Hacker News
  • Um usuário mencionou que, ao implementar o GPT em C, aprendeu a importância do gerenciamento de memória e de dados. O projeto tem cerca de 1.500 linhas de código, e ele compartilhou um link do GitHub

  • Outro usuário explicou que o próximo passo é implementar por conta própria usando numpy. Enfatizou que é possível começar com abstrações poderosas e depois removê-las gradualmente para entender completamente o sistema

  • Foi compartilhado um projeto usando um notebook do Google Colab que leva cerca de 2 horas em uma GPU A100. Foi mencionado que também pode funcionar em uma conta gratuita

  • Foi explicado que existem vários projetos no GitHub, como o nanoGPT de Andrej Karpathy, e também outros projetos com MoE implementado

  • Um usuário perguntou se é possível treinar um modelo específico em um conjunto de dados específico e testar os resultados. Mencionou que está procurando um projeto open source, quer saber se GPU está disponível e deseja um contêiner Docker que possa ser substituído por CPU

  • Outro usuário compartilhou sua experiência de implementação usando seu próprio tokenizador multicanal. Comentou que o nome do protagonista se repete com frequência, o que o faz suspeitar de um bug

  • Om Alve agradeceu, dizendo que a publicação viralizou e que isso fez o esforço valer a pena

  • Foi comentado que é interessante que a tecnologia possa ser implementada em algumas centenas de linhas de código. Foi sugerido tentar adivinhar quantas linhas de código têm os modelos de ponta

  • Foi mencionado que não tem relação com o SmolLM, e foi compartilhado um link para o blog da HuggingFace

  • Foi perguntado se alguém poderia compartilhar exemplos do conjunto de dados de treinamento e casos de uso