Nenhuma descrição

Sebastian Raschka 1b635f760e fix misplaced parenthesis and update license (#466) 10 meses atrás
.github ccade77bf4 Add flexible padding bonus experiment (#438) 1 ano atrás
appendix-A 75133605c5 Set sampler in DDP example 1 ano atrás
appendix-D 9ce0be333b potential little fixes `appendix-D4 .ipynb` (#427) 1 ano atrás
appendix-E 9de277421e consistent header for appendix E 1 ano atrás
ch01 b6c4b2f9f1 Update bonus section formatting (#400) 1 ano atrás
ch02 1f61aeb7c4 Note about SSL certificates (#404) 1 ano atrás
ch03 1183fd7837 add dropout scaling note 1 ano atrás
ch04 b6c4b2f9f1 Update bonus section formatting (#400) 1 ano atrás
ch05 1b635f760e fix misplaced parenthesis and update license (#466) 10 meses atrás
ch06 e95c898545 Fixed command for row 16 additional experiment (#439) 1 ano atrás
ch07 f4ed263847 Add "What's next" section (#432) 1 ano atrás
setup ef4018181e updates for PyTorch 2.5 (#408) 1 ano atrás
.gitignore 81eed9afe2 updated RoPE statement (#423) 1 ano atrás
CITATION.cff ba3137fa2c Update CITATION.cff 1 ano atrás
LICENSE.txt 1b635f760e fix misplaced parenthesis and update license (#466) 10 meses atrás
README.md 27a6a7e64a Add chapter names 1 ano atrás
requirements.txt 1db1999951 minor fixes (#248) 1 ano atrás

README.md

Build a Large Language Model (From Scratch)

This repository contains the code for developing, pretraining, and finetuning a GPT-like LLM and is the official code repository for the book Build a Large Language Model (From Scratch).




In Build a Large Language Model (From Scratch), you'll learn and understand how large language models (LLMs) work from the inside out by coding them from the ground up, step by step. In this book, I'll guide you through creating your own LLM, explaining each stage with clear text, diagrams, and examples.

The method described in this book for training and developing your own small-but-functional model for educational purposes mirrors the approach used in creating large-scale foundational models such as those behind ChatGPT. In addition, this book includes code for loading the weights of larger pretrained models for finetuning.



To download a copy of this repository, click on the Download ZIP button or execute the following command in your terminal:

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


(If you downloaded the code bundle from the Manning website, please consider visiting the official code repository on GitHub at https://github.com/rasbt/LLMs-from-scratch for the latest updates.)



Table of Contents

Please note that this README.md file is a Markdown (.md) file. If you have downloaded this code bundle from the Manning website and are viewing it on your local computer, I recommend using a Markdown editor or previewer for proper viewing. If you haven't installed a Markdown editor yet, MarkText is a good free option.

You can alternatively view this and other files on GitHub at https://github.com/rasbt/LLMs-from-scratch in your browser, which renders Markdown automatically.



[!TIP] If you're seeking guidance on installing Python and Python packages and setting up your code environment, I suggest reading the README.md file located in the setup directory.



Code tests (Linux) Code tests (Windows) Code tests (macOS)


Chapter Title Main Code (for Quick Access) All Code + Supplementary
Setup recommendations - -
Ch 1: Understanding Large Language Models No code -
Ch 2: Working with Text Data - ch02.ipynb
- dataloader.ipynb (summary)
- exercise-solutions.ipynb
./ch02
Ch 3: Coding Attention Mechanisms - ch03.ipynb
- multihead-attention.ipynb (summary)
- exercise-solutions.ipynb
./ch03
Ch 4: Implementing a GPT Model from Scratch - ch04.ipynb
- gpt.py (summary)
- exercise-solutions.ipynb
./ch04
Ch 5: Pretraining on Unlabeled Data - ch05.ipynb
- gpt_train.py (summary)
- gpt_generate.py (summary)
- exercise-solutions.ipynb
./ch05
Ch 6: Finetuning for Text Classification - ch06.ipynb
- gpt_class_finetune.py
- exercise-solutions.ipynb
./ch06
Ch 7: Finetuning to Follow Instructions - ch07.ipynb
- gpt_instruction_finetuning.py (summary)
- ollama_evaluate.py (summary)
- exercise-solutions.ipynb
./ch07
Appendix A: Introduction to PyTorch - code-part1.ipynb
- code-part2.ipynb
- DDP-script.py
- exercise-solutions.ipynb
./appendix-A
Appendix B: References and Further Reading No code -
Appendix C: Exercise Solutions No code -
Appendix D: Adding Bells and Whistles to the Training Loop - appendix-D.ipynb ./appendix-D
Appendix E: Parameter-efficient Finetuning with LoRA - appendix-E.ipynb ./appendix-E


 

The mental model below summarizes the contents covered in this book.


 

Hardware Requirements

The code in the main chapters of this book is designed to run on conventional laptops within a reasonable timeframe and does not require specialized hardware. This approach ensures that a wide audience can engage with the material. Additionally, the code automatically utilizes GPUs if they are available. (Please see the setup doc for additional recommendations.)

 

Bonus Material

Several folders contain optional materials as a bonus for interested readers:


 

Questions, Feedback, and Contributing to This Repository

I welcome all sorts of feedback, best shared via the Manning Forum or GitHub Discussions. Likewise, if you have any questions or just want to bounce ideas off others, please don't hesitate to post these in the forum as well.

Please note that since this repository contains the code corresponding to a print book, I currently cannot accept contributions that would extend the contents of the main chapter code, as it would introduce deviations from the physical book. Keeping it consistent helps ensure a smooth experience for everyone.

 

Citation

If you find this book or code useful for your research, please consider citing it.

Chicago-style citation:

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

BibTeX entry:

@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}
}