24P by neo 21일전 | ★ favorite | 댓글 1개
  • 교육 목적으로 설계된 PyTorch 기반의 간단한 LLM 훈련 프로젝트로, 효율적인 훈련과 최신 샘플링 기법을 적용

Features

  • 최소 코드베이스: PyTorch로 구현되어 복잡한 추상화가 없음
  • 최신 아키텍처: GPT 모델로, 플래시 어텐션, RMSNorm, SwiGLU, 효율적인 샘플링 기법 포함
  • 훈련 기능:
    • 혼합 정밀도 (bfloat16/float16)
    • 그래디언트 누적
    • 웜업을 통한 학습률 감소
    • 가중치 감소 및 그래디언트 클리핑
  • 데이터셋 지원: TinyStories 데이터셋 처리 내장
  • 커스텀 토크나이저: SentencePiece 토크나이저 훈련 통합

설치

  • Python 3.8+
  • PyTorch 2.0+ 및 CUDA
  • 최신 GPU 권장

빠른 시작 🚀

옵션 1: 전체 훈련 사이클

  1. 데이터셋 준비
  2. 훈련 시작
  3. 텍스트 생성

옵션 2: 사전 훈련된 모델 사용

  1. 자산 다운로드
  2. 추론 실행

사전 훈련된 모델 세부사항

  • TinyStories 데이터셋으로 훈련됨
  • 4096 토큰 어휘, 8 헤드, 8 레이어 트랜스포머, 512 임베딩 차원
  • 약 4억 토큰으로 18.5시간 훈련
  • 검증 손실: 1.0491

훈련 장비 사양

  • GPU: NVIDIA L4 Tensor Core
  • vCPUs: 16
  • RAM: 64 GB
  • VRAM: 24 GB

참고: 이 구현은 교육 목적으로 현대 LLM 훈련 관행을 참고하여 제작됨. 생산 환경에서는 모델 크기와 데이터셋을 확장하는 것이 좋음.

Hacker News 의견
  • 한 사용자는 GPT 구현을 C로 작업하면서 메모리 관리와 데이터 관리의 중요성을 배웠다고 언급함. 해당 프로젝트는 약 1500줄의 코드로 구성되어 있으며, GitHub 링크를 공유함

  • 다른 사용자는 numpy를 사용하여 직접 구현하는 것이 다음 단계라고 설명함. 강력한 추상화를 사용하여 시작한 후 점차 추상화를 제거하여 시스템을 완전히 이해할 수 있다고 강조함

  • Google Colab 노트북을 사용하여 A100 GPU에서 약 2시간이 걸리는 프로젝트를 공유함. 무료 계정에서도 작동할 수 있다고 언급함

  • GitHub에는 Andrej Karpathy의 nanoGPT와 같은 여러 프로젝트가 있으며, MoE가 구현된 다른 프로젝트도 있다고 설명함

  • 한 사용자는 특정 모델을 특정 데이터 세트에 훈련시키고 결과를 테스트할 수 있는지에 대해 질문함. 오픈 소스 프로젝트를 찾고 있으며, GPU 사용 가능 여부를 알려주고 CPU로 대체할 수 있는 Docker 컨테이너를 원한다고 언급함

  • 또 다른 사용자는 자신만의 멀티 채널 토크나이저를 사용하여 구현한 이야기를 공유함. 주인공 이름이 자주 반복되어 버그가 있는지 의심된다고 언급함

  • Om Alve는 게시물이 바이럴되어 노력의 가치가 있다고 감사의 말을 전함

  • 기술이 몇 백 줄의 코드로 구현될 수 있다는 점이 흥미롭다고 언급함. 최첨단 모델의 코드 라인 수를 추측해보라고 제안함

  • SmolLM과 관련이 없다는 점을 언급하며 HuggingFace의 블로그 링크를 공유함

  • 훈련 데이터셋의 예시와 사용 사례에 대해 공유해줄 수 있는지 질문함