4단계: 딥러닝 및 신경망
대규모 언어 모델을 처음부터 구축하는 완벽한 튜토리얼입니다. PyTorch를 통해 GPT 아키텍처를 단계별로 구현하며, 사전 훈련, 미세 조정 및 배포의 전체 프로세스를 포함합니다.
LLMs-from-scratch 강의 상세 소개
프로젝트 개요
LLMs-from-scratch는 Sebastian Raschka가 만든 포괄적인 학습 자료로, 거대 언어 모델(LLM)을 밑바닥부터 구축하는 방법을 가르치는 것을 목표로 합니다. 이 프로젝트는 『Build a Large Language Model (From Scratch)』 서적의 공식 코드 저장소입니다.
핵심 특징
📚 학습 목표
- 거대 언어 모델의 작동 원리를 내부부터 이해합니다.
- 코딩을 통해 단계별로 자신만의 LLM을 구축합니다.
- ChatGPT와 유사한 기본 모델의 학습 및 개발 방법을 배웁니다.
- 사전 학습된 모델 가중치를 로드하고 미세 조정하는 기술을 습득합니다.
🎯 교육 방법
- 밑바닥부터 코딩: 외부 LLM 라이브러리에 의존하지 않고 PyTorch를 사용하여 처음부터 구현합니다.
- 단계별 학습: 각 단계마다 명확한 텍스트, 다이어그램 및 예시 설명이 제공됩니다.
- 실용성 강조: 작지만 완벽하게 작동하는 교육용 모델을 만듭니다.
- 풍부한 보조 자료: 17시간 15분 분량의 비디오 강의가 포함되어 있습니다.
강의 구성
챕터별 내용
챕터 1: 거대 언어 모델 이해하기 (Understanding large language models)
- LLM 기본 개념 소개
- 모델 아키텍처 개요
챕터 2: 텍스트 데이터 다루기 (Working with text data)
- 주요 코드:
ch02.ipynb,dataloader.ipynb - 텍스트 전처리 및 데이터 로딩
- 연습 문제 해답:
exercise-solutions.ipynb
챕터 3: 어텐션 메커니즘 코딩하기 (Coding attention mechanisms)
- 주요 코드:
ch03.ipynb,multihead-attention.ipynb - 셀프 어텐션 메커니즘 구현
- 멀티 헤드 어텐션 메커니즘 상세 설명
챕터 4: GPT 모델 밑바닥부터 구현하기 (Implementing a GPT model from scratch)
- 주요 코드:
ch04.ipynb,gpt.py - 완전한 GPT 아키텍처 구현
- 모델 구성 요소 상세 설명
챕터 5: 레이블 없는 데이터로 사전 학습하기 (Pretraining on unlabeled data)
- 주요 코드:
ch05.ipynb,gpt_train.py,gpt_generate.py - 사전 학습 프로세스
- 텍스트 생성 구현
챕터 6: 분류 작업을 위한 미세 조정 (Finetuning for classification)
- 주요 코드:
ch06.ipynb,gpt_class_finetune.py - 특정 분류 작업을 위한 모델 조정
- 미세 조정 기술 및 전략
챕터 7: 지시 따르기 위한 미세 조정 (Finetuning to follow instructions)
- 주요 코드:
ch07.ipynb,gpt_instruction_finetuning.py - 지시 미세 조정 방법
- 모델 평가:
ollama_evaluate.py
부록 내용
부록 A: PyTorch 소개
- 코드:
code-part1.ipynb,code-part2.ipynb - 분산 데이터 병렬 학습:
DDP-script.py - PyTorch 기본 사항 빠른 시작
부록 B-E
- 부록 B: 참고 자료 및 추가 읽을거리
- 부록 C: 연습 문제 해답 요약
- 부록 D: 추가 기능 추가
- 부록 E: 파라미터 효율적인 미세 조정
보너스 자료 (Bonus Materials)
챕터 5 추가 자료
- 대체 가중치 로딩 방법: 다양한 모델 가중치 로딩 기술
- 프로젝트 구텐베르크 데이터셋 사전 학습: 대규모 텍스트 코퍼스에서 학습
- 학습 루프 최적화: 다양한 개선 기능 추가
- 학습률 스케줄러: 학습 프로세스 최적화
- 하이퍼파라미터 튜닝: 사전 학습 하이퍼파라미터 최적화
- 사용자 인터페이스 구축: 사전 학습된 LLM과 상호작용하는 UI
- 모델 변환:
- GPT를 Llama로 변환
- Llama 3.2 밑바닥부터 구현
- Qwen3 밀집형 및 MoE(혼합 전문가 모델)
- Gemma 3 밑바닥부터 구현
- 메모리 효율적인 가중치 로딩: 모델 로딩 최적화
- Tiktoken BPE 토크나이저 확장: 새로운 토큰 추가
- PyTorch 성능 최적화 팁: LLM 학습 가속화
챕터 6 추가 자료
- 분류 미세 조정의 고급 기술
챕터 7 추가 자료
- 데이터셋 도구: 근사치 중복 찾기 및 수동태 항목 생성
- 응답 평가: OpenAI API 및 Ollama를 사용하여 지시 응답 평가
- 데이터셋 생성: 지시 미세 조정을 위한 데이터셋 생성
- 데이터셋 개선: 지시 미세 조정 데이터셋 품질 향상
- 선호도 데이터셋 생성: Llama 3.1 70B 및 Ollama 사용
- DPO(직접 선호도 최적화) 정렬: DPO 구현
- 사용자 인터페이스: 지시 미세 조정된 GPT 모델과 상호작용
추론 모델 자료 (reasoning-from-scratch 저장소에서)
- Qwen3 기본
- 모델 평가 방법
기술 요구 사항
사전 지식
- ✅ 필수: Python 프로그래밍에 대한 탄탄한 기초
- ✅ 도움됨: 심층 신경망 기본 지식
- ✅ 도움됨: PyTorch 기초 (부록 A에서 빠른 시작 제공)
하드웨어 요구 사항
- 💻 일반 노트북으로 충분: 주요 챕터 코드는 일반 노트북에서 실행되도록 설계되었습니다.
- 🚀 자동 GPU 가속: 사용 가능한 경우 코드가 자동으로 GPU를 사용합니다.
- ⚡ 전용 하드웨어 불필요: 광범위한 학습자가 학습할 수 있도록 보장합니다.
소프트웨어 환경
- Python 3.x
- PyTorch
- 기타 의존성은 setup 디렉토리 참조
보조 자료
비디오 강의
- 📹 17시간 15분 분량의 전체 비디오 강의
- 챕터별 코딩 시연
- 독립적인 학습 자료 또는 서적과 함께 사용 가능
- Manning 플랫폼: Master and Build Large Language Models
후속 서적
『Build A Reasoning Model (From Scratch)』
- 속편으로 간주될 수 있습니다.
- 사전 학습된 모델부터 시작합니다.
- 다양한 추론 방법 구현:
- 추론 시간 확장
- 강화 학습
- 증류 기술
- 모델 추론 능력 향상
- GitHub 저장소: reasoning-from-scratch
테스트 자료
무료 170페이지 PDF: 『Test Yourself On Build a Large Language Model (From Scratch)』
- 각 챕터당 약 30개의 퀴즈 문제 및 해답
- 이해도 테스트에 도움
- Manning 웹사이트에서 무료 다운로드
연습 문제 해답
- 각 챕터에 여러 연습 문제 포함
- 해답은 부록 C에 요약되어 있습니다.
- 해당 코드 노트북은 각 챕터 폴더에 있습니다.
- 예시:
./ch02/01_main-chapter-code/exercise-solutions.ipynb
- 예시:
프로젝트 다운로드
다운로드 방법
방법 1: ZIP 파일 직접 다운로드
# GitHub 페이지에서 Download ZIP 버튼 클릭
방법 2: Git 클론
git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git
코드 구성
- 각 챕터는 독립적인 폴더를 가집니다:
ch02/,ch03/, 등 - 주요 코드는
01_main-chapter-code/하위 폴더에 있습니다. - 추가 자료는 해당 번호가 매겨진 폴더에 있습니다.
학습 경로 제안
사고 모델
이 책은 다루는 모든 내용을 요약한 명확한 마인드맵을 제공합니다:
- LLM 기본 이해
- 텍스트 데이터 처리
- 어텐션 메커니즘
- GPT 아키텍처 구현
- 사전 학습 기술
- 미세 조정 방법
- 실제 응용 배포
학습 권장 사항
- 초보자: 챕터 1부터 시작하여 순서대로 학습하고 각 챕터의 연습 문제를 완료합니다.
- 기초 지식 보유자: 익숙한 챕터는 건너뛰고 특정 주제에 집중할 수 있습니다.
- 실무자: 보너스 자료를 사용하여 고급 주제를 탐색합니다.
- 연구자: 인용 형식을 참조하여 연구에 이 자료를 인용합니다.
커뮤니티 및 지원
피드백 채널
기여 안내
- 인쇄된 서적에 해당하므로 주요 챕터 코드는 일관성을 유지합니다.
- 현재 주요 챕터 내용을 확장하는 기여는 받지 않습니다.
- 실제 서적 내용과의 일관성을 보장하여 원활한 학습 경험을 제공합니다.
인용 정보
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)},
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}
}
주요 링크
- 📖 GitHub 저장소: https://github.com/rasbt/LLMs-from-scratch
- 🛒 Manning 출판사: http://mng.bz/orYv
- 🛒 Amazon 구매: https://www.amazon.com/gp/product/1633437167
- 📹 비디오 강의: https://www.manning.com/livevideo/master-and-build-large-language-models
- 🧠 추론 모델 후속: https://github.com/rasbt/reasoning-from-scratch
- 📄 설정 문서: setup/README.md
요약
이것은 다음과 같은 사람들에게 적합한 포괄적이고 체계적인 LLM 학습 자료입니다:
- 🎓 LLM 작동 원리를 깊이 이해하고자 하는 학습자
- 👨💻 GPT와 같은 모델을 직접 구현해보고 싶은 개발자
- 🔬 NLP 및 딥러닝 연구에 종사하는 연구원
- 🚀 AI 및 머신러닝에 관심 있는 기술 애호가
이 프로젝트를 통해 거대 언어 모델을 밑바닥부터 구축하고, 학습시키고, 미세 조정하는 완전한 능력을 얻게 될 것입니다.