rasbt/LLMs-from-scratch
요약
본 저장소는 GPT와 같은 대규모 언어 모델(LLM)을 처음부터 끝까지 직접 개발하고 학습시키는 과정을 담고 있는 공식 코드 저장소입니다. 이 코드는 『Build a Large Language Model (From Scratch)』이라는 책의 내용을 구현하며, 사용자가 LLM의 내부 작동 원리를 깊이 이해할 수 있도록 돕습니다. 단순히 이론만 배우는 것이 아니라, 데이터 처리부터 어텐션 메커니즘 구현, GPT 모델 구축, 사전 학습 및 미세 조정(Finetuning)에 이르는 전 과정을 코드로 직접 경험하게 할 수 있습니다.
핵심 포인트
- LLM의 작동 원리를 이론이 아닌 실제 코드를 통해 처음부터 끝까지 이해할 수 있습니다.
- 데이터 처리, 어텐션 메커니즘 구현, GPT 모델 구축 등 LLM 개발의 핵심 단계를 단계별로 학습합니다.
- 사전 학습(Pretraining)을 통한 기초 모델 생성 방법과 텍스트 분류를 위한 미세 조정(Finetuning) 방법을 모두 다룹니다.
- PyTorch 기반으로 작성되었으며, LoRA와 같은 효율적인 파라미터 적응 기법까지 포함하고 있습니다.
이 저장소에는 GPT와 같은 대규모 언어 모델(LLM)을 개발, 사전 학습 및 미세 조정하는 코드가 포함되어 있으며, 도서 『Build a Large Language Model (From Scratch)』의 공식 코드 저장소입니다.
『Build a Large Language Model (From Scratch)』에서는 대규모 언어 모델(LLMs)이 내부적으로 어떻게 작동하는지 처음부터 끝까지 직접 코딩하며 배우고 이해하게 됩니다. 이 책에서 저는 명확한 텍스트, 다이어그램 및 예시를 통해 자신만의 LLM을 만드는 과정을 안내할 것입니다.
이 책에 설명된 교육 목적으로 작지만 기능적인 모델을 훈련하고 개발하는 방법은 ChatGPT의 기반이 되는 대규모 기초 모델(foundational models)을 만드는 데 사용되는 접근 방식과 유사합니다. 또한, 이 책에는 더 큰 사전 학습 모델의 가중치(weights)를 로드하여 미세 조정할 수 있는 코드도 포함되어 있습니다.
- 공식 소스 코드 저장소 링크
- Manning (출판사 웹사이트)에서 책 링크
- Amazon.com의 도서 페이지 링크
- ISBN 9781633437166
이 저장소를 다운로드하려면 'Download ZIP' 버튼을 클릭하거나 터미널에 다음 명령어를 실행하세요:
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
(Manning 웹사이트에서 코드 번들을 다운로드한 경우, 최신 업데이트를 위해 GitHub의 공식 코드 저장소 https://github.com/rasbt/LLMs-from-scratch 방문을 고려해 주십시오.)
참고로 이 README.md 파일은 Markdown (.md
파일입니다. 만약 이 코드 번들을 Manning 웹사이트에서 다운로드하여 로컬 컴퓨터에서 보고 계시다면, 올바른 확인을 위해 Markdown 에디터나 미리보기 도구를 사용하는 것을 권장합니다. 아직 Markdown 에디터를 설치하지 않았다면, Ghostwriter가 좋은 무료 옵션입니다.
대안으로, 브라우저에서 https://github.com/rasbt/LLMs-from-scratch를 방문하여 이 파일과 다른 파일들을 보는 것도 가능하며, GitHub는 Markdown을 자동으로 렌더링합니다.
팁: Python 및 Python 패키지 설치와 코드 환경 설정을 위한 안내가 필요하다면, setup 디렉터리에 있는 README.md 파일을 읽어보시길 권장합니다.
| Chapter Title | Main Code (빠른 접근용) | All Code + Supplementary |
|---|---|---|
| Setup recommendations How to best read this book | - | - |
| Ch 1: Understanding Large Language Models | No code | - |
| Ch 2: Working with Text Data | - ch02.ipynb - dataloader.ipynb (요약) - exercise-solutions.ipynb | ./ch02 |
| Ch 3: Coding Attention Mechanisms | - ch03.ipynb - multihead-attention.ipynb (요약) - exercise-solutions.ipynb | ./ch03 |
| Ch 4: Implementing a GPT Model from Scratch | - ch04.ipynb - gpt.py (요약) - exercise-solutions.ipynb | ./ch04 |
| Ch 5: Pretraining on Unlabeled Data | - ch05.ipynb - gpt_train.py (요약) - gpt_generate.py (요약) - exercise-solutions.ipynb | ./ch05 |
| Ch 6: Finetuning for Text Classification | - ch06.ipynb - gpt_class_finetune.py - exercise-solutions.ipynb | ./ch06 |
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-B |
| Appendix C: Exercise Solutions | - list of exercise solutions | ./appendix-C |
| 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.
The most important prerequisite is a strong foundation in Python programming. With this knowledge, you will be well prepared to explore the fascinating world of LLMs and understand the concepts and code examples presented in this book.
If you have some experience with deep neural networks, you may find certain concepts more familiar, as LLMs are built upon these architectures.
이 책은 외부 LLM 라이브러리를 사용하지 않고 PyTorch를 사용하여 코드를 처음부터 구현합니다. PyTorch에 능숙할 필요는 없지만, PyTorch 기본 지식이 있으면 확실히 유용합니다. PyTorch가 처음이라면 부록 A에서 PyTorch에 대한 간결한 소개를 얻을 수 있습니다. 또는 제가 쓴 책인 PyTorch in One Hour: From Tensors to Training Neural Networks on Multiple GPUs가 필수 내용을 학습하는 데 도움이 될 수 있습니다.
이 책의 본 장에 있는 코드는 일반 노트북에서도 합리적인 시간 내에 실행되도록 설계되었으며 특수 하드웨어를 요구하지 않습니다. 이러한 접근 방식은 폭넓은 독자들이 자료에 참여할 수 있도록 보장합니다. 또한, 사용 가능한 경우 자동으로 GPU를 활용합니다. (추가 권장 사항은 설정 문서를 참조하십시오.)
이 책의 각 장을 코딩하는 17시간 15분 분량의 동반 비디오 과정이 있습니다. 이 과정은 책의 구조를 반영하여 장과 섹션으로 구성되어 있어, 책의 독립적인 대안이나 보완적인 코드 실습 자료로 사용될 수 있습니다.
*Build A Reasoning Model (From Scratch)*는 단독 책이지만, *Build A Large Language Model (From Scratch)*의 속편으로 간주할 수 있습니다. 이 책은 사전 훈련된 모델로 시작하여 추론 시간 스케일링(inference-time scaling), 강화학습 (RL), 증류(distillation)를 포함한 다양한 추론 접근 방식을 구현하여 모델의 추론 능력을 향상시킵니다.
『Build A Reasoning Model (From Scratch)』는 『Build A Large Language Model (From Scratch)』와 유사하게, 이러한 방법론들을 직접 구현해보는 실습 중심의 접근 방식을 취합니다.
- Amazon 링크 (TBD)
- Manning 링크
- GitHub 저장소
이 책의 각 장에는 여러 연습문제가 포함되어 있습니다. 해답은 부록 C에 요약되어 있으며, 해당 코드 노트북은 이 저장소의 메인 챕터 폴더(예: ./ch02/01_main-chapter-code/exercise-solutions.ipynb)에서 이용할 수 있습니다.
코드 연습문제 외에도, Manning 웹사이트에서 『Test Yourself On Build a Large Language Model (From Scratch)』라는 제목의 무료 170페이지 PDF를 다운로드할 수 있습니다. 이 자료는 각 장별로 약 30개의 퀴즈 질문과 해답을 포함하여 이해도를 점검하는 데 도움을 줍니다.
몇몇 폴더에는 관심 있는 독자들을 위한 보너스 자료가 담겨 있습니다:
Setup -
Chapter 2: Working With Text Data -
Chapter 3: Coding Attention Mechanisms -
Chapter 4: Implementing a GPT Model From Scratch -
Chapter 5: Pretraining on Unlabeled Data-
Alternative Weight Loading Methods
-
Pretraining GPT on the Project Gutenberg Dataset
-
Adding Bells and Whistles to the Training Loop
-
Optimizing Hyperparameters for Pretraining
-
Building a User Interface to Interact With the Pretrained LLM
-
Converting GPT to Llama
-
Memory-efficient Model Weight Loading
-
Extending the Tiktoken BPE Tokenizer with New Tokens
-
PyTorch Performance Tips for Faster LLM Training
-
LLM Architectures
-
Chapter 5 with other LLMs as Drop-In Replacement (e.g., Llama 3, Qwen 3)
Chapter 6: Finetuning for classification -
Chapter 7: Finetuning to follow instructions- Dataset Utilities for Finding Near Duplicates and Creating Passive Voice Entries
- Evaluating Instruction Responses Using the OpenAI API and Ollama
- Generating a Dataset for Instruction Finetuning
- Improving a Dataset for Instruction Finetuning
- Generating a Preference Dataset With Llama 3.1 70B and Ollama
- Direct Preference Optimization (DPO) for LLM Alignment
- Building a User Interface to Interact With the Instruction-Finetuned GPT Model
More bonus material from the Reasoning From Scratch repository:
Qwen3 (From Scratch) Basics -
Evaluation -
Inference Scaling -
강화학습 (RL)
모든 종류의 피드백을 환영하며, Manning 포럼이나 GitHub Discussions를 통해 공유해 주시면 가장 좋습니다. 마찬가지로 궁금한 점이 있거나 다른 사람들과 아이디어를 나누고 싶다면, 포럼에 게시하는 것을 주저하지 마십시오.
참고로, 이 저장소는 출판 도서와 관련된 코드를 포함하고 있으므로, 본 장(main chapter) 코드의 내용을 확장하는 기여는 현재 받을 수 없습니다. 이는 실제 책 내용과 벗어나는 변형을 초래할 수 있기 때문입니다. 일관성을 유지하는 것이 모두에게 원활한 경험을 보장하는 데 도움이 됩니다.
이 책이나 코드가 연구에 유용하다면, 인용해 주시기를 부탁드립니다.
Chicago 스타일 인용:
Raschka, Sebastian.
Build A Large Language Model (From Scratch). Manning, 2024. ISBN: 978-1633437166.
BibTeX 항목:
@book{build-llms-from-scratch-book,
author = {Sebastian Raschka},
title = {Build A Large Language Model (From Scratch)},
...
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending All (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기