KellerJordan/modded-nanogpt

NanoGPT (124M) in 90 seconds

해결하는 문제

언어 모델을 가능한 한 빠르게 훈련하는 과제를 다룹니다. 구체적으로, 8개의 NVIDIA H100 GPU에서 특정 성능 목표(FineWeb 검증 세트에서 3.28 cross-entropy loss)를 달성할 수 있는 가장 빠른 알고리즘을 찾는 것을 목표로 합니다.

작동 방식

이 프로젝트는 훈련 파이프라인을 반복적으로 최적화하는 협업 "스피드런"입니다. NanoGPT 및 llm.c 기반의 PyTorch 트레이너에서 시작하여, 이후 다음과 같은 수십 가지의 아키텍처 및 시스템 최적화를 통합했습니다:

  • Optimizers: Muon 및 NorMuon 옵티마이저 구현.
  • Architecture: Rotary embeddings, QK-Norm, ReLU², 그리고 임베딩에서 모든 블록으로의 skip connections 사용.
  • Precision: Head 및 MLP forward pass에는 FP8을, cross-entropy 계산에는 BF16을 활용.
  • Attention: Flash Attention 3, long-short sliding window 패턴 및 YaRN 통합.
  • Systems: gradient all-reduce/reduce-scatter 최적화 및 계산과 통신의 오버랩.

대상

극한의 훈련 효율성, LLM 최적화, 그리고 H100 GPU의 하드웨어 활용 한계 돌파에 관심이 있는 AI 연구자, 엔지니어 및 애호가를 위한 프로젝트입니다.

주요 특징

  • 대규모 가속화: 동일한 목표 손실에 대해 훈련 시간을 45분(베이스라인)에서 2.2분 미만으로 단축.
  • 데이터 효율성: 필요 토큰 수를 100억 개에서 4억 개 미만으로 감소.
  • 협업적 진화: 훈련 시간을 몇 초라도 줄이기 위해 사용된 기술의 발전 과정을 기록한 상세한 세계 기록 이력.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트