Bir Dil Modeli Neyin Tahminini Yapar
Olasılıksal Devam Motoru
Bir dil modeli, token dizisi alır ve bir sonraki token için olasılık dağılımı atar. Ona the cat sat on the verin ve tüm kelime dağarcığı üzerinde olasılıklar 출력 eder: mat, floor, couch üzerinde yüksek kütle; xylophone, Tuesday üzerinde düşük kütle.
O dağılımı örnekleyerek, bir token ekleyerek ve geri besleyerek: o döngü metni birer token olarak üretir. Ototregresif üretim, her adımın kendi önceki çıktısına regrese ettiği için bu isimle adlandırılır.
Bir Dil Modelini Üç Sayı Tanımlar
Sözlük boyutu (V). Bir modelin üretebileceği farklı token sayısı. ANDREA-12M 4.353 token kullandı; ANDREA-120M 8.449 kullanıyor.
Bağlam penceresi (T). Bir ileri geçişte kaç token sığar. ANDREA modelleri T = 1.024 kullanır.
Parametre sayısı (P). İçinde kaç öğrenilmiş ağırlık bulunur. 12M, 120M ve 480M, P'ye göre bir aileyi adlandırır.
Üç Kişilik Bir Aile
| Varyant | d_model | Baş | Katman | Bağlam | Parametreler |
|---|---|---|---|---|---|
| ANDREA-12M | 384 | 12 | 6 | 1024 | 12.8M |
| ANDREA-120M | 768 | 12 | 12 | 1024 | ~120M |
| ANDREA-480M | 1536 | 24 | 16 | 1024 | ~480M |
Üç düğme ölçeklenir: d_model (her iç vektörün genişliği), n_layer (yığınlanmış transformer bloklarının derinliği), n_head (paralel dikkat projeksiyonları). Kelime dağarcığı ve bağlam aile genelinde sabit kalır.
Aile Tablosunu Okuma
Neden Küçük Önemli
Kısıtlama Olarak Özgürleşme
Yüz milyarlarca parametreli büyük dil modelleri binlerce GPU, özel veri setleri ve kurumsal bütçeler gerektirir. Çok az kişi birini eğitebilir. Çok az kişi birini onarabilir.
Bir GPU üzerindeki küçük bir dil modeli bunu tersine çevirir. 4090'ı (veya bir 3060'ı) olan herkes, açık verilerden ANDREA'yı yeniden üretebilir. Eğitim tarifi aynı zamanda model kartı olarak işlev görür. Açık kod, açık ağırlıklar, açık veri; 72 saatlik hesaplama ile tam izlenebilirlik.
Kapasite vs Kalite
Daha küçük modeller eğitim korpuslarını ezberleyemez. 12.8M parametreli ANDREA-12M, gerçek içerikleri depolama kapasitesine sahip değildir; dönüş yapısını, kelime dağılımını ve yanıt şeklini öğrenir. 10× kapasiteli ANDREA-120M ise gerçek hatırlamayı, çok paragraflı tutarlılığı ve alan genişliğini öğrenir (biyoloji ve sinyal işleme örneklerinde dış değerlendirme ile 9.5/10 doğrulanmıştır).
Önemli nokta: kapasite bir tavan belirler. Müfredat, bu tavana ulaşıp ulaşılacağını belirler. Etkinlikler 14-23 müfredatı kapsar. [TITLE decoder_only/]
Üç Transformer Türü
Encoder, Decoder, İkisi Bir Arada
Orijinal Transformer (Vaswani ve ark., 2017) bir encoder ve bir decoder ile geldi, çeviri için birbirine yapıştırılmış halde. Bu makaleden üç mimari soy çizgisi türemiştir:
Yalnızca Encoder (BERT soyu). Çift yönlü dikkat, nedensel maske yok. Sınıflandırma için optimize edilmiş, üretime değil. Bir token eğitim sırasında hem geçmişini hem geleceğini görür.
Encoder-decoder (T5, BART). Encoder girdi okur; decoder çıktıyı üretir, encoder'a çapraz dikkat ile erişir. Çeviri, özetleme için kullanılır.
Decoder-only (GPT, ANDREA). Nedensel maske: her token sadece geçmişini görür. Sonraki token'ı tahmin etmek için eğitilir. Üretim bedavadır; eğitim ve çıkarım aynı ileri geçişi paylaşır.
Neden Decoder-Only Tek GPU'da Kazanır
Üç neden:
1. Tek hedef. Sonraki-token tahmini herhangi bir metinde çalışır. Eşleştirilmiş kaynak/hedef gerekmez.
2. Eğitim & çıkarım simetrisi. Aynı ileri geçiş, özel üretim mantığı yok.
3. Bellek sadeliği. Çapraz dikkat yok; bir katman yığını; bir aktivasyon akışı.
ANDREA, microGPT'den miras aldığı decoder-only seçeneğini kullanır; microGPT bunu nanoGPT'den, nanoGPT ise GPT-2'den almıştı. Soy standart kalır; tokenizasyon, eğitim altyapısı ve müfredatta değişenler hayat bulur.
ANDREA Neden Decoder-Only Kullanır
24 GB'ye Ne Sığar
Parametre Başına Bayt
Bir RTX 4090, 24 GB VRAM ile gelir. ANDREA-12M eğitimi 1.4 GB kullandı. ANDREA-120M ise önemli ölçüde daha fazla kullandı. Bu fark basit bir muhasebe egzersizine dayanır: her parametre eğitim sırasında bellekte birden fazla kez görünür.
Her parametre için eğitim tutar:
- Ağırlık kendisi (1× ağırlık)
- Adam birinci moment (m): ağırlık ile aynı şekil (1× ağırlık)
- Adam ikinci moment (v): ağırlık ile aynı şekil (1× ağırlık)
- Gradyanlar: ağırlık ile aynı şekil (1× ağırlık)
- Aktivasyonlar & geçiciler: ~2-4× ağırlık (batch & bağlamla değişir)
Toplam: ~6-8× ağırlık sayısı, hassasiyete göre bayt cinsinden.
Hassasiyet Her Şeyi Çarpan Olarak Etkiler
| Hassasiyet | Bayt/param | 120M ağırlık için Toplam | Notlar |
|---|---|---|---|
| FP32 | 4 | 480 MB | Temel; en güvenli, en yavaş |
| FP16 | 2 | 240 MB | cuBLAS, yarım bellek |
| FP8 E4M3 | 1 | 120 MB | Tensor çekirdekleri, NaN riski |
Tam eğitim zamanı ayak izi için 6-8× ile çarpın. ANDREA-120M, FP16'da rahatça eğitilir (~2 GB ağırlıklar + optimizer + gradyanlar için); FP8 E4M3, RTX 4090 tensor çekirdeklerinde eğitim süresini yarıya indirir.
Etkinlik 13 (grow_a_language_model_precision), FP hassasiyet değişimlerini detaylı olarak inceler.
ANDREA-120M'nin Optimizer Durumunu Boyutlandırma
Yirmi Beş Etkinlik
İki Yarı
Bu kurs net bir şekilde ikiye ayrılır. İlk yarı, microGPT'in alana öğrettiği şeyi kapsar: tek bir GPU'da çalışan bir transformer. İkinci yarı, ANDREA'nın gerçek katkısını kapsar: öğrenen bir müfredat.
Yarı 1: Tek GPU'da Bir Transformer (etkinlikler 2-13)
| # | Etkinlik | Vuruş |
|---|---|---|
| 2 | Harris morfemi tokenizer'i | dağılımsal segmentasyon, 256+N+1 kelime haznesi |
| 3 | Tokenizer-diyet hizalaması | doygunluk noktası, neden 12M %63.6 israf etti |
| 4 | Gömme katmanları & konum | öğrenilmiş token + konum sorgusu |
| 5 | Ölçeklenmiş nokta-çarpım dikkati | Q·Kᵀ/√d, nedensel maske, softmax |
| 6 | Çok başlı dikkat | baş bölünmeleri, paralel projeksiyonlar |
| 7 | Transformer bloğu | MLP, artıklar, katman normalizasyonu |
| 8 | Çapraz-entropi & şaşkınlık | log-olabilirlik, SMMA kaybı |
| 9 | Özel CUDA'da geri yayılım | microgpt_cuda.cu boyunca zincir kuralı |
| 10 | AdamW | ayrılmış ağırlık çürümesi; vanilla Adam neden öldü |
| 11 | LR ısınma + cosinus çürümesi | 2000-adım rampa; anlık tepe neden 120M'yi yok eder |
| 12 | Gradyan kesme | global L2 normu; 3 CUDA çekirdeği |
| 13 | FP32 / FP16 / FP8 E4M3 | hassasiyet takasları; tensör çekirdekleri |
Yarı 2: Öğrenen Bir Müfredat (etkinlikler 14-24)
| # | Etkinlik | Vuruş |
|---|---|---|
| 14 | Çok kollu haydutlar | UCB1, keşif vs sömürü |
| 15 | Aşama tabanlı zar kontrolü | 7/14/21/28/42 aşamalar, 1d3/1d4 zarlar |
| 16 | Ödül atfetme & EMA | kaynak başına kayıp EMA, 1000× ölçekleme |
| 17 | Kaynak tabanları & çağ cezası | 1/(1+epochs) ezberlemeyi önler |
| 18 | Kapsama bonusu | belge düzeyinde izleme, 1.3× tazelik |
| 19 | Müfredat ısınması | ilk 20K adımda 7 sohbet/naber kaynağı |
| 20 | Karakter değil şekle göre filtreleme | has_system_prompt_shape() |
| 21 | Tutarlılık tabanlı erken durdurma | bigram/trigram/word/char otomatik durma |
| 22 | Kontrol noktası, devam ettirme, sinyaller | format, SIGTERM/SIGUSR1, loss.json sürekliliği |
| 23 | Örnek denetim & harici derecelendirme | bir çalışmayı okuma, 9.5/10 bölgesi |
| 24 | microGPT'den ANDREA-120M'e | v1 çöküşü, v2 düzeltmeleri, v2.5 yama, v3 cilalama |
Artı bir yoldaş: geometry_of_andrea her katmanı geometri olarak görür (gömme alanı, dikkat mekanizması olarak projeksiyon, kayıp yüzeyi, bandit olarak ayrık basitlik üzerinde bir yürüyüş).
Önerilen Sıra
2-13 numaralı etkinlikler çalışan bir transformer oluşturur. Daha önce transformer eğitmişseniz yarıya kadar atlayın; merakınız kabardığında geri dönün.
Her etkinlik mümkün olduğunca bağımsızdır. Matematik referansları önceki etkinlikleri adıyla belirtir (etkinlik 5'e bakın: ölçekli nokta-ürün dikkati). Kod referansları ~/git/uncloseai-cli/ içindeki microgpt/microgpt_cuda.cu & microgpt/training_proxy.py dosyalarını işaret eder.