ÖZET
nanochat, Andrej Karpathy'nin açık kaynaklı LLM eğitim çerçevesidir ve 50 doların altında, yaklaşık 2 saatte GPT-2 seviyesinde bir sohbet robotu eğitmenize olanak tanır. Proje, tek bir 8xH100 GPU düğümü, minimum kod (çekirdek model için ~500 satır) ve tüm hiperparametreleri otomatik olarak optimize etmek için tek bir yapılandırma düğmesi (--depth) kullanır. Mevcut kayıtlar, 1.65 saatte 0.2626 CORE puanıyla eğitimin tamamlandığını gösteriyor ve OpenAI'ın 2019'da 43.000 dolara mal olan ve 168 saat süren GPT-2'sini geride bırakıyor.
Giriş
Büyük bir dil modeli eğitmek, eskiden milyonlarca dolar ve doktora dereceli araştırmacılardan oluşan bir ekip gerektiriyordu. O günler geride kaldı.
Andrej Karpathy, az önce güzel bir akşam yemeği maliyetinden daha ucuza yetenekli bir konuşmaya dayalı yapay zeka eğiten açık kaynaklı bir proje olan nanochat'i yayınladı. Tüm süreç, tek bir 8xH100 GPU düğümünde çalışır ve 2 saatten kısa sürede tamamlanır.
Bu Neden Şimdi Önemli?
Yapay zeka ortamı 2026'nın başlarında önemli ölçüde değişti. OpenAI'ın 2019'da 168 saat ve 43.000 dolara yaptığı iş, şimdi 1.65 saat ve 48 dolara yapılıyor. Bu, algoritmik iyileştirmeler, daha iyi donanım ve topluluk optimizasyonu sayesinde 100 katlık bir hızlanma anlamına geliyor.
API geliştiricileri ve yapay zeka destekli uygulamalar oluşturan ekipler için bu, her şeyi değiştiriyor. Artık büyük altyapı bütçeleri olmadan özel model eğitimi deneyleri yapabilir, mimari değişiklikleri test edebilir ve LLM iç işleyişini anlayabilirsiniz.
Neler Öğreneceksiniz?
Bu makalenin sonunda şunları anlamış olacaksınız:
- nanochat'in geleneksel LLM eğitimine kıyasla maliyetleri 100 kat nasıl düşürdüğünü
- Eksiksiz mimariyi (GPT modeli, Muon optimize edici, veri yükleme)
- Kendi modelinizi eğitmek için adım adım talimatları
- Hızlı LLM araştırması ve deneyleri için nanochat'i nasıl kullanacağınızı
- Gerçek sınırlamaları ve GPT-2 yeteneğinin aslında ne anlama geldiğini
nanochat Nedir?
nanochat, tüm geliştirme sürecini kapsayan minimal bir LLM eğitim çerçevesidir: belirteçleme (tokenization), ön eğitim (pretraining), ince ayar (finetuning), değerlendirme (evaluation), çıkarım (inference) ve ChatGPT benzeri bir web arayüzü.

Kod tabanı, yapılandırma karmaşası veya çerçeve karmaşıklığı olmadan tek bir depoda yer alır. Karpathy, bunu okunabilir, değiştirilebilir ve çatallanabilir "güçlü bir temel" olarak tasarladı.
Temel İddia
GPT-2 yeteneğinde bir model (1.6B parametre) için eğitim maliyetleri:
- Talep üzerine 48 dolar (8xH100 için saatte ~24 dolardan 2 saat)
- Spot örneklerde ~15 dolar
Bağlam sağlamak gerekirse, OpenAI'ın 2019'daki orijinal GPT-2 eğitimi yaklaşık 43.000 dolara mal olmuş ve 32 TPU v3 çip üzerinde 7 gün sürmüştü.
nanochat Neleri Kapsar?
| Aşama | Betik | Açıklama |
|---|---|---|
| Belirteçleme | scripts.tok_train |
BPE belirteçleyiciyi eğit (kelime dağarcığı 32,768) |
| Ön eğitim | scripts.base_train |
Temel GPT modelini eğit |
| İnce ayar | scripts.chat_sft |
Sohbet için denetimli ince ayar |
| Değerlendirme | scripts.base_eval |
CORE metriği, bayt başına bit |
| Çıkarım | scripts.chat_cli |
CLI sohbet arayüzü |
| Web Arayüzü | scripts.chat_web |
ChatGPT benzeri web arayüzü |
Felsefe: Her Şeyi Kontrol Eden Tek Bir Kadran
Çoğu LLM çerçevesi sizi yapılandırma dosyalarına boğar. nanochat tam tersi bir yaklaşım sergiler.
Tüm sistem tek bir parametre etrafında döner: --depth (transformatör katmanlarının sayısı).
# GPT-1 boyutunda model
torchrun --standalone --nproc_per_node=8 -m scripts.base_train -- --depth=12
# GPT-2 yeteneğinde model
torchrun --standalone --nproc_per_node=8 -m scripts.base_train -- --depth=24
# Sınırları zorlama
torchrun --standalone --nproc_per_node=8 -m scripts.base_train -- --depth=26
Derinliği ayarlayın, nanochat diğer her şeyi otomatik olarak hesaplar:
- Transformatör genişliği (gömme boyutu)
- Dikkat başlıklarının sayısı
- Her parametre grubu için öğrenme hızları
- Eğitim süresi (toplam adım)
- Ağırlık azaltma çizelgeleri
- Yığın boyutları
Bu "tek kadran" felsefesi, Karpathy'nin nanochat mini dizisi olarak adlandırdığı şeyi mümkün kılar: farklı boyutlarda, hepsi aynı ilkeli yaklaşımla eğitilmiş, hesaplama açısından optimal modeller ailesi.
Bu Neden İşe Yarar?
Ekip, düzinelerce eğitim çalışması boyunca ölçeklendirme yasalarını ölçtü. Derinlik, genişlik, yığın boyutu ve eğitim süresi arasında öngörülebilir ilişkiler buldular. Tüm bu ayarları açığa vurmak yerine, nanochat bu ilişkileri doğrudan eğitim betiğine kodlar.

Derin öğrenme alanında doktora yapmanıza gerek kalmadan hesaplama açısından optimal eğitim elde edersiniz.
Lider Tablosu: GPT-2'yi Geçme Yarışı
nanochat, "GPT-2'ye ulaşma süresi" yeteneğini izleyen halka açık bir lider tablosu tutar. Hedef, 22 değerlendirme görevinde (ARC, MMLU ve DCLM kıyaslama paketindeki diğerleri) OpenAI'ın orijinal 0.256525 CORE puanını geçmektir.
Mevcut Rekorlar
| Çalışma | Model | Süre | CORE Puanı | Temel Yenilik |
|---|---|---|---|---|
| Orijinal GPT-2 | 1.6B | 168 saat | 0.2565 | OpenAI 2019 temel çizgisi |
| Çalışma 1 | d24 | 3.04 saat | 0.2585 | İlk temel çizgi |
| Çalışma 2 | d26 | 2.91 saat | 0.2578 | FP8 eğitimi |
| Çalışma 3 | d26 | 2.76 saat | 0.2602 | 1M belirteç yığın boyutu |
| Çalışma 4 | d24 | 2.02 saat | 0.2571 | ClimbMix veri kümesi |
| Çalışma 5 | d24 | 1.80 saat | 0.2690 | Yapay zeka tarafından keşfedilen optimizasyonlar |
| Çalışma 6 | d24 | 1.65 saat | 0.2626 | Geliştirilmiş smear/backout |
Yapay Zeka Optimizasyonları Nasıl Keşfetti?
Çalışma 5 ve 6, Karpathy'nin "otomatik araştırma" sisteminden değişiklikleri içeriyordu. Bir yapay zeka ajanı, küçük d12 modelleri üzerinde mimari değişiklikleri araştırdı (5 dakikalık eğitim çalışmaları), ardından kazanan değişiklikleri tam d24 kurulumuna çevirdi.
Sistem şu konularda iyileştirmeler buldu:
- Geri çekilme mekanizması (Backout mechanism): Daha iyi orta katman artıkları çıkarma
- Yayma uygulaması (Smear implementation): Önceki belirteçlerden daha verimli bigram karıştırma
Bu değişiklikler, eğitim süresini 2.02 saatten 1.65 saate indirdi; bu, otonom deneyler yoluyla keşfedilen %19'luk bir iyileşme.
nanochat Nasıl Çalışır?
Kod tabanı, çekirdek modüllerde yaklaşık 3.000 satır içerir. Her bir bileşeni inceleyelim.
1. GPT Modeli (nanochat/gpt.py)
Transformatör, çeşitli optimizasyonlarla modern en iyi uygulamaları takip eder:
Mimari Özellikler:
- Döner gömmeler (Rotary embeddings - RoPE): Öğrenilmiş konum gömmeleri olmadan göreceli konumsal kodlama
- QK normalizasyonu: Büyük ölçekte eğitimi stabilize eder
- Bağlantısız ağırlıklar: Ayrı belirteç gömme ve çıktı projeksiyon katmanları
- ReLU² aktivasyonu: MLP'de GeLU yerine kareli ReLU
- Gruplandırılmış Sorgu Dikkat Mekanizması (Grouped Query Attention - GQA): Daha hızlı çıkarım için sorgu başlıklarından daha az KV başlığı
- Kayar pencere dikkat mekanizması: Yapılandırılabilir desen (örn. “SSSL” kısa/uzun bağlamı dönüşümlü olarak kullanır)
- Flash Attention 3: SDPA geri dönüşü ile Hopper GPU optimizasyonu
Değer Gömmeleri (ResFormer):Dönüşümlü katmanlar, girdi bağımlı geçitleme yoluyla karıştırılan öğrenilebilir değer gömmeleri içerir:
# 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
Bu, önemli hesaplama yükü olmadan kapasite ekler.
Verimlilik Püf Noktaları:
Model, eğitim dinamiklerini iyileştiren üç öğrenilmiş mekanizma içerir:
# 1. Katman başına artıklık ölçekleme
x = self.resid_lambdas[i] * x + self.x0_lambdas[i] * x0
# 2. Yayma: bigram bilgisi için önceki belirteç gömme karıştırma
gate = self.smear_lambda * torch.sigmoid(self.smear_gate(x[:, :, :24]))
x = x + gate * x_pre_smear
# 3. Geri çekilme: orta katman artıklığını çıkarma
x = x - self.backout_lambda * x_backout
2. Muon Optimize Edici (nanochat/optim.py)
nanochat, karma bir optimize edici stratejisi kullanır:
| Parametre Tipi | Optimize Edici | Amaç |
|---|---|---|
| Gömmeler, lm_head | AdamW | Standart adaptif optimizasyon |
| Skaler parametreler | AdamW | Öğrenilmiş ölçeklendirme faktörleri |
| 2D matrisler | Muon | Ortogonalleştirilmiş güncellemeler |
Muon (Newton-Schulz ile Ortogonalleştirilmiş Momentum):
Muon optimize edici, "Polar Express" adı verilen beşinci dereceden bir Newton-Schulz yinelemesi kullanarak ağırlık güncellemelerini ortogonalleştirir:
# Polar Express katsayıları (5 iterasyon)
polar_express_coeffs = [
(8.156, -22.483, 15.879),
(4.043, -2.809, 0.500),
# ... daha fazla katsayı
]
# Ortogonalleştirme döngüsü
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 Varyans Azaltma:
Ortogonalleştirmeden sonra, ölçek çökmesini önlemek için güncellemeler nöron başına normalleştirilir:
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)
Dağıtılmış Eğitim:
Çoklu GPU kurulumları için optimize edici, üç aşamalı eşzamansız iletişimle ZeRO-2 tarzı parçalama uygular:
Aşama 1: Tüm eşzamansız reduce_scatter işlemlerini başlat
Aşama 2: Azaltmaları bekle, güncellemeleri hesapla, all_gathers'ı başlat
Aşama 3: Toplamaları bekle, güncellenmiş parametreleri geri kopyala
Bu, iletişimi hesaplama ile çakıştırarak GPU kullanımını en üst düzeye çıkarır.
3. Hassasiyet Yönetimi (nanochat/common.py)
nanochat, torch.amp.autocast kullanmak yerine hassasiyeti açıkça yönetir:
| Donanım | Varsayılan Veri Tipi | Neden |
|---|---|---|
| CUDA SM 80+ (A100, H100) | bfloat16 | Yerel BF16 tensör çekirdekleri |
| CUDA SM < 80 (V100, T4) | float32 | BF16 desteği yok |
| CPU / MPS | float32 | Azaltılmış hassasiyetli çekirdek yok |
Özel Linear katmanı, ileri geçiş sırasında ağırlıkları hesaplama veri tipine uyacak şekilde dönüştürür:
class Linear(nn.Linear):
def forward(self, x):
return F.linear(x, self.weight.to(dtype=x.dtype))
Ana ağırlıklar, optimize edici hassasiyeti için FP32'de kalır. H100 ve Blackwell GPU'lar için, --fp8 aracılığıyla FP8 eğitimi mevcuttur ve çoğu katmanı tensör bazında ölçeklendirme ile Float8Linear'a dönüştürür.
4. Veri Yükleme (nanochat/dataloader.py)
Veri yükleyici, BOS hizalı en uygun paketleme kullanır:
- Her satır BOS (Dizinin Başı) belirteci ile başlar
- Belgeler, israfı en aza indirmek için en uygun algoritma kullanılarak paketlenir
- Hiçbir belge uymadığında, biri tam olarak doldurmak için kırpılır
- 2048 dizi uzunluğunda ~%35 belirteç kırpması ile %100 kullanım
Bu, her belirtecin BOS'a geri dönebilmesini ve tam belge bağlamını görebilmesini sağlar.
# Tamamen uyan en büyük belgeyi bul
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)
# Tam belgeyi ekle
else:
# Kalan alanı doldurmak için en kısa belgeyi kırp
5. Flash Dikkat Mekanizması Birleşimi (nanochat/flash_attention.py)
Proje, FA3 ve PyTorch SDPA arasında otomatik geçiş yapan birleşik bir arayüz sağlar:
from nanochat.flash_attention import flash_attn
# Her donanımda çalışır - en iyi arka ucu otomatik seçer
y = flash_attn.flash_attn_func(q, k, v, causal=True, window_size=window_size)
bfloat16'lı Hopper GPU'larda Flash Attention 3'ü kullanır. Diğer her yerde PyTorch'un ölçeklendirilmiş nokta-çarpım dikkat mekanizmasına geri döner.
6. Çıkarım Motoru (nanochat/engine.py)
Engine sınıfı, şunlarla verimli üretimi yönetir:
- KV Önbelleği: FA3'ün
flash_attn_with_kvcacheile önceden doldurulmuş istem önbelleği - Araç Kullanımı: Özel belirteçler,
eval()aracılığıyla Python hesaplayıcısını tetikler - Toplu Üretim: Paralel örnekleme için KV önbelleğini klonla
Motor, model hesaplayıcıyı çağırdığında araç çıktı belirteçlerini zorlamak da dahil olmak üzere konuşma akışını koordine eder.
Adım Adım: Kendi Modelinizi Eğitin
Tüm süreç runs/speedrun.sh içinde yer alır. İşte nasıl çalıştırılacağı.
Ön Koşullar
- 8xH100 GPU düğümü (veya benzeri)
- Veri kümesi için ~20 GB disk alanı
- Python 3.10+
- uv paket yöneticisi
Adım 1: Ortam Kurulumu
# uv'yi yükle
curl -LsSf https://astral.sh/uv/install.sh | sh
# Sanal ortam oluştur ve etkinleştir
uv venv
source .venv/bin/activate
# Bağımlılıkları yükle
uv sync --extra gpu
Adım 2: Eğitim Verilerini İndirin
# ClimbMix veri kümesinden ~2B karakter indir
python -m nanochat.dataset -n 170
# Bu, her biri ~100MB olan ~170 bölümü indirir
# Toplam: ~17 GB sıkıştırılmış
Betik, çoklu sıra koordinasyonunu yönetmek için dosya kilitleme ile ön eğitim veri bölümlerini indirir.
Adım 3: Belirteçleyiciyi Eğitin
# 32.768 kelime dağarcığı ile BPE belirteçleyiciyi eğit
python -m scripts.tok_train
# Sıkıştırma oranını değerlendir
python -m scripts.tok_eval
Belirteçleyici, bayt geri dönüşlü BPE ile GPT-4 tarzı bir bölme deseni kullanır. Eğitim, 2B karakter üzerinde yaklaşık 10 dakikada tamamlanır.
Adım 4: Temel Modeli Ön Eğitin
# d24 modelini eğit (GPT-2 yeteneği)
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
Temel parametreler:
--depth=24: GPT-2 boyutunda model--target-param-data-ratio=8: Hız için biraz az eğitimli--device-batch-size=16: GPU başına yığın boyutu--fp8: FP8 eğitimini etkinleştir (yalnızca H100+)
Beklenen çalışma süresi: ~2 saat.
Adım 5: Denetimli İnce Ayar
# Kimlik konuşmalarını indir
curl -L -o ~/.cache/nanochat/identity_conversations.jsonl \
https://karpathy-public.s3.us-west-2.amazonaws.com/identity_conversations.jsonl
# Sohbet yeteneği için SFT'yi çalıştır
torchrun --standalone --nproc_per_node=8 -m scripts.chat_sft -- \
--device-batch-size=16 \
--run=my-sft
Bu, modele konuşma formatını, özel belirteçleri ve araç kullanımını öğretir.
Adım 6: Modelinizle Sohbet Edin
# CLI sohbeti
python -m scripts.chat_cli -p "Why is the sky blue?"
# Veya web arayüzünü başlat
python -m scripts.chat_web
Web arayüzü 8000 portunda çalışır ve ChatGPT benzeri bir arayüz sağlar.
Araştırma İş Akışı: Hızlı Deneyler
Yeni fikirleri test etmek için, daha hızlı yineleme için daha küçük modeller kullanın.
Hızlı Deneyler (~5 dakika)
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
Bu, minimal günlük kaydı ile bir d12 (GPT-1 boyutunda) modeli eğitir. Mimari değişiklikleri test etmek için mükemmeldir.
İzlenecek Metrikler
Bunları Weights & Biases'ta takip edin:
- val_bpb: Doğrulama bayt başına bit (kelime dağarcığı boyutundan bağımsız kayıp)
- core_metric: DCLM CORE değerlendirme puanı
- train/mfu: Model FLOPS kullanımı (donanım verimliliği)
- train/tok_per_sec: Eğitim verimi
Test Gereksinimleri
Herhangi bir iyileştirme, tüm derinliklerde (d12'den d26'ya kadar) çalışmalıdır. Bu, tek bir model boyutuna aşırı uymayı önler ve ilkeli ilerlemeleri sağlar.
nanochat Neden Önemli?
Maliyet Erişilebilirliği
| Yaklaşım | Maliyet | Süre | Donanım |
|---|---|---|---|
| OpenAI GPT-2 (2019) | $43,000 | 168 saat | 32 TPU v3 |
| nanochat (2026) | $48 | 2 saat | 8xH100 |
| nanochat spot | ~$15 | 2 saat | 8xH100 spot |
Bu, LLM eğitimini şunların erişimine sokar:
- Bireysel araştırmacılar
- Küçük start-up'lar
- Üniversite dersleri
- Hobi sahipleri
Eğitimsel Değer
Kod tabanı bir öğrenme kaynağı olarak hizmet verir:
- GPT modeli için ~500 satır
- Optimize edici için ~530 satır
- Her tasarım kararında açık yorumlar
- Gizli yapılandırma yok
Öğrenciler, eksiksiz bir LLM sürecini okuyabilir, değiştirebilir ve deneyebilir.
Araştırma Hızı
Eğitim süresini günlerden saatlere indirmek şunları sağlar:
- Daha hızlı hipotez testi
- Haftada daha fazla deney
- Daha düşük başarısızlık maliyeti
- Lider tablosu aracılığıyla topluluk işbirliği
Şeffaflık
Her tasarım seçimi belgelenmiştir:
dev/LOG.mddosyasındaki ölçeklendirme yasaları- GitHub Tartışmalarındaki ablasyon çalışmaları
- Lider tablosu girişleri için tam çoğaltma detayları
- Açık yapay zeka katkısı açıklaması
Sınırlamalar ve Gerçeklik Kontrolü
nanochat etkileyici olsa da belirgin sınırları vardır.
Donanım Gereksinimleri
48 dolarlık rakam, bir 8xH100 düğümüne erişim olduğunu varsayar. Bulut kiralama maliyetleri değişir:
- Lambda Labs: 8xH100 için saatte ~25 dolar
- RunPod: Spot fiyatlandırmayla saatte ~15 dolar
- Toplam çalışma süresi: ~2 saat ön eğitim + SFT
Sağlayıcıya bağlı olarak tam bir çalıştırma için ~50-100 dolara ihtiyacınız olacaktır.
Yetenek Tavanı
nanochat, GPT-2 seviyesinde performans (2019 teknolojisi) elde eder. Bu şu anlama gelir:
Yapabilecekleri:
- Temel sohbet
- Basit muhakeme
- Temel matematik
- Gerçekleri hatırlama (sınırlı)
Yapamayacakları:
- Karmaşık çok adımlı muhakeme
- Basit fonksiyonların ötesinde kod üretimi
- İnce ayrıntılı talimat takibi
- GPT-4, Claude veya Gemini ile rekabet etmek
Onu bir anaokulu öğrencisi gibi düşünün: temel sohbet yeteneğine sahip ama uzman seviyesinde iş yapamaz.
Veri Gereksinimleri
Tam hızlandırma şunları indirir:
- ~170 veri bölümü
- ~17 GB sıkıştırılmış
- Toplam ~2B karakter
Yeterli depolama ve bant genişliğine ihtiyacınız olacaktır.
Metrik Sınırlamaları
CORE puanı 22 görevi ölçer ancak şunları yakalamaz:
- Gerçek dünya sohbet kalitesi
- Alana özgü bilgi
- Talimat takibi nüansı
- Güvenlik ve hizalama
Farklı rastgele tohumlar ~0.016 CORE varyansı üretir. Sonuçlarınız farklılık gösterebilir.
Sıkça Sorulan Sorular
nanochat ile bir model eğitmek ne kadara mal olur?
Talep üzerine yaklaşık 48 dolar (saatte 24 dolar × 2 saat) veya spot örneklerde yaklaşık 15 dolar. Bu sadece ön eğitimi kapsar. SFT için ~30 dakika ekleyin.
Hangi GPU'ya ihtiyacım var?
Minimum: Tek GPU (herhangi modern bir veri merkezi GPU'su). Optimal: En hızlı eğitim için 8xH100 veya 8xA100. Kod, otomatik gradyan birikimi ile 1 GPU'dan 8 GPU'ya ölçeklenir.
Eğitim ne kadar sürer?
Yapılandırmaya ve donanıma bağlı olarak 1.65 ila 3 saat sürer. Mevcut lider tablosu rekoru, bir d24 modeli için 1.65 saattir.
CORE metriği nedir?
DCLM CORE puanı, ARC (bilim soruları), MMLU (çok görevli dil anlama) ve diğer kıyaslamalar dahil olmak üzere 22 görevde modelleri değerlendirir. GPT-2, 0.256525 puan aldı. nanochat düzenli olarak 0.26'yı aşar.
Tek bir GPU üzerinde eğitim yapabilir miyim?
Evet. torchrun komutunu atlayın ve kod otomatik olarak gradyan birikimi kullanır. Eğitim 8 kat daha uzun sürer ancak neredeyse aynı sonuçları üretir.
nanochat hangi veri kümesini kullanır?
Şu anki en iyi sürüm ClimbMix'i (NVIDIA'nın seçilmiş web veri kümesi) kullanır. Önceki sürümler FineWeb-EDU'yu kullanıyordu. Belirteçleyici, ilk ~8 bölümden ~2B karakter üzerinde eğitim yapar.
nanochat Apple Silicon üzerinde çalışır mı?
Evet. Kod, float32 hassasiyetle MPS (Metal Performans Gölgelendiricileri) üzerinde çalışır. Eğitim CUDA'dan daha yavaştır ancak deneyler için işlevseldir.
Eğitimi bir kontrol noktasından devam ettirebilir miyim?
Evet. Kaydedilmiş bir kontrol noktasından devam etmek için --resume-from-step=<step> kullanın. Veri yükleyici durumu da tam olarak devam ettirme için kaydedilir.
nanochat ile nanoGPT arasındaki fark nedir?
nanoGPT yalnızca ön eğitimi kapsıyordu. nanochat, tüm süreci kapsar: belirteçleme, ön eğitim, SFT, RLHF, değerlendirme, çıkarım ve web arayüzü.
Sonuç
nanochat, LLM eğitiminin artık büyük bütçeler veya özel altyapı gerektirmediğini kanıtlıyor. 2019'da 43.000 dolara mal olan şey, şimdi 50 doların altında.
Projenin etkisi, ham maliyet düşüşünün ötesine geçiyor. Karpathy, "tek kadranlı" bir arayüze sahip minimal, okunabilir bir kod tabanı sağlayarak hem bir araştırma aracı hem de bir eğitim kaynağı oluşturdu.
Temel Çıkarımlar
- 100 kat maliyet azaltma: GPT-2 yeteneği için 43.000 dolardan 48 dolara
- 100 kat hızlanma: 168 saatten 1.65 saate
- Tek yapılandırma kadranı:
--depthher şeyi kontrol eder - Tam süreç: Belirteçlemeden web arayüzüne kadar
- Topluluk odaklı: Sürekli iyileştirmelerle halka açık lider tablosu
Sonraki Adımlar
Kendi modelinizi eğitmeye hazır mısınız? nanochat deposu ve runs/speedrun.sh betiği ile başlayın.
Yapay zeka destekli uygulamalar geliştiren API geliştiricileri için LLM eğitiminin iç işleyişini anlamak hiç bu kadar erişilebilir olmamıştı. Giriş engeli, "risk sermayesi destekli startup"tan "hafta sonu projesi" seviyesine düştü.
