Esse repositório contém o código para o desenvolvimento, pré-treinamento e fino de um LLM do tipo GPT e é o repositório oficial de código para o livro Construir um modelo de idioma grande (do zero).
No Build um grande modelo de idioma (do zero) , você aprenderá e entenderá como os grandes modelos de idiomas (LLMS) funcionam de dentro para fora, codificando -os desde o início, passo a passo. Neste livro, vou guiá -lo pela criação de seu próprio LLM, explicando cada estágio com texto claro, diagramas e exemplos.
O método descrito neste livro para treinar e desenvolver seu próprio modelo pequeno, porém-funcional, para fins educacionais reflete a abordagem usada na criação de modelos fundamentais em larga escala, como os por trás do ChatGPT. Além disso, este livro inclui código para carregar os pesos de modelos maiores pré -traidos para o Finetuning.
Para baixar uma cópia deste repositório, clique no botão Zip Download ou execute o seguinte comando em seu terminal:
git clone --depth 1 https://github.com/ranpy13/Learning-LLM.git(Se você baixou o pacote de código do site de Manning, considere visitar o repositório oficial de código no Github em https://github.com/ranpy13/learning-llm para obter as últimas atualizações.)
Observe que este arquivo README.md é um arquivo markdown ( .md ). Se você baixou este pacote de código no site de Manning e o está visualizando no computador local, recomendo usar um editor ou visualizador de marcação para visualização adequada. Se você ainda não instalou um editor de marcação, o MarkText é uma boa opção gratuita.
Como alternativa, você pode visualizar este e outros arquivos no github em https://github.com/ranpy13/learning-llm no seu navegador, o que renderiza o Markdown automaticamente.
Dica
Se você está buscando orientações sobre como instalar pacotes Python e Python e configurar seu ambiente de código, sugiro ler o arquivo readme.md localizado no diretório de configuração.
| Título do capítulo | Código principal (para acesso rápido) | Todo o código + suplementar |
|---|---|---|
| Recomendações de configuração | - | - |
| Ch 1: Compreendendo modelos de linguagem grandes | Sem código | - |
| Ch 2: Trabalhando com dados de texto | - CH02.IPYNB - Dataloader.ipynb (resumo) - Exercício-solutions.ipynb | ./ch02 |
| Ch 3: mecanismos de atenção de codificação | - CH03.IPYNB - Multihead-attention.ipynb (resumo) - Exercício-solutions.ipynb | ./ch03 |
| Ch 4: implementando um modelo GPT do zero | - CH04.IPYNB - Gpt.py (resumo) - Exercício-solutions.ipynb | ./ch04 |
| CH 5: Pré -treinamento em dados não marcados | - CH05.IPYNB - gpt_train.py (resumo) - GPT_Generate.py (resumo) - Exercício-solutions.ipynb | ./ch05 |
| Ch 6: Finetuning para classificação de texto | - CH06.IPYNB - gpt_class_fineTune.py - Exercício-solutions.ipynb | ./ch06 |
| Ch 7: Finetuning para seguir as instruções | - CH07.IPYNB - gpt_instruction_finetuning.py (resumo) - ollama_evaluate.py (resumo) - Exercício-solutions.ipynb | ./ch07 |
| Apêndice A: Introdução ao Pytorch | - código-parte1.ipynb - Code-PART2.ipynb - ddp-script.py - Exercício-solutions.ipynb | ./Apêndice-a |
| Apêndice B: Referências e leitura adicional | Sem código | - |
| Apêndice C: soluções de exercícios | Sem código | - |
| Apêndice D: Adicionando sinos e assobios ao loop de treinamento | - Apêndice-d.ipynb | ./Apêndice-d |
| Apêndice E: Finetuning com eficiência de parâmetros com Lora | - Apêndice-e.ipynb | ./Apêndice-e |
O modelo mental abaixo resume o conteúdo coberto neste livro.
O código nos principais capítulos 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 amplo público possa se envolver com o material. Além disso, o código utiliza automaticamente as GPUs se estiverem disponíveis. (Consulte o documento de configuração para obter recomendações adicionais.)
Várias pastas contêm materiais opcionais como um bônus para os leitores interessados:
Congratulo -me com todo tipo de feedback, melhor compartilhado através do Fórum Manning ou das discussões do Github. Da mesma forma, se você tiver alguma dúvida ou apenas quiser superar as idéias de outras pessoas, não hesite em publicá -las no fórum também.
Observe que, como este repositório contém o código correspondente a um livro de impressão, atualmente não posso aceitar contribuições que estenderiam o conteúdo do código principal do capítulo, pois ele introduziria desvios do livro físico. Mantê -lo consistente ajuda a garantir uma experiência suave para todos.
Se você achar este livro ou código útil para sua pesquisa, considere citá -lo.
Citação no estilo de Chicago:
Raschka, Sebastian. Crie um modelo de linguagem grande (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/ranpy13/Learning-LLM}
}