Este repositório contém o código para desenvolver, pré-treinar e ajustar um LLM semelhante ao GPT e é o repositório de código oficial do livro Build a Large Language Model (From Scratch).
Em Construir um modelo de linguagem grande (do zero) , você aprenderá e compreenderá como os modelos de linguagem grandes (LLMs) funcionam de dentro para fora, codificando-os do zero, passo a passo. Neste livro, orientarei você na criação de seu próprio LLM, explicando cada etapa com texto claro, diagramas e exemplos.
O método descrito neste livro para treinar e desenvolver seu próprio modelo pequeno, mas funcional, para fins educacionais, reflete a abordagem usada na criação de modelos fundamentais em larga escala, como aqueles por trás do ChatGPT. Além disso, este livro inclui código para carregar os pesos de modelos pré-treinados maiores para ajuste fino.
Para baixar uma cópia deste repositório, clique no botão Baixar ZIP ou execute o seguinte comando em seu terminal:
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
(Se você baixou o pacote de código do site Manning, considere visitar o repositório de código oficial no GitHub em https://github.com/rasbt/LLMs-from-scratch para obter as atualizações mais recentes.)
Observe que este arquivo README.md
é um arquivo Markdown ( .md
). Se você baixou este pacote de código do site da Manning e o está visualizando em seu computador local, recomendo usar um editor ou visualizador Markdown para uma visualização adequada. Se você ainda não instalou um editor Markdown, MarkText é uma boa opção gratuita.
Como alternativa, você pode visualizar este e outros arquivos no GitHub em https://github.com/rasbt/LLMs-from-scratch em seu navegador, que renderiza o Markdown automaticamente.
Dica
Se você está procurando orientação sobre como instalar pacotes Python e Python e configurar seu ambiente de código, sugiro a leitura do arquivo README.md localizado no diretório setup.
Título do capítulo | Código Principal (para acesso rápido) | Todo o Código + Suplementar |
---|---|---|
Recomendações de configuração | - | - |
Capítulo 1: Compreendendo grandes modelos de linguagem | Sem código | - |
Capítulo 2: Trabalhando com dados de texto | -ch02.ipynb - dataloader.ipynb (resumo) - soluções de exercício.ipynb | ./ch02 |
Capítulo 3: Mecanismos de Atenção de Codificação | -ch03.ipynb - multihead-attention.ipynb (resumo) - soluções de exercício.ipynb | ./ch03 |
Capítulo 4: Implementando um modelo GPT do zero | -ch04.ipynb - gpt.py (resumo) - soluções de exercício.ipynb | ./ch04 |
Capítulo 5: Pré-treinamento em dados não rotulados | -ch05.ipynb - gpt_train.py (resumo) - gpt_generate.py (resumo) - soluções de exercício.ipynb | ./ch05 |
Capítulo 6: Ajuste fino para classificação de texto | -ch06.ipynb -gpt_class_finetune.py - soluções de exercício.ipynb | ./ch06 |
Capítulo 7: Ajuste fino para seguir as instruções | -ch07.ipynb - gpt_instruction_finetuning.py (resumo) - ollama_evaluate.py (resumo) - soluções de exercício.ipynb | ./ch07 |
Apêndice A: Introdução ao PyTorch | - código-part1.ipynb - código-part2.ipynb - DDP-script.py - soluções de exercício.ipynb | ./apêndice-A |
Apêndice B: Referências e leituras adicionais | Sem código | - |
Apêndice C: Soluções para exercícios | Sem código | - |
Apêndice D: Adicionando sinos e assobios ao ciclo de treinamento | - apêndice-D.ipynb | ./apêndice-D |
Apêndice E: Ajuste fino com parâmetros eficientes com LoRA | - apêndice-E.ipynb | ./apêndice-E |
O modelo mental abaixo resume o conteúdo abordado neste livro.
O código nos capítulos principais deste livro foi projetado para ser executado em laptops convencionais dentro de um prazo razoável e não requer hardware especializado. Essa abordagem garante que um público amplo possa se envolver com o material. Além disso, o código utiliza GPUs automaticamente, se estiverem disponíveis. (Consulte o documento de configuração para recomendações adicionais.)
Várias pastas contêm materiais opcionais como bônus para leitores interessados:
Agradeço todos os tipos de comentários, melhor compartilhados através do Fórum Manning ou Discussões do GitHub. Da mesma forma, se você tiver alguma dúvida ou apenas quiser trocar ideias com outras pessoas, não hesite em publicá-las também no fórum.
Observe que, como este repositório contém o código correspondente a um livro impresso, atualmente não posso aceitar contribuições que estendam o conteúdo do código do capítulo principal, pois introduziriam desvios do livro físico. Mantê-lo consistente ajuda a garantir uma experiência tranquila para todos.
Se você achar este livro ou código útil para sua pesquisa, considere citá-lo.
Citação no estilo Chicago:
Raschka, Sebastian. Construa um grande modelo de linguagem (do zero) . Manning, 2024. ISBN: 978-1633437166.
Entrada 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}
}