Quarta Etapa: Aprendizado Profundo e Redes Neurais

Um tutorial completo para construir um modelo de linguagem grande do zero, implementando a arquitetura GPT passo a passo com PyTorch, incluindo a prática de todo o processo de pré-treinamento, ajuste fino e implantação.

LLMTransformerPyTorchGitHubTextFreeEnglish

Descrição Detalhada do Curso LLMs-from-scratch

Visão Geral do Projeto

LLMs-from-scratch é um recurso de aprendizagem abrangente criado por Sebastian Raschka, com o objetivo de ensinar como construir Grandes Modelos de Linguagem (LLMs) do zero. Este projeto é o repositório de código oficial do livro "Build a Large Language Model (From Scratch)".

Características Principais

📚 Objetivos de Aprendizagem

  • Compreender o funcionamento interno dos Grandes Modelos de Linguagem
  • Construir seu próprio LLM passo a passo através da codificação
  • Aprender os métodos de treinamento e desenvolvimento dos modelos fundamentais por trás de tecnologias como o ChatGPT
  • Dominar as técnicas de carregamento e ajuste fino de pesos de modelos pré-treinados

🎯 Metodologia de Ensino

  • Codificação do Zero: Implementação do zero usando PyTorch, sem depender de bibliotecas LLM externas
  • Passo a Passo: Cada etapa é explicada com texto claro, diagramas e exemplos
  • Altamente Prático: Criação de modelos educacionais pequenos, mas totalmente funcionais
  • Recursos Complementares Abundantes: Inclui 17 horas e 15 minutos de curso em vídeo

Estrutura do Curso

Conteúdo dos Capítulos

Capítulo 1: Compreendendo os Grandes Modelos de Linguagem (Understanding large language models)

  • Introdução aos conceitos básicos de LLM
  • Visão geral da arquitetura do modelo

Capítulo 2: Trabalhando com Dados de Texto (Working with text data)

  • Código principal: ch02.ipynb, dataloader.ipynb
  • Pré-processamento de texto e carregamento de dados
  • Soluções dos exercícios: exercise-solutions.ipynb

Capítulo 3: Codificando Mecanismos de Atenção (Coding attention mechanisms)

  • Código principal: ch03.ipynb, multihead-attention.ipynb
  • Implementação do mecanismo de autoatenção
  • Detalhes do mecanismo de atenção multi-cabeça

Capítulo 4: Implementando um Modelo GPT do Zero (Implementing a GPT model from scratch)

  • Código principal: ch04.ipynb, gpt.py
  • Implementação completa da arquitetura GPT
  • Explicação detalhada dos componentes do modelo

Capítulo 5: Pré-treinamento em Dados Não Rotulados (Pretraining on unlabeled data)

  • Código principal: ch05.ipynb, gpt_train.py, gpt_generate.py
  • Fluxo de pré-treinamento
  • Implementação de geração de texto

Capítulo 6: Ajuste Fino para Tarefas de Classificação (Finetuning for classification)

  • Código principal: ch06.ipynb, gpt_class_finetune.py
  • Ajuste do modelo para tarefas de classificação específicas
  • Técnicas e estratégias de ajuste fino

Capítulo 7: Ajuste Fino para Seguir Instruções (Finetuning to follow instructions)

  • Código principal: ch07.ipynb, gpt_instruction_finetuning.py
  • Métodos de ajuste fino de instruções
  • Avaliação do modelo: ollama_evaluate.py

Conteúdo dos Apêndices

Apêndice A: Introdução ao PyTorch

  • Código: code-part1.ipynb, code-part2.ipynb
  • Treinamento paralelo de dados distribuídos: DDP-script.py
  • Início rápido dos fundamentos do PyTorch

Apêndices B-E

  • Apêndice B: Referências e Leitura Adicional
  • Apêndice C: Resumo das Respostas dos Exercícios
  • Apêndice D: Adicionando Funcionalidades Extras
  • Apêndice E: Ajuste Fino Eficiente em Parâmetros

Materiais Bônus (Bonus Materials)

Recursos Adicionais do Capítulo 5

  • Métodos Alternativos de Carregamento de Pesos: Diferentes técnicas de carregamento de pesos de modelo
  • Pré-treinamento com o Conjunto de Dados Project Gutenberg: Treinamento em grandes corpora de texto
  • Otimização do Loop de Treinamento: Adição de várias funcionalidades de melhoria
  • Agendadores de Taxa de Aprendizagem: Otimização do processo de treinamento
  • Ajuste de Hiperparâmetros: Otimização de hiperparâmetros de pré-treinamento
  • Construção de Interface de Usuário: UI para interagir com LLMs pré-treinados
  • Conversão de Modelo:
    • GPT para Llama
    • Llama 3.2 implementado do zero
    • Qwen3 denso e Modelos de Mistura de Especialistas (MoE)
    • Gemma 3 implementado do zero
  • Carregamento de Pesos Eficiente em Memória: Otimização do carregamento do modelo
  • Extensão do Tokenizador Tiktoken BPE: Adição de novos tokens
  • Dicas de Otimização de Desempenho do PyTorch: Acelerar o treinamento de LLMs

Recursos Adicionais do Capítulo 6

  • Técnicas avançadas de ajuste fino para classificação

Recursos Adicionais do Capítulo 7

  • Ferramentas de Conjunto de Dados: Encontrar duplicatas aproximadas e criar entradas de voz passiva
  • Avaliação de Respostas: Avaliar respostas de instruções usando a API OpenAI e Ollama
  • Geração de Conjunto de Dados: Gerar conjuntos de dados para ajuste fino de instruções
  • Melhoria de Conjunto de Dados: Melhorar a qualidade dos conjuntos de dados de ajuste fino de instruções
  • Geração de Conjunto de Dados de Preferência: Usando Llama 3.1 70B e Ollama
  • Alinhamento DPO: Implementação de Otimização Direta de Preferência (Direct Preference Optimization)
  • Interface de Usuário: Interagir com modelos GPT ajustados para instruções

Recursos do Modelo de Inferência (do repositório reasoning-from-scratch)

  • Fundamentos do Qwen3
  • Métodos de avaliação de modelo

Requisitos Técnicos

Conhecimento Prévio

  • Essencial: Forte base em programação Python
  • Útil: Conhecimento básico de redes neurais profundas
  • Útil: Fundamentos de PyTorch (Apêndice A oferece um início rápido)

Requisitos de Hardware

  • 💻 Laptop comum é suficiente: O código dos capítulos principais foi projetado para rodar em laptops comuns
  • 🚀 Aceleração automática por GPU: Se disponível, o código usará automaticamente a GPU
  • Nenhum hardware dedicado necessário: Garante que um público amplo possa aprender

Ambiente de Software

  • Python 3.x
  • PyTorch
  • Outras dependências detalhadas no diretório setup

Recursos Complementares

Curso em Vídeo

  • 📹 Curso em vídeo completo de 17 horas e 15 minutos
  • Demonstrações de codificação capítulo a capítulo
  • Pode ser usado como recurso de estudo independente ou em conjunto com o livro
  • Plataforma Manning: Master and Build Large Language Models

Livro de Continuação

"Build A Reasoning Model (From Scratch)"

  • Pode ser considerado uma sequência
  • Começa com modelos pré-treinados
  • Implementa diferentes métodos de raciocínio:
    • Expansão do tempo de inferência
    • Aprendizagem por reforço
    • Técnicas de destilação
  • Melhora a capacidade de raciocínio do modelo
  • Repositório GitHub: reasoning-from-scratch

Recursos de Teste

PDF gratuito de 170 páginas: "Test Yourself On Build a Large Language Model (From Scratch)"

  • Cerca de 30 questões de quiz e respostas por capítulo
  • Ajuda a testar o nível de compreensão
  • Download gratuito no site da Manning

Soluções dos Exercícios

  • Cada capítulo contém vários exercícios
  • As soluções são compiladas no Apêndice C
  • Os notebooks de código correspondentes estão nas pastas de cada capítulo
    • Exemplo: ./ch02/01_main-chapter-code/exercise-solutions.ipynb

Aquisição do Projeto

Métodos de Download

Método 1: Download Direto do ZIP

# Clique no botão Download ZIP na página do GitHub

Método 2: Clonagem Git

git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git

Organização do Código

  • Cada capítulo tem uma pasta independente: ch02/, ch03/, etc.
  • O código principal está na subpasta 01_main-chapter-code/
  • Recursos adicionais estão nas pastas numeradas correspondentes

Sugestões de Caminho de Aprendizagem

Modelo Mental

O livro oferece um mapa mental claro que resume todo o conteúdo abordado:

  1. Compreender os fundamentos dos LLMs
  2. Processamento de dados de texto
  3. Mecanismos de atenção
  4. Implementação da arquitetura GPT
  5. Técnicas de pré-treinamento
  6. Métodos de ajuste fino
  7. Implantação em aplicações práticas

Recomendações de Estudo

  1. Iniciantes: Comecem pelo Capítulo 1, estudem em ordem e completem os exercícios de cada capítulo
  2. Com Conhecimento Prévio: Podem pular capítulos familiares e focar em tópicos específicos
  3. Praticantes: Usem os materiais bônus para explorar tópicos avançados
  4. Pesquisadores: Consultem o formato de citação para referenciar este recurso em suas pesquisas

Comunidade e Suporte

Canais de Feedback

Orientações para Contribuição

  • Devido à correspondência com o livro impresso, o código dos capítulos principais mantém a consistência
  • Atualmente, não são aceitas contribuições que expandam o conteúdo dos capítulos principais
  • Garante a consistência com o conteúdo do livro físico e oferece uma experiência de aprendizado fluida

Informações de Citação

Formato Chicago

Raschka, Sebastian. Build A Large Language Model (From Scratch). Manning, 2024. ISBN: 978-1633437166.

Formato BibTeX

@book{build-llms-from-scratch-book,
  author = {Sebastian Raschka},
  title = {Build A Large Language Model (From Scratch)},
  publisher = {Manning},
  year = {2024},
  isbn = {978-1633437166},
  url = {https://www.manning.com/books/build-a-large-language-model-from-scratch},
  github = {https://github.com/rasbt/LLMs-from-scratch}
}

Links Chave

Resumo

Este é um recurso de aprendizagem de LLM abrangente e sistemático, adequado para:

  • 🎓 Aprendizes que desejam compreender profundamente o funcionamento dos LLMs
  • 👨‍💻 Desenvolvedores que querem implementar modelos tipo GPT na prática
  • 🔬 Pesquisadores em PNL e aprendizado profundo
  • 🚀 Entusiastas de tecnologia interessados em IA e aprendizado de máquina

Através deste projeto, você adquirirá a capacidade completa de construir, treinar e ajustar grandes modelos de linguagem do zero.