요약 (TL;DR)
nanochat은 Andrej Karpathy의 오픈소스 LLM 훈련 프레임워크로, 50달러 미만의 비용으로 약 2시간 만에 GPT-2 수준의 챗봇을 훈련할 수 있습니다. 이 프로젝트는 단일 8xH100 GPU 노드, 최소한의 코드(코어 모델의 경우 약 500줄), 그리고 하나의 설정 다이얼(--depth)을 사용하여 모든 하이퍼파라미터를 자동으로 최적화합니다. 현재 기록으로는 1.65시간 만에 훈련을 완료하여 CORE 점수 0.2626을 달성했으며, 이는 2019년 OpenAI의 GPT-2가 43,000달러의 비용과 168시간이 소요되었던 것을 능가합니다.
서론
대규모 언어 모델을 훈련하는 데는 수백만 달러와 박사급 연구원 팀이 필요했습니다. 그런 시대는 지났습니다.
Andrej Karpathy는 방금 멋진 저녁 식사 비용보다 적은 비용으로 유능한 대화형 AI를 훈련하는 오픈소스 프로젝트인 nanochat을 출시했습니다. 전체 파이프라인은 단일 8xH100 GPU 노드에서 실행되며 2시간 이내에 완료됩니다.
지금 이것이 중요한 이유
2026년 초, AI 환경은 극적으로 변화했습니다. 2019년 OpenAI가 168시간과 43,000달러를 들였던 일이 이제는 1.65시간과 48달러로 가능해졌습니다. 이는 알고리즘 개선, 더 나은 하드웨어, 그리고 커뮤니티 최적화에 의해 100배의 속도 향상이 이루어졌음을 의미합니다.
API 개발자와 AI 기반 애플리케이션을 구축하는 팀에게 이는 모든 것을 바꿉니다. 이제 막대한 인프라 예산 없이도 맞춤형 모델 훈련을 실험하고, 아키텍처 변경 사항을 테스트하며, LLM 내부를 이해할 수 있습니다.
배울 내용
이 글을 마치면 다음을 이해하게 될 것입니다:
- nanochat이 기존 LLM 훈련 대비 100배의 비용 절감을 어떻게 달성하는지
- 완전한 아키텍처 (GPT 모델, Muon 옵티마이저, 데이터 로딩)
- 자체 모델을 훈련하는 단계별 지침
- 빠른 LLM 연구 및 실험에 nanochat을 사용하는 방법
- 실제 한계점과 GPT-2 기능이 실제로 의미하는 것
nanochat이란?
nanochat은 토큰화, 사전 훈련, 파인튜닝, 평가, 추론 및 ChatGPT와 유사한 웹 UI를 포함한 전체 개발 파이프라인을 다루는 최소한의 LLM 훈련 하네스입니다.

코드베이스는 단일 저장소에 맞으며, 복잡한 설정 파일이나 프레임워크 복잡성이 없습니다. Karpathy는 이를 읽기 쉽고, 해킹 가능하며, 포크 가능한 "강력한 기준선"으로 설계했습니다.
핵심 주장
GPT-2 수준의 모델 (16억 개의 파라미터)을 다음 비용으로 훈련합니다:
- 온디맨드 방식으로 48달러 (8xH100 기준 시간당 약 24달러로 2시간)
- 스팟 인스턴스에서는 약 15달러
참고로, OpenAI의 2019년 오리지널 GPT-2 훈련 비용은 약 43,000달러였으며 32개의 TPU v3 칩으로 7일이 걸렸습니다.
nanochat이 다루는 내용
| 단계 | 스크립트 | 설명 |
|---|---|---|
| 토큰화 | scripts.tok_train |
BPE 토크나이저 훈련 (어휘 32,768) |
| 사전 훈련 | scripts.base_train |
기본 GPT 모델 훈련 |
| 파인튜닝 | scripts.chat_sft |
채팅을 위한 지도 파인튜닝 |
| 평가 | scripts.base_eval |
CORE 메트릭, 바이트당 비트 (bits-per-byte) |
| 추론 | scripts.chat_cli |
CLI 채팅 인터페이스 |
| 웹 UI | scripts.chat_web |
ChatGPT와 유사한 웹 인터페이스 |
철학: 모든 것을 제어하는 하나의 다이얼
대부분의 LLM 프레임워크는 설정 파일에 사용자들을 파묻히게 합니다. nanochat은 정반대의 접근 방식을 취합니다.
전체 시스템은 하나의 파라미터인 --depth (트랜스포머 레이어 수)를 중심으로 작동합니다.
# GPT-1 크기 모델
torchrun --standalone --nproc_per_node=8 -m scripts.base_train -- --depth=12
# GPT-2 수준 모델
torchrun --standalone --nproc_per_node=8 -m scripts.base_train -- --depth=24
# 한계점 확장
torchrun --standalone --nproc_per_node=8 -m scripts.base_train -- --depth=26
깊이를 설정하면 nanochat이 자동으로 다른 모든 것을 계산합니다:
- 트랜스포머 너비 (임베딩 차원)
- 어텐션 헤드 수
- 각 파라미터 그룹에 대한 학습률
- 훈련 주기 (총 단계)
- 가중치 감쇠 스케줄
- 배치 크기
이 "하나의 다이얼" 철학은 Karpathy가 nanochat 미니시리즈라고 부르는 것을 가능하게 합니다. 이는 다양한 크기의 컴퓨팅 최적 모델 제품군이며, 모두 동일한 원칙적 접근 방식으로 훈련됩니다.
이것이 작동하는 이유
팀은 수십 번의 훈련 실행을 통해 스케일링 법칙을 측정했습니다. 그들은 깊이, 너비, 배치 크기 및 훈련 기간 사이에 예측 가능한 관계를 발견했습니다. nanochat은 이 모든 조절 기능을 노출하는 대신, 이러한 관계를 훈련 스크립트에 직접 인코딩합니다.

딥러닝 박사 학위가 없어도 컴퓨팅 최적 훈련을 얻을 수 있습니다.
리더보드: GPT-2를 능가하기 위한 경쟁
nanochat은 "GPT-2 수준 도달 시간"을 추적하는 공개 리더보드를 유지합니다. 목표는 DCLM 벤치마크 스위트의 ARC, MMLU 및 기타 22가지 평가 작업에서 OpenAI의 원래 CORE 점수인 0.256525를 능가하는 것입니다.
현재 기록
| 실행 | 모델 | 시간 | CORE 점수 | 주요 혁신 |
|---|---|---|---|---|
| 원래 GPT-2 | 1.6B | 168시간 | 0.2565 | OpenAI 2019년 기준 |
| 실행 1 | d24 | 3.04시간 | 0.2585 | 초기 기준 |
| 실행 2 | d26 | 2.91시간 | 0.2578 | FP8 훈련 |
| 실행 3 | d26 | 2.76시간 | 0.2602 | 1M 토큰 배치 크기 |
| 실행 4 | d24 | 2.02시간 | 0.2571 | ClimbMix 데이터셋 |
| 실행 5 | d24 | 1.80시간 | 0.2690 | AI 발견 최적화 |
| 실행 6 | d24 | 1.65시간 | 0.2626 | 개선된 smear/backout |
AI가 최적화를 발견한 방법
실행 5와 6은 Karpathy의 "자동 연구(autoresearch)" 시스템에서 얻은 변경 사항을 통합했습니다. AI 에이전트가 작은 d12 모델(5분 훈련 실행)에서 아키텍처 수정을 탐색한 다음, 성공적인 변경 사항을 전체 d24 설정에 적용했습니다.
이 시스템은 다음 사항에서 개선점을 발견했습니다:
- 백아웃 메커니즘 (Backout mechanism): 더 나은 중간 레이어 잔차(residual) 빼기
- 스미어 구현 (Smear implementation): 이전 토큰으로부터 더 효율적인 이진혼합(bigram mixing)
이러한 변경 사항은 훈련 시간을 2.02시간에서 1.65시간으로 줄여, 자율 실험을 통해 19%의 개선을 이끌어냈습니다.
nanochat 작동 방식
코드베이스는 핵심 모듈에 걸쳐 대략 3,000줄로 구성되어 있습니다. 각 구성 요소를 살펴보겠습니다.
1. GPT 모델 (nanochat/gpt.py)
트랜스포머는 여러 최적화와 함께 최신 모범 사례를 따릅니다:
아키텍처 특징:
- 로터리 임베딩 (Rotary embeddings, RoPE): 학습된 위치 임베딩 없이 상대적 위치 인코딩
- QK 정규화 (QK normalization): 대규모 훈련 시 안정성 확보
- 분리된 가중치 (Untied weights): 별도의 토큰 임베딩 및 출력 프로젝션 레이어
- ReLU² 활성화 (ReLU² activation): GeLU 대신 MLP에서 제곱 ReLU 사용
- 그룹 쿼리 어텐션 (Grouped Query Attention, GQA): 더 빠른 추론을 위해 쿼리 헤드보다 적은 KV 헤드 사용
- 슬라이딩 윈도우 어텐션 (Sliding window attention): 구성 가능한 패턴 (예: "SSSL"은 짧고 긴 컨텍스트를 번갈아 사용)
- 플래시 어텐션 3 (Flash Attention 3): Hopper GPU 최적화 (SDPA 폴백 지원)
값 임베딩 (Value Embeddings, ResFormer):
번갈아 나타나는 레이어에는 입력에 따라 달라지는 게이팅을 통해 혼합되는 학습 가능한 값 임베딩이 포함됩니다:
# Value residual: mix in value embedding with per-head gate
if ve is not None:
ve = ve.view(B, T, self.n_kv_head, self.head_dim)
gate = 3 * torch.sigmoid(self.ve_gate(x[..., :self.ve_gate_channels]))
v = v + gate.unsqueeze(-1) * ve
이는 상당한 컴퓨팅 오버헤드 없이 용량을 추가합니다.
효율성 트릭:
이 모델은 훈련 역학을 개선하는 세 가지 학습된 메커니즘을 포함합니다:
# 1. Per-layer residual scaling
x = self.resid_lambdas[i] * x + self.x0_lambdas[i] * x0
# 2. Smear: mix previous token embedding for bigram info
gate = self.smear_lambda * torch.sigmoid(self.smear_gate(x[:, :, :24]))
x = x + gate * x_pre_smear
# 3. Backout: subtract mid-layer residual
x = x - self.backout_lambda * x_backout
2. Muon 옵티마이저 (nanochat/optim.py)
nanochat은 혼합 옵티마이저 전략을 사용합니다:
| 파라미터 유형 | 옵티마이저 | 목적 |
|---|---|---|
| 임베딩, lm_head | AdamW | 표준 적응형 최적화 |
| 스칼라 파라미터 | AdamW | 학습된 스케일링 팩터 |
| 2D 행렬 | Muon | 직교화된 업데이트 |
Muon (MomentUm Orthogonalized by Newton-Schulz):
Muon 옵티마이저는 "Polar Express"라고 불리는 5차 뉴턴-슐츠 반복을 사용하여 가중치 업데이트를 직교화합니다:
# Polar Express coefficients (5 iterations)
polar_express_coeffs = [
(8.156, -22.483, 15.879),
(4.043, -2.809, 0.500),
# ... more coefficients
]
# Orthogonalization loop
for a, b, c in polar_express_coeffs[:ns_steps]:
A = X.mT @ X
B = b * A + c * (A @ A)
X = a * X + X @ B
NorMuon 분산 감소 (NorMuon Variance Reduction):
직교화 후, 업데이트는 스케일 붕괴를 방지하기 위해 뉴런별로 정규화됩니다:
v_mean = g.float().square().mean(dim=red_dim, keepdim=True)
v_norm = v_mean.sum(dim=(-2, -1), keepdim=True).sqrt()
final_scale = step_size * (v_norm / v_norm_new.clamp_min(1e-10))
g = g * final_scale.to(g.dtype)
분산 훈련 (Distributed Training):
멀티 GPU 설정의 경우, 옵티마이저는 3단계 비동기 통신을 사용하는 ZeRO-2 스타일 샤딩을 구현합니다:
Phase 1: Launch all async reduce_scatter operations
Phase 2: Wait for reduces, compute updates, launch all_gathers
Phase 3: Wait for gathers, copy back updated params
이는 통신과 계산을 중첩시켜 GPU 활용도를 극대화합니다.
3. 정밀도 관리 (nanochat/common.py)
nanochat은 torch.amp.autocast를 사용하는 대신 정밀도를 명시적으로 관리합니다:
| 하드웨어 | 기본 dtype | 이유 |
|---|---|---|
| CUDA SM 80+ (A100, H100) | bfloat16 | 네이티브 BF16 텐서 코어 |
| CUDA SM < 80 (V100, T4) | float32 | BF16 지원 없음 |
| CPU / MPS | float32 | 정밀도 감소 코어 없음 |
커스텀 Linear 레이어는 순방향 패스 중에 가중치를 컴퓨팅 dtype과 일치하도록 캐스팅합니다:
class Linear(nn.Linear):
def forward(self, x):
return F.linear(x, self.weight.to(dtype=x.dtype))
마스터 가중치는 옵티마이저 정밀도를 위해 FP32로 유지됩니다. H100 및 Blackwell GPU의 경우 --fp8을 통해 FP8 훈련이 가능하며, 대부분의 레이어를 텐서 단위 스케일링이 있는 Float8Linear로 변환합니다.
4. 데이터 로딩 (nanochat/dataloader.py)
데이터 로더는 BOS 정렬 최적 맞춤 패킹 (BOS-aligned best-fit packing)을 사용합니다:
- 모든 행은 BOS (시퀀스 시작) 토큰으로 시작합니다.
- 낭비를 최소화하기 위해 최적 맞춤 알고리즘을 사용하여 문서를 패킹합니다.
- 문서가 맞지 않을 때는 하나의 문서가 정확하게 채워지도록 잘립니다.
- 2048 시퀀스 길이에서 약 35%의 토큰 자르기로 100% 활용률을 달성합니다.
이는 모든 토큰이 BOS로 다시 주의를 기울이고 완전한 문서 컨텍스트를 볼 수 있도록 보장합니다.
# Find largest document that fits entirely
best_idx = -1
best_len = 0
for i, doc in enumerate(doc_buffer):
doc_len = len(doc)
if doc_len <= remaining and doc_len > best_len:
best_idx = i
best_len = doc_len
if best_idx >= 0:
doc = doc_buffer.pop(best_idx)
# Add full document
else:
# Crop shortest doc to fill remaining space
5. 플래시 어텐션 통합 (nanochat/flash_attention.py)
이 프로젝트는 FA3와 PyTorch SDPA 사이를 자동으로 전환하는 통합 인터페이스를 제공합니다:
from nanochat.flash_attention import flash_attn
# Works on any hardware - auto-selects best backend
y = flash_attn.flash_attn_func(q, k, v, causal=True, window_size=window_size)
bfloat16을 사용하는 Hopper GPU에서는 Flash Attention 3를 사용합니다. 다른 모든 곳에서는 PyTorch의 스케일드 닷-프로덕트 어텐션으로 폴백(fallback)됩니다.
6. 추론 엔진 (nanochat/engine.py)
Engine 클래스는 다음을 통해 효율적인 생성을 처리합니다:
- KV 캐시: FA3의
flash_attn_with_kvcache를 사용한 사전 채워진 프롬프트 캐시 - 도구 사용: 특수 토큰은
eval()을 통해 Python 계산기를 트리거합니다. - 배치 생성: 병렬 샘플링을 위해 KV 캐시를 복제합니다.
엔진은 모델이 계산기를 호출할 때 도구 출력 토큰을 강제하는 것을 포함하여 대화 흐름을 조정합니다.
단계별: 나만의 모델 훈련하기
전체 파이프라인은 runs/speedrun.sh에 있습니다. 실행 방법은 다음과 같습니다.
사전 요구 사항
- 8xH100 GPU 노드 (또는 유사한 사양)
- 데이터셋을 위한 약 20GB 디스크 공간
- Python 3.10 이상
- uv 패키지 관리자
1단계: 환경 설정
# uv 설치
curl -LsSf https://astral.sh/uv/install.sh | sh
# 가상 환경 생성 및 활성화
uv venv
source .venv/bin/activate
# 종속성 설치
uv sync --extra gpu
2단계: 훈련 데이터 다운로드
# ClimbMix 데이터셋에서 약 20억 문자 다운로드
python -m nanochat.dataset -n 170
# 약 100MB 크기의 샤드 170개 다운로드
# 총 압축 크기: 약 17GB
이 스크립트는 멀티-랭크 조정을 처리하기 위해 파일 잠금(file locking)을 사용하여 사전 훈련 데이터 샤드를 다운로드합니다.
3단계: 토크나이저 훈련
# 32,768개의 어휘를 사용하여 BPE 토크나이저 훈련
python -m scripts.tok_train
# 압축률 평가
python -m scripts.tok_eval
토크나이저는 바이트-폴백 BPE가 있는 GPT-4 스타일 분할 패턴을 사용합니다. 20억 문자에서 훈련은 약 10분 만에 완료됩니다.
4단계: 기본 모델 사전 훈련
# d24 모델 훈련 (GPT-2 수준)
torchrun --standalone --nproc_per_node=8 -m scripts.base_train -- \
--depth=24 \
--target-param-data-ratio=8 \
--device-batch-size=16 \
--fp8 \
--run=my-first-model
주요 파라미터:
--depth=24: GPT-2 크기 모델--target-param-data-ratio=8: 속도를 위해 약간 덜 훈련됨--device-batch-size=16: GPU당 배치 크기--fp8: FP8 훈련 활성화 (H100+에서만 해당)
예상 실행 시간: 약 2시간.
5단계: 지도 파인튜닝
# 아이덴티티 대화 다운로드
curl -L -o ~/.cache/nanochat/identity_conversations.jsonl \
https://karpathy-public.s3.us-west-2.amazonaws.com/identity_conversations.jsonl
# 채팅 기능용 SFT 실행
torchrun --standalone --nproc_per_node=8 -m scripts.chat_sft -- \
--device-batch-size=16 \
--run=my-sft
이는 모델에게 대화 형식, 특수 토큰 및 도구 사용법을 가르칩니다.
6단계: 모델과 채팅하기
# CLI 채팅
python -m scripts.chat_cli -p "Why is the sky blue?"
# 또는 웹 UI 실행
python -m scripts.chat_web
웹 UI는 8000번 포트에서 실행되며 ChatGPT와 유사한 인터페이스를 제공합니다.
연구 워크플로우: 빠른 실험
새로운 아이디어를 테스트하려면 더 빠른 반복을 위해 더 작은 모델을 사용하십시오.
빠른 실험 (약 5분)
OMP_NUM_THREADS=1 torchrun --standalone --nproc_per_node=8 -m scripts.base_train -- \
--depth=12 \
--run="d12-test" \
--core-metric-every=999999 \
--sample-every=-1 \
--save-every=-1
이것은 최소한의 로깅으로 d12 (GPT-1 크기) 모델을 훈련합니다. 아키텍처 변경 사항을 테스트하는 데 완벽합니다.
모니터링할 지표
Weights & Biases에서 다음을 추적하십시오:
- val_bpb: 검증 바이트당 비트 (어휘 크기와 무관한 손실)
- core_metric: DCLM CORE 평가 점수
- train/mfu: 모델 FLOPS 활용 (하드웨어 효율성)
- train/tok_per_sec: 훈련 처리량
테스트 요구 사항
모든 개선 사항은 모든 깊이(d12부터 d26까지)에서 작동해야 합니다. 이는 단일 모델 크기에 대한 과적합을 방지하고 원칙적인 발전을 보장합니다.
nanochat이 중요한 이유
비용 접근성
| 접근 방식 | 비용 | 시간 | 하드웨어 |
|---|---|---|---|
| OpenAI GPT-2 (2019) | $43,000 | 168시간 | 32 TPU v3 |
| nanochat (2026) | $48 | 2시간 | 8xH100 |
| nanochat 스팟 | ~$15 | 2시간 | 8xH100 스팟 |
이는 LLM 훈련을 다음 범위 내로 가져옵니다:
- 개인 연구자
- 소규모 스타트업
- 대학교 과정
- 취미 개발자
교육적 가치
코드베이스는 학습 자료로 활용됩니다:
- GPT 모델을 위한 약 500줄
- 옵티마이저를 위한 약 530줄
- 모든 설계 결정에 대한 명확한 주석
- 숨겨진 설정 없음
학생들은 완전한 LLM 파이프라인을 읽고, 수정하고, 실험할 수 있습니다.
연구 속도
훈련 시간을 며칠에서 몇 시간으로 단축하면 다음이 가능해집니다:
- 더 빠른 가설 테스트
- 주당 더 많은 실험
- 실패 비용 절감
- 리더보드를 통한 커뮤니티 협력
투명성
모든 설계 선택은 문서화됩니다:
dev/LOG.md의 스케일링 법칙- GitHub Discussions의 절제 연구(ablation studies)
- 리더보드 항목에 대한 전체 재현 세부 정보
- 명확한 AI 기여 공개
한계점 및 현실 점검
nanochat은 인상적이지만 명확한 한계가 있습니다.
하드웨어 요구 사항
48달러라는 수치는 8xH100 노드에 대한 접근을 전제로 합니다. 클라우드 대여 비용은 다양합니다:
- Lambda Labs: 8xH100 기준 시간당 약 25달러
- RunPod: 시간당 약 15달러 스팟 가격
- 총 실행 시간: 사전 훈련 + SFT 약 2시간
제공업체에 따라 전체 실행에는 약 50~100달러가 필요할 것입니다.
성능 한계
nanochat은 GPT-2 수준의 성능 (2019년 기술)을 달성합니다. 이는 다음을 의미합니다:
할 수 있는 것:
- 기본적인 대화
- 간단한 추론
- 초등 수학
- 사실 기억 (제한적)
할 수 없는 것:
- 복잡한 다단계 추론
- 간단한 기능 이상의 코드 생성
- 미묘한 지시 따르기
- GPT-4, Claude 또는 Gemini와 경쟁
유치원생을 생각해보세요: 기본적인 대화는 가능하지만 전문가 수준의 작업은 아닙니다.
데이터 요구 사항
전체 스피드런은 다음을 다운로드합니다:
- 약 170개의 데이터 샤드
- 약 17GB 압축됨
- 총 약 20억 문자
충분한 저장 공간과 대역폭이 필요합니다.
메트릭 한계
CORE 점수는 22가지 작업을 측정하지만 다음을 포착하지 못합니다:
- 실제 대화 품질
- 도메인별 지식
- 지시 따르기의 미묘한 차이
- 안전 및 정렬
다른 랜덤 시드는 약 0.016 CORE 분산을 생성합니다. 결과는 다를 수 있습니다.
자주 묻는 질문
nanochat으로 모델을 훈련하는 데 드는 비용은 얼마입니까?
온디맨드 방식으로 약 48달러 (시간당 24달러 x 2시간) 또는 스팟 인스턴스에서 약 15달러입니다. 이는 사전 훈련에만 해당됩니다. SFT에는 약 30분을 추가하십시오.
어떤 GPU가 필요합니까?
최소: 단일 GPU (모든 최신 데이터센터 GPU). 최적: 가장 빠른 훈련을 위해 8xH100 또는 8xA100. 코드는 자동 그라디언트 누적을 통해 1개 GPU에서 8개 GPU까지 확장됩니다.
훈련에는 얼마나 걸립니까?
설정 및 하드웨어에 따라 1.65시간에서 3시간까지 소요됩니다. 현재 리더보드 기록은 d24 모델의 경우 1.65시간입니다.
CORE 메트릭이란 무엇입니까?
DCLM CORE 점수는 ARC (과학 문제), MMLU (다중 작업 언어 이해) 및 기타 벤치마크를 포함한 22가지 작업에서 모델을 평가합니다. GPT-2는 0.256525점을 기록했습니다. nanochat은 정기적으로 0.26을 초과합니다.
단일 GPU에서 훈련할 수 있습니까?
예. torchrun을 생략하면 코드가 자동으로 그라디언트 누적을 사용합니다. 훈련 시간은 8배 길어지지만 거의 동일한 결과를 생성합니다.
nanochat은 어떤 데이터셋을 사용합니까?
현재 가장 좋은 것은 ClimbMix (NVIDIA의 큐레이션된 웹 데이터셋)를 사용합니다. 이전 버전은 FineWeb-EDU를 사용했습니다. 토크나이저는 처음 약 8개의 샤드에서 약 20억 문자로 훈련됩니다.
nanochat은 Apple Silicon에서 작동합니까?
예. 코드는 float32 정밀도로 MPS (Metal Performance Shaders)에서 실행됩니다. 훈련은 CUDA보다 느리지만 실험에는 기능적입니다.
체크포인트에서 훈련을 재개할 수 있습니까?
예. --resume-from-step=<step>을 사용하여 저장된 체크포인트에서 계속 진행할 수 있습니다. 데이터 로더 상태도 정확한 재개를 위해 저장됩니다.
nanochat과 nanoGPT의 차이점은 무엇입니까?
nanoGPT는 사전 훈련만 다루었습니다. nanochat은 토큰화, 사전 훈련, SFT, RLHF, 평가, 추론 및 웹 UI를 포함한 전체 파이프라인으로 확장됩니다.
결론
nanochat은 LLM 훈련이 더 이상 막대한 예산이나 전문 인프라를 필요로 하지 않음을 증명합니다. 2019년에 43,000달러가 들었던 일이 이제 50달러 미만으로 가능합니다.
이 프로젝트의 영향은 단순한 비용 절감을 넘어섭니다. 최소한의 읽기 쉬운 코드베이스와 "하나의 다이얼" 인터페이스를 제공함으로써 Karpathy는 연구 도구이자 교육 자료를 만들었습니다.
주요 요점
- 100배 비용 절감: GPT-2 기능에 대해 43,000달러에서 48달러로
- 100배 속도 향상: 168시간에서 1.65시간으로
- 단일 설정 다이얼:
--depth가 모든 것을 제어합니다. - 완전한 파이프라인: 토큰화부터 웹 UI까지
- 커뮤니티 주도: 지속적인 개선이 이루어지는 공개 리더보드
다음 단계
자신의 모델을 훈련할 준비가 되셨습니까? nanochat 저장소와 runs/speedrun.sh 스크립트부터 시작하십시오.
AI 기반 애플리케이션을 구축하는 API 개발자에게 LLM 훈련 내부를 이해하는 것이 그 어느 때보다 쉬워졌습니다. 진입 장벽은 "벤처 자금 지원 스타트업"에서 "주말 프로젝트" 수준으로 낮아졌습니다.
