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.
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
- Exemplo:
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:
- Compreender os fundamentos dos LLMs
- Processamento de dados de texto
- Mecanismos de atenção
- Implementação da arquitetura GPT
- Técnicas de pré-treinamento
- Métodos de ajuste fino
- Implantação em aplicações práticas
Recomendações de Estudo
- Iniciantes: Comecem pelo Capítulo 1, estudem em ordem e completem os exercícios de cada capítulo
- Com Conhecimento Prévio: Podem pular capítulos familiares e focar em tópicos específicos
- Praticantes: Usem os materiais bônus para explorar tópicos avançados
- Pesquisadores: Consultem o formato de citação para referenciar este recurso em suas pesquisas
Comunidade e Suporte
Canais de Feedback
- 💬 Fórum Manning: Fórum oficial
- 💭 GitHub Discussions: Área de discussão
- 🤝 Todas as formas de feedback, perguntas e troca de ideias são bem-vindas
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
- 📖 Repositório GitHub: https://github.com/rasbt/LLMs-from-scratch
- 🛒 Editora Manning: http://mng.bz/orYv
- 🛒 Comprar na Amazon: https://www.amazon.com/gp/product/1633437167
- 📹 Curso em Vídeo: https://www.manning.com/livevideo/master-and-build-large-language-models
- 🧠 Continuação do Modelo de Raciocínio: https://github.com/rasbt/reasoning-from-scratch
- 📄 Documentação de Configuração: setup/README.md
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.