프로젝트 소개
PlanckGPT는 소비자 수준 하드웨어에서 GPT 스타일 언어 모델을 처음부터 학습시키는 방법을 보여주는 교육용 프로젝트입니다. 이 모델은 약 5억 4천만 개의 파라미터를 가지며, Fineweb-edu 데이터셋의 약 20억 토큰으로 사전 학습되고, Smol-smoltalk 데이터를 사용한 선택적 채팅 파인튜닝 단계를 포함합니다.
이 프로젝트는 훈련 시간을 50시간 이내로 유지하면서 최상의 품질 대 훈련 시간 비율을 달성하는 것을 목표로 합니다. 저자의 노트북(Intel Core i7 14700HX, 24GB RAM, RTX 5070 Mobile 8GB)에서 사전 학습은 약 28시간 20분이 걸리고, 채팅 파인튜닝은 약 4시간 10분이 걸립니다.
아키텍처는 7개의 쿼리 헤드, 896차원 임베딩, 회전 위치 임베딩, 교대 값 임베딩, 제곱 ReLU 활성화 및 RMSNorm을 사용하는 14계층 트랜스포머 디코더입니다. 토크나이저는 GPT-2 인코딩(어휘 크기 50,257)을 사용하는 Tiktoken입니다. 훈련에는 트랜스포머 가중치용 NorMuon 옵티마이저, 임베딩용 8비트 Adam, BF16 혼합 정밀도, 그래디언트 체크포인팅 및 torch.compile을 사용합니다.
이 프로젝트는 사전 학습, 평가, 채팅 파인튜닝 및 추론을 위한 스크립트를 제공합니다. 사전 학습된 성능은 Fineweb-edu에서 평균 검증 손실 ~2.97로 GPT-2-medium에 가깝습니다. 채팅 파인튜닝된 성능은 Smol-smoltalk에서 평균 검증 손실 ~1.13에 도달합니다. 추론은 더 빠른 생성을 위해 top-k 및 top-p 샘플링과 KV 캐시를 사용합니다.
이 프로젝트는 modded-nanogpt와 nanochat에서 영감을 받았으며 Apache 2.0 라이선스로 제공됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.