책소개
챗GPT 같은 대규모 언어 모델(LLM)이 일상에 깊이 들어온 지금, 그 작동 원리를 직접 구현해 본 사람은 많지 않습니다. 『밑바닥부터 시작하는 딥러닝』 여섯 번째 편은 토크나이저, 모델, 학습이라는 LLM의 핵심 세 단계를 완성된 라이브러리에 기대지 않고 밑바닥부터 구현합니다. CodeBot, StoryBot, WebBot 세 프로젝트를 거치며 BPE 토크나이저, 트랜스포머 어텐션, 사전 학습부터 SFT·GRPO·DPO 강화 학습까지 LLM 개발의 전 과정을 코드로 직접 재현합니다. 파이썬, 파이토치 기초와 딥러닝에 대한 기본 이해가 있다면, 이 책과 함께 나만의 LLM을 밑바닥부터 키워보세요.
목차
"CHAPTER 0 LLM이 만들어지기까지
0.1 구성 요소
0.2 LLM의 사전 학습
0.3 LLM의 사후 학습
[PART I 기본편: CodeBot 만들기]
I.1 개발 흐름
I.2 사전 학습
I.3 SFT(지도 파인튜닝)
I.4 강화 학습
CHAPTER 1 토크나이저 (기본편)
1.1 문자 단위 토큰화
1.2 바이트 단위 토큰화
1.3 BPE의 학습 알고리즘
1.4 BPE를 적용한 인코딩과 디코딩
1.5 특수 토큰 대응
1.6 사전 토큰화
1.7 TinyCodes를 이용한 학습
1.8 토크나이저 평가
1.9 TinyCodes 인코딩
1.10 정리
CHAPTER 2 모델 (기본편)
2.1 어텐션 기본 원리
2.2 어텐션의 수식과 구현
2.3 어텐션 스케일링
2.4 트랜스포머 기본 구조
2.5 위치 인코딩
2.6 어텐션 마스크
2.7 밸류 변환 행렬 효율 개선
2.8 멀티헤드 어텐션
2.9 트랜스포머 블록
2.10 GPT-2
2.11 정리
CHAPTER 3 학습 (기본편)
3.1 사전 학습
3.2 텍스트 생성
3.3 SFT(지도 파인튜닝)
3.4 SFT 모델과 나누는 대화
3.5 강화 학습과 언어 모델
3.6 정책 경사법
3.7 베이스라인
3.8 오프-정책과 클리핑
3.9 GRPO
3.10 정리
[PART II 응용편: StoryBot 만들기]
II.1 데이터셋
II.2 개발 흐름
CHAPTER 4 토크나이저 (응용편)
4.1 BPE 학습 개선 ①: 중복 제거
4.2 BPE 학습 개선 ②: 부분 갱신
4.3 BPE 학습 개선 ③: 분할 처리
4.4 BPE 학습 개선 ④: 병렬화
4.5 토크나이저 평가
4.6 BPE 인코딩 개선 ①: 고속 병합
4.7 BPE 인코딩 개선 ②: 대규모 데이터 처리
4.8 정리
CHAPTER 5 모델 (응용편)
5.1 RoPE
5.2 SwiGLU
5.3 RMSNorm과 그 밖의 개선
5.4 개선된 GPT 구현
5.5 KV 캐시
5.6 정리
CHAPTER 6 학습 (응용편)
6.1 AdamW의 원리
6.2 AdamW 구현
6.3 학습률 스케줄
6.4 혼합 정밀도
6.5 사전 학습 (개선 버전)
6.6 텍스트 생성과 모델 평가
6.7 RLHF와 DPO
6.8 DPO 구현
6.9 정리
[PART III 도전편: WebBot 만들기]
III.1 데이터셋
III.2 개발 흐름
CHAPTER 7 토크나이저 (도전편)
7.1 WebBot의 토크나이저
7.2 병목 지점 찾기
7.3 러스트와 C++를 이용한 속도 개선
7.4 특수 토큰 추가
7.5 다른 토크나이저
7.6 토크나이저를 사용하지 않는 접근법
7.7 정리
CHAPTER 8 모델 (도전편)
8.1 모델 크기 선택
8.2 FlashAttention
8.3 Grouped-Query Attention(GQA)
8.4 전문가 혼합(MoE)
8.5 torch.compile
8.6 컨텍스트 길이 확장
8.7 정리
CHAPTER 9 학습 (도전편)
9.1 기울기 누적
9.2 기울기 체크포인트
9.3 분산 학습
9.4 ZeRO
9.5 Muon 옵티마이저
9.6 Weights & Biases
9.7 WebBot 학습과 생성 결과
9.8 정리
APPENDIX A UTF-8 인코딩의 원리
APPENDIX B 어텐션의 스케일링 효과 증명
APPENDIX C 베이스라인을 적용한 정책 경사 추정량의 불편성 증명
APPENDIX D Adam의 편향 보정
APPENDIX E DPO의 최적해 유도"