최신 텍스트, 비전, 오디오 및 멀티모달 머신러닝 모델을 정의하고 추론과 학습에 활용하는 프레임워크입니다.
karpathy/nanochat
토큰화부터 사전 학습, 파인튜닝, 평가, 채팅까지 LLM 파이프라인 전체를 다루는 간결하고 수정하기 쉬운 하네스이며, 단일 GPU 노드에서 실행할 수 있습니다.
- 스타
- 58,786
- 포크
- 8,229
- 열린 이슈
- 122
- 마지막 커밋
- 지난달
어떤 프로젝트인가요?
nanochat은 대형 언어 모델 학습을 위한 실험용 하네스로, 읽기 쉬운 소규모 코드베이스로 단일 GPU 노드에서 실행하는 것을 목표로 합니다. 토큰화, 사전 학습, 파인튜닝, 평가, 추론을 모두 지원하며, 학습한 모델과 대화할 수 있는 간단한 CLI도 포함합니다.
주요 조정 항목은 단 하나의 복잡도 다이얼인 `--depth`로, transformer 레이어 수를 설정합니다. 각 깊이의 모델이 계산량 측면에서 최적이 되도록 너비, attention 헤드 수, 학습률, 학습 기간, weight decay를 자동으로 산출합니다. 프로젝트의 명시된 목표는 수십 달러의 클라우드 GPU 사용료로 GPT-2 수준의 성능을 재현하는 것이며, 이를 위한 학습 시간을 공개 리더보드에서 추적합니다.
저장소에는 8xH100 노드에서 빠르게 학습하는 스크립트, scaling law 및 모델 시리즈 실험, 훨씬 작은 모델을 사용하는 CPU/Apple Silicon 예제, 그리고 bf16, fp16, fp32 전반의 정밀도 처리 문서가 포함되어 있습니다.
핵심 기능
- 01토큰화, 사전 학습, 파인튜닝, 평가, 추론을 하나의 코드베이스에서 모두 다룹니다.
- 02단일 `--depth` 매개변수로 모델 크기를 설정하며, 다른 하이퍼파라미터는 자동으로 계산됩니다.
- 03학습한 모델과 대화할 수 있는 CLI를 제공합니다.
- 04단일 GPU에서 실행되며, GPU가 하나뿐인 경우 gradient accumulation으로 대체합니다.
- 05CUDA GPU를 지원하며, 더 작은 모델을 사용하는 CPU 및 MPS 경로도 제공합니다.
- 06실제 학습 시간을 추적하는 GPT-2 speedrun 리더보드를 제공합니다.
활용 사례
- 작은 코드베이스를 살펴보며 전체 LLM 학습 파이프라인이 어떻게 구성되는지 학습하기.
- 단일 GPU에서 소규모 사전 학습 실험 실행하기.
- 깊이를 조절해 빠르게 실행하며 아키텍처나 optimizer 변경 사항 테스트하기.
- 제한된 예산으로 소형 채팅 모델을 처음부터 끝까지 학습하기.
빠른 시작
- 1
GPU extra를 지정해 uv 종속성을 설치합니다
uv sync --extra gpu - 2
가상 환경을 활성화합니다
source .venv/bin/activate - 3
speedrun 학습 스크립트를 실행합니다(8XH100 노드용으로 설계되었으며 약 1.5시간 소요)
bash runs/speedrun.sh - 4
CLI에서 학습된 모델과 대화합니다
python -m scripts.chat_cli
사용 전 알아둘 점
- GPT-2 전체 speedrun은 8XH100 GPU 노드용으로 설계되었으며, 클라우드 GPU 사용 비용은 약 48달러 이상입니다.
- 사전 학습에는 상당한 GPU 리소스가 필요합니다. VRAM이 80GB 미만인 GPU에서는 배치 크기를 조정해야 합니다.
- 코드 대부분은 PyTorch로 작성되었지만, MPS 및 XPU와 같은 비-CUDA 백엔드는 작성자가 충분히 테스트하지 않았습니다.
토픽
자주 묻는 질문
- nanochat은(는) 무엇인가요?
- 토큰화부터 사전 학습, 파인튜닝, 평가, 채팅까지 LLM 파이프라인 전체를 다루는 간결하고 수정하기 쉬운 하네스이며, 단일 GPU 노드에서 실행할 수 있습니다. nanochat은 대형 언어 모델 학습을 위한 실험용 하네스로, 읽기 쉬운 소규모 코드베이스로 단일 GPU 노드에서 실행하는 것을 목표로 합니다. 토큰화, 사전 학습, 파인튜닝, 평가, 추론을 모두 지원하며, 학습한 모델과 대화할 수 있는 간단한 CLI도 포함합니다.
- nanochat은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- nanochat은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- nanochat은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. nanochat의 마지막 커밋은 2026년 9월 7일입니다.
- nanochat은(는) 어디에 사용할 수 있나요?
- 작은 코드베이스를 살펴보며 전체 LLM 학습 파이프라인이 어떻게 구성되는지 학습하기. 단일 GPU에서 소규모 사전 학습 실험 실행하기. 깊이를 조절해 빠르게 실행하며 아키텍처나 optimizer 변경 사항 테스트하기. 제한된 예산으로 소형 채팅 모델을 처음부터 끝까지 학습하기.
- nanochat는 어떻게 설치하나요?
- GPU extra를 지정해 uv 종속성을 설치합니다: uv sync --extra gpu 가상 환경을 활성화합니다: source .venv/bin/activate speedrun 학습 스크립트를 실행합니다(8XH100 노드용으로 설계되었으며 약 1.5시간 소요): bash runs/speedrun.sh CLI에서 학습된 모델과 대화합니다: python -m scripts.chat_cli
- nanochat은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/karpathy/nanochat
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
대규모 모델의 분산 학습과 추론을 더 쉽고 효율적으로 지원하는 딥러닝 최적화 라이브러리입니다.
Transformer 모델의 GPU 학습과 추론을 위한 메모리 효율적인 exact attention 커널 FlashAttention의 공식 구현입니다.
YAML 파일로 설정하는 무료 오픈소스 프레임워크로, 대규모 언어 모델의 미세 조정과 후속 학습을 지원합니다.
트랜스포머 LLM 학습 과정을 처음부터 구현하고 안내하는 PyTorch 코드베이스로, 사전 학습, SFT, 보상 모델링, DPO/PPO/GRPO와 텍스트 생성을 다룹니다.
Python과 PyTorch로 LLaMA 스타일의 소형 GPT를 처음부터 만들고 학습하는 12개 챕터 주석형 튜토리얼입니다.