GPT-2와 같은 거대한 규모의 Decoder 구조의 언어 모델을 pre-trian 부터 학습하는 경험을 하고 싶은 경우가 있다.
이때는 Andrej Karpathy가 만든 Nano GPT를 참조하면 좋다.
Github에 소스 코드가 공개되어 있을 뿐만 아니라 4시간짜리 친절한 강의 영상도 있다.
개인적으로 유용하게 익혔던 내용은 다음과 같다.
- Pre-train을 위한 next token prediction과 loss 함수 구성
- gradient accumulation 구현
- mixed precision을 torch.autocast로 적용
- Multi-GPU 사용. ddp_world_size, ddp_local_rank, ddp_rank, master_process 컨트롤
- DDP (Distributed Data Parallel) 사용 - 데이터 분할 학습 및 reduce로 동기화 진행
추가적으로 공부한 내용
- torchrun, port, cpu 개수 지정, cpu 지정
- FSDP - 아직 공부 중
FSDP는 모델 자체를 shard라는 단위로 나누어서 처리한다.
따라서 GPU 하나의 메모리 크기가 작아도 여러개를 모아서 큰 모델을 학습할 수 있다.
FSDP 레퍼런스:
Medium의 한국어 설명 글 (링크)
PyTorch의 설명 글, 영어 (링크)
Huggingface의 한국어 설명 글 (링크)
LLM의 시각화와 설명
'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 |