본문 바로가기
AI Codes/PyTorch

nanoGPT, PyTorch DDP, LLM 시각화

by 아르카눔 2025. 4. 18.

 

GPT-2와 같은 거대한 규모의 Decoder 구조의 언어 모델을 pre-trian 부터 학습하는 경험을 하고 싶은 경우가 있다. 

 

이때는 Andrej Karpathy가 만든 Nano GPT를 참조하면 좋다.

 

Github에 소스 코드가 공개되어 있을 뿐만 아니라 4시간짜리 친절한 강의 영상도 있다. 

 

  • Let's reproduce GPT-2 강의 영상 (링크)
  • nanoGPT 깃허브 (링크)
  • build nanoGPT 깃허브 (링크)
  • 한국 파이토치에서의 소개 글 (링크)

 

개인적으로 유용하게 익혔던 내용은 다음과 같다.

 

  1. Pre-train을 위한 next token prediction과 loss 함수 구성
  2. gradient accumulation 구현
  3. mixed precision을 torch.autocast로 적용 
  4. Multi-GPU 사용. ddp_world_size, ddp_local_rank, ddp_rank, master_process 컨트롤 
  5. DDP (Distributed Data Parallel) 사용 - 데이터 분할 학습 및 reduce로 동기화 진행  

 

추가적으로 공부한 내용

  • torchrun, port, cpu 개수 지정, cpu 지정 
  • FSDP - 아직 공부 중 

FSDP는 모델 자체를 shard라는 단위로 나누어서 처리한다.

따라서 GPU 하나의 메모리 크기가 작아도 여러개를 모아서 큰 모델을 학습할 수 있다.

 

FSDP 레퍼런스:

 

Medium의 한국어 설명 글 (링크)

PyTorch의 설명 글, 영어 (링크)

Huggingface의 한국어 설명 글 (링크)

 

 

LLM의 시각화와 설명

 

  • 한국 파이토치에서의 글 (링크)
  • 3Blue1Brown의 영상 (링크)

 

 

 

'AI Codes > PyTorch' 카테고리의 다른 글

PyTorch Products  (0) 2025.04.20
PyTorch zero tensor, one tensor 등등  (0) 2025.04.20
PyTorch pre-trained Models  (0) 2025.04.17
PyTorch Tensor의 차원 변환  (0) 2025.04.16
ML와 DL에서의 seed 고정  (0) 2025.01.02