Andrej Karpathy, LLM 구현을 위한 강좌 LLM101n 준비 중
들어가며 

최근 안드레이 카파시의 행보가 흥미롭습니다. C언어로 GPT-2 학습 코드를 작성한 llm.c를 공개한 뒤, 이를 통해 직접 학습하는 과정을 공개하기도 하였고, nanoGPT를 재현해보는 저장소와 강의를 공개한데 이어, 이번에는 LLM을 실제로 구현해보는 LLM101n 강좌를 준비 중입니다. Python과 C, 그리고 CUDA를 활용하여 End-to-End로 실제 동작하는 WebApp을 구축하는 것을 목표로 하고 있다고 합니다.
아직 공개 전이고, 구체적인 공개 일자 또한 미정이지만, 관심있으신 분들이라면 일단 (Star)와
(Watch)를 해두시면 좋을 것 같아 소개드립니다.
소개
LLM101n: Let's build a Storyteller 프로젝트는 스토리텔러 AI 대형 언어 모델(LLM)을 구축하는 과정입니다. 이 강좌를 통해 사용자는 AI를 이용해 작은 이야기를 만들고, 수정하고, 그림까지 그려볼 수 있습니다. ChatGPT와 유사한 웹 애플리케이션을 기본적인 파이썬, C, CUDA 지식을 바탕으로 처음부터 끝까지 구축하는 방법을 배우게 됩니다. 이 과정을 통해 AI, LLM, 딥러닝에 대한 깊이 있는 이해를 갖추게 될 것입니다.
특히, TinyStories 데이터셋을 활용하여 이야기를 생성하고 수정하는 데 중점을 두고 있습니다. 또한, 이 과정에서는 기본적인 언어 모델링 기법부터 최신의 Transformer 모델까지 폭넓게 다룹니다. 기존의 LLM 강좌들이 단순한 이론적 접근에 그치는 반면, 이 강좌는 실질적인 구현을 목표로 합니다.
강의 계획 (Syllabus)
아직 준비 중인 강의로, 목차 링크에는 아무런 문서가 없습니다. 강의 공개에 대한 구체적인 일정 목표는 없으며, 관심은 감사하지만 Issue / PR은 지양해주시기를 부탁드립니다.
Update June 25. To clarify, the course will take some time to build. There is no specific timeline. Thank you for your interest but please do not submit Issues/PRs.
- 챕터 01 빅그램 언어 모델 (언어 모델링)
- 챕터 02 마이크로그래드 (기계 학습, 역전파)
- 챕터 03 N-그램 모델 (다층 퍼셉트론, 행렬 곱셈, GELU)
- 챕터 04 어텐션 (어텐션, 소프트맥스, 위치 인코더)
- 챕터 05 트랜스포머 (트랜스포머, 잔차 연결, 층 정규화, GPT-2)
- 챕터 06 토크나이제이션 (minBPE, 바이트 페어 인코딩)
- 챕터 07 최적화 (초기화, 최적화, AdamW)
- 챕터 08 속도의 필요성 I: 장치 (장치, CPU, GPU 등)
- 챕터 09 속도의 필요성 II: 정밀도 (혼합 정밀도 학습, fp16, bf16, fp8 등)
- 챕터 10 속도의 필요성 III: 분산형 (분산 최적화, DDP, ZeRO)
- 챕터 11 데이터셋 (데이터셋, 데이터 로딩, 합성 데이터 생성)
- 챕터 12 추론 I: kv-캐시 (kv-캐시)
- 챕터 13 추론 II: 양자화 (양자화)
- 챕터 14 미세 조정 I: SFT (지도형 미세 조정 SFT, PEFT, LoRA, 채팅)
- 챕터 15 미세 조정 II: RL (강화 학습, RLHF, PPO, DPO)
- 챕터 16 배포 (API, 웹 앱)
- 챕터 17 멀티모달 (VQVAE, 확산 트랜스포머)
- Chapter 01 Bigram Language Model (language modeling)
- Chapter 02 Micrograd (machine learning, backpropagation)
- Chapter 03 N-gram model (multi-layer perceptron, matmul, gelu)
- Chapter 04 Attention (attention, softmax, positional encoder)
- Chapter 05 Transformer (transformer, residual, layernorm, GPT-2)
- Chapter 06 Tokenization (minBPE, byte pair encoding)
- Chapter 07 Optimization (initialization, optimization, AdamW)
- Chapter 08 Need for Speed I: Device (device, CPU, GPU, ...)
- Chapter 09 Need for Speed II: Precision (mixed precision training, fp16, bf16, fp8, ...)
- Chapter 10 Need for Speed III: Distributed (distributed optimization, DDP, ZeRO)
- Chapter 11 Datasets (datasets, data loading, synthetic data generation)
- Chapter 12 Inference I: kv-cache (kv-cache)
- Chapter 13 Inference II: Quantization (quantization)
- Chapter 14 Finetuning I: SFT (supervised finetuning SFT, PEFT, LoRA, chat)
- Chapter 15 Finetuning II: RL (reinforcement learning, RLHF, PPO, DPO)
- Chapter 16 Deployment (API, web app)
- Chapter 17 Multimodal (VQVAE, diffusion transformer)
부록 (Appendix)
진행 과정에 포함될 추가 주제:
- 프로그래밍 언어: 어셈블리, C, 파이썬
- 데이터 유형: 정수, 부동 소수점, 문자열 (ASCII, 유니코드, UTF-8)
- 텐서: 형태, 뷰, 스트라이드, 연속성 등
- 딥러닝 프레임워크: PyTorch, JAX
- 신경망 구조: GPT (1,2,3,4), Llama (RoPE, RMSNorm, GQA), MoE 등
- 멀티모달: 이미지, 오디오, 비디오, VQVAE, VQGAN, 확산
Further topics to work into the progression above:
- Programming languages: Assembly, C, Python
- Data types: Integer, Float, String (ASCII, Unicode, UTF-8)
- Tensor: shapes, views, strides, contiguous, ...
- Deep Learning frameowrks: PyTorch, JAX
- Neural Net Architecture: GPT (1,2,3,4), Llama (RoPE, RMSNorm, GQA), MoE, ...
- Multimodal: Images, Audio, Video, VQVAE, VQGAN, diffusion
더 읽어보기
https://github.com/karpathy/LLM101n?tab=readme-ov-file
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~