Repolode
FareedKhan-dev

FareedKhan-dev/train-llm-from-scratch

트랜스포머 LLM 학습 과정을 처음부터 구현하고 안내하는 PyTorch 코드베이스로, 사전 학습, SFT, 보상 모델링, DPO/PPO/GRPO와 텍스트 생성을 다룹니다.

스타
12,328
포크
1,816
열린 이슈
2
마지막 커밋
18일 전

어떤 프로젝트인가요?

이 저장소는 "Attention is All You Need"의 원래 설계를 따라 순수 PyTorch로 트랜스포머 언어 모델을 처음부터 구현하고, 원시 텍스트에서 채팅형 모델에 이르는 전 과정을 안내합니다. 바이트 단위 BPE 토크나이저, 기본적인 GPT-2 스타일 디코더, RoPE, RMSNorm, SwiGLU, grouped-query attention, Mixture of Experts를 적용한 최신 변형을 포함하며, Hugging Face trainers를 쓰지 않고 모두 직접 작성했습니다.

사후 학습 단계도 처음부터 구현되어 있습니다. assistant 전용 loss mask를 적용한 supervised fine-tuning, Bradley-Terry 보상 모델, DPO, ORPO, KTO, GAE를 적용한 PPO, GRPO를 다룹니다. 단계마다 별도의 데이터 준비 스크립트와 JSON 설정 파일이 있으며, 작은 TinyStories 모델 같은 경량 프리셋은 노트북 CPU에서 몇 분 만에 학습할 수 있고, 더 큰 설정에는 GPU가 필요합니다.

핵심 기능

  • 01PyTorch로 attention, MLP, 트랜스포머 블록을 처음부터 구현합니다.
  • 02저장소에서 직접 구현한 바이트 단위 BPE 토크나이저를 포함합니다.
  • 03채팅 데이터에 assistant 전용 loss mask를 적용하는 SFT를 다룹니다.
  • 04보상 모델링, DPO/ORPO/KTO, PPO, GRPO를 구현합니다.
  • 05GPU 없이 노트북 CPU에서 학습할 수 있는 작은 프리셋을 제공합니다.

활용 사례

  • 트랜스포머 언어 모델과 학습 루프의 작동 방식을 단계별로 익힐 때.
  • 실험을 위해 단일 GPU나 노트북에서 소형 LLM을 사전 학습할 때.
  • 읽기 쉬운 코드베이스에서 DPO, PPO, GRPO 같은 사후 학습 방법을 살펴볼 때.
  • 동일한 파이프라인에서 기본 구성 요소와 최신 트랜스포머 구성 요소를 비교할 때.

빠른 시작

  1. 1

    저장소를 클론합니다

    git clone https://github.com/FareedKhan-dev/train-llm-from-scratch.git
  2. 2

    프로젝트 폴더로 이동합니다

    cd train-llm-from-scratch
  3. 3

    프로젝트를 editable 모드로 설치합니다

    pip install -e .
  4. 4

    데이터를 준비한 후 노트북 CPU에서 작은 모델을 학습합니다

    python scripts/train_transformer.py --preset tiny --arch modern

사용 전 알아둘 점

  • 대규모 모델 구성에는 GPU가 필요하며, 10억 개 매개변수 모델은 무료 T4에 들어가지 않습니다.
  • 일부 단계는 먼저 다운로드해야 하는 공개 데이터셋에 의존합니다.

토픽

자주 묻는 질문

train-llm-from-scratch은(는) 무엇인가요?
트랜스포머 LLM 학습 과정을 처음부터 구현하고 안내하는 PyTorch 코드베이스로, 사전 학습, SFT, 보상 모델링, DPO/PPO/GRPO와 텍스트 생성을 다룹니다. 이 저장소는 "Attention is All You Need"의 원래 설계를 따라 순수 PyTorch로 트랜스포머 언어 모델을 처음부터 구현하고, 원시 텍스트에서 채팅형 모델에 이르는 전 과정을 안내합니다. 바이트 단위 BPE 토크나이저, 기본적인 GPT-2 스타일 디코더, RoPE, RMSNorm, SwiGLU, grouped-query attention, Mixture of Experts를 적용한 최신 변형을 포함하며, Hugging Face trainers를 쓰지 않고 모두 직접 작성했습니다.
train-llm-from-scratch은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
train-llm-from-scratch은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
train-llm-from-scratch은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. train-llm-from-scratch의 마지막 커밋은 2026년 10월 2일입니다.
train-llm-from-scratch은(는) 어디에 사용할 수 있나요?
트랜스포머 언어 모델과 학습 루프의 작동 방식을 단계별로 익힐 때. 실험을 위해 단일 GPU나 노트북에서 소형 LLM을 사전 학습할 때. 읽기 쉬운 코드베이스에서 DPO, PPO, GRPO 같은 사후 학습 방법을 살펴볼 때. 동일한 파이프라인에서 기본 구성 요소와 최신 트랜스포머 구성 요소를 비교할 때.
train-llm-from-scratch는 어떻게 설치하나요?
저장소를 클론합니다: git clone https://github.com/FareedKhan-dev/train-llm-from-scratch.git 프로젝트 폴더로 이동합니다: cd train-llm-from-scratch 프로젝트를 editable 모드로 설치합니다: pip install -e . 데이터를 준비한 후 노트북 CPU에서 작은 모델을 학습합니다: python scripts/train_transformer.py --preset tiny --arch modern
train-llm-from-scratch은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/FareedKhan-dev/train-llm-from-scratch

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트