Train Your Own LLM From Scratch - 처음부터 직접 LLM을 학습하는 실습 워크숍

6 hours ago 1
  • Train Your Own LLM From Scratch는 GPT 학습 파이프라인의 모든 조각을 직접 작성하며 각 구성 요소가 무엇을 하고 왜 필요한지 이해하는 실습형 워크숍
  • 목표는 노트북에서 처음부터 학습한 GPT 모델로 Shakespeare풍 텍스트를 생성하는 것이며, 워크숍 한 세션 안에 끝낼 수 있도록 약 10M 파라미터 모델로 축소됨
  • nanoGPT가 GPT-2 124M 파라미터 재현을 목표로 하는 반면, 이 프로젝트는 핵심만 남겨 노트북에서 1시간 이내 학습 가능한 형태로 설계됨
  • 직접 작성하는 구성 요소는 Tokenizer, Transformer 기반 모델 아키텍처, 학습 루프, 텍스트 생성이며, 최종적으로 model.py, train.py, generate.py를 직접 완성하게 됨
  • 사전 지식은 Python 코드 읽기에 익숙한 정도면 충분하고, 머신러닝 경험은 필요하지 않으며 Python 3.12+ 가 필요함
  • 실행 환경은 Mac, Linux, Windows의 노트북이나 데스크톱을 지원하며, 학습은 Apple Silicon GPU의 MPS, NVIDIA GPU의 CUDA, 또는 CPU를 자동으로 사용함
  • 로컬 설치는 uv로 uv sync를 실행하는 흐름을 권장하고, 로컬 환경이 없으면 Google Colab에 파일을 올려 !python train.py로 실행 가능함
  • 워크숍은 문자 단위 토크나이저, 임베딩, 셀프어텐션, LayerNorm, MLP 블록, 손실 함수, AdamW, 그래디언트 클리핑, 학습률 스케줄링, temperature와 top-k 샘플링을 순서대로 다룸
  • 기본 아키텍처는 입력 텍스트를 문자 단위 토큰 ID로 바꾸고, 토큰 임베딩과 위치 임베딩을 거쳐 여러 Transformer 블록을 통과한 뒤 다음 토큰 확률을 위한 logits를 출력함
  • 제공 모델 설정은 Tiny 약 0.5M 파라미터와 M3 Pro 기준 약 5분, Small 약 4M과 약 20분, 기본값 Medium 약 10M과 약 45분 학습 시간으로 제시됨
  • 모든 설정은 vocab_size=65의 문자 단위 토큰화와 block_size=256을 사용하며, Shakespeare 같은 약 1MB 소규모 데이터셋에 맞춰져 있음
  • BPE 토큰화는 GPT-2의 50,257 vocab처럼 어휘가 커서 작은 데이터셋에서는 대부분의 토큰 bigram이 너무 드물어 패턴 학습이 어렵고, 더 큰 데이터셋에서는 BPE로 전환하는 내용을 다룸
  • 주요 참고 자료로 nanoGPT, build-nanogpt video lecture, Karpathy's microgpt, nanochat, Attention Is All You Need (2017), GPT-2 paper (2019), TinyStories paper를 제시함
Read Entire Article