- rasbt/LLMs-from-scratch는 GPT와 유사한 LLM을 개발, 사전학습, 파인튜닝하는 코드를 담은 저장소이며, Manning 책 Build a Large Language Model (From Scratch) 의 공식 코드 저장소임
- 학습 방식은 교육 목적의 작지만 동작하는 모델을 처음부터 만드는 과정으로 구성되며, ChatGPT 뒤의 대규모 기반 모델을 만드는 접근 방식과 유사한 흐름을 따름
- 본문은 텍스트 데이터 처리, 어텐션 메커니즘, GPT 구현, 비라벨 데이터 사전학습, 텍스트 분류 파인튜닝, 명령어 추종 파인튜닝까지 장별 코드와 노트북을 제공함
- 주요 장의 코드는 일반 노트북에서 합리적인 시간 안에 실행되도록 설계됐고, 사용 가능한 경우 GPU를 자동 활용하며, 외부 LLM 라이브러리 없이 PyTorch로 구현함
- 부록과 보너스 자료는 LoRA, KV Cache, MoE, Llama/Qwen/Gemma 계열 구현, 평가, DPO, UI 예제까지 확장되어 LLM 학습 과정을 실습 중심으로 넓힐 수 있음
저장소의 목적과 책과의 관계
설치와 코드 사용
- 저장소는 ZIP 다운로드 또는
git clone으로 받을 수 있음
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
장별 학습 흐름
- 책과 저장소는 LLM 구현을 단계적 커리큘럼으로 나눔
- 주요 장 구성:
- Ch 1: LLM 이해, 코드 없음
- Ch 2: 텍스트 데이터 다루기
- Ch 3: 어텐션 메커니즘 구현
- Ch 4: GPT 모델을 처음부터 구현
- Ch 5: 비라벨 데이터로 사전학습
- Ch 6: 텍스트 분류용 파인튜닝
- Ch 7: 명령어 추종 파인튜닝
- 부록은 PyTorch 소개, 참고문헌, 연습문제 해답, 학습 루프 개선, LoRA 기반 파라미터 효율 파인튜닝을 포함함
선수 지식과 실행 환경
- 가장 중요한 선수 지식은 Python 프로그래밍 기초임
- 딥러닝 신경망 경험이 있으면 일부 개념이 더 익숙할 수 있음
- 코드는 외부 LLM 라이브러리 없이 PyTorch로 처음부터 구현됨
- PyTorch 숙련이 필수는 아님
- PyTorch 기초 지식은 도움이 됨
- Appendix A가 PyTorch의 간단한 소개를 제공함
- 주요 장의 코드는 일반 노트북에서 합리적인 시간 안에 실행되도록 설계됨
- 특수 하드웨어는 필요하지 않으며, GPU가 있으면 자동으로 사용함
영상 강의와 후속 책
연습문제와 보너스 자료
- 각 장에는 여러 연습문제가 포함됨
- 해답은 Appendix C에 요약되어 있고, 대응하는 코드 노트북은 각 장 폴더에 있음
- Manning 웹사이트에서 무료 170페이지 PDF Test Yourself On Build a Large Language Model (From Scratch)를 받을 수 있음
-
주요 보너스 주제
- Setup:
- Python 설정 팁
- 패키지와 라이브러리 설치
- Docker 환경 설정
- Ch 2:
- BPE 토크나이저를 처음부터 구현
- 여러 BPE 구현 비교
- 임베딩 레이어와 선형 레이어 차이
- 간단한 숫자로 보는 dataloader 직관
- Ch 3:
- 효율적인 multi-head attention 구현 비교
- PyTorch buffers 이해
- Ch 4:
- FLOPs 분석
- KV Cache
- Grouped-Query Attention, Multi-Head Latent Attention, Sliding Window Attention
- Gated DeltaNet, DeepSeek Sparse Attention, Cross-Layer KV Sharing
- Mixture-of-Experts
- Ch 5:
- 대체 가중치 로딩 방식
- Project Gutenberg 데이터셋 사전학습
- 학습 루프 개선
- 하이퍼파라미터 최적화
- 사전학습 LLM과 상호작용하는 UI
- GPT를 Llama로 변환
- 메모리 효율적인 모델 가중치 로딩
- Tiktoken BPE 토크나이저 확장
- 빠른 LLM 학습을 위한 PyTorch 성능 팁
- Llama 3.2, Qwen3, Gemma 3, Olmo 3, Tiny Aya, Qwen3.5, Gemma 4 구현
- Ch 6:
- 다른 레이어와 더 큰 모델을 파인튜닝하는 추가 실험
- 50k IMDb 영화 리뷰 데이터셋 분류 파인튜닝
- GPT 기반 스팸 분류기 UI
- Ch 7:
- 근접 중복 탐지와 수동태 항목 생성을 위한 데이터셋 유틸리티
- OpenAI API와 Ollama를 이용한 명령어 응답 평가
- 명령어 파인튜닝 데이터셋 생성과 개선
- Llama 3.1 70B와 Ollama로 preference dataset 생성
- DPO로 LLM 정렬 구현
- 명령어 파인튜닝된 GPT 모델 UI
기여와 인용
- 피드백과 질문은 Manning Forum 또는 GitHub Discussions에서 받음
- 인쇄 책과 대응되는 코드 저장소라서, 현재는 main chapter code의 내용을 확장하는 기여를 받을 수 없음
- 물리 책과 코드 간 차이를 만들지 않기 위한 제한임
- 연구에 책이나 코드가 유용한 경우 인용을 권장함
- Chicago-style citation과 BibTeX 항목이 제공됨