Kanıt koşusu · 8–9 Eylül 2026

2,78 trilyon parametreli bir modelin LoRA adaptörü, 7,6 GB RAM'li bir dizüstünde eğitildi

Kimi K3 belleğe sığmıyor: 1,56 TB'lık checkpoint bir USB harici diskte duruyor, 93 katmanın her biri sırayla diskten akıyor, RAM'de aynı anda tek katman kalıyor. Eğitilen tek şey 590 MB'lık LoRA adaptörü; modelin 2,78 trilyon parametresine dokunulmuyor. Döngünün doğru çalıştığını şöyle sınadık: aynı diziyi tekrar tekrar verdik ve loss her turda düştü.

1,00 0,75 0,50 0,25 0,00 1. tur 2. tur 3. tur 0,909 0,500 0,157 0,521 0,193
A dizisi B dizisi

Loss yalnız cevap token'larında ölçülüyor; istem token'ları maskeli. İki dizi sırayla veriliyor, bu yüzden B'nin ilk ölçümü A üzerindeki ilk güncellemeden sonra alınmış.

yaklaşık 7,4 saadım temposu (asıl koşu)
4,0-4,7 GByerleşik bellek (asıl koşu)
590 MBeğitilen ağırlık
1,56 TBdiskteki model

Ne sığmıyor

Sorunun tamamı şu oranda: modelin ağırlıkları makinenin belleğinden iki yüz kat büyük. Çözüm onu sıkıştırmak değil, hiç durdurmadan akıtmak.

checkpoint (USB disk)
1560 GB
ortak ağırlıklar (NVMe)
108,8 GB
makinenin RAM'i
7,6 GB
LoRA adaptörü (eğitilen)
0,59 GB

Ölçek logaritmik. Uzman ağırlıkları MXFP4 olarak diskte duruyor; her uzman 17,5 MB.

Bir adım nasıl geçiyor

Bir eğitim adımı 93 katmanın ileri süpürmesi, sonra aynı 93 katmanın geri süpürmesidir. Her çubuk bir katman: ağırlıkları diskten okunur, hesap yapılır, bellekten atılır. Katman sınırındaki ara sonuçlar NVMe'deki halka tampona yazılır.

ileri · 3 sa 11 dk
geri · 3 sa 48 dk

93 + 93 katman: ileri geçişte katman başına 123 saniye, geri geçişte 147 saniye (asıl koşunun 1. adımında ölçüldü; o adımın kendi toplamı 6 sa 59 dk, ama koşunun geneli için geçerli sayı ilk üç adımda ölçülen yaklaşık 7,4 saatlik tempodur). Süreyi belirleyen hesap değil okuma hızı: süreç ilk sekiz saatte 3,22 TB okudu, saniyede 110 MB.

Adım adım

AdımDiziLossPerplexityİleri geçiş bitti
1A0,9092,488 Eyl 12:26
2B0,5211,688 Eyl 18:13
3A0,5001,658 Eyl 23:42
4B0,1931,219 Eyl 05:28
5A0,1571,179 Eyl 11:03

Beş Türkçe talimat örneği iki pakete sıkıştırıldı: toplam 1082 token, 528'i eğitilen cevap token'ı; dizi uzunluğu sınırı 1024, lr 1e-3, warmup 2. Son sütundaki damga, adımın ileri geçişinin bittiği — yani loss'un yazıldığı — andır; geri geçiş o damgadan sonra yaklaşık üç saat daha sürer, adım orada bitmez. İki ardışık damganın farkı yine de tam bir adımdır, çünkü aynı kayma iki uçta da var: ileri bitişinden ileri bitişine. Ölçülen dört aralık 5,78, 5,49, 5,77 ve 5,58 saat — yani 5,5–5,8 saat, ortalama 5,65. Süreç 27 saat boyunca 4,5–4,7 GB bellekte kaldı; bu bir tepe değeri değil, projede kaydedilen en yüksek değer daha eski bir 256 token'lık adımdaki 6,24 GB. Bu tempo yalnız bu koşuya ait: asıl koşunun dolu 1024 token'lık dizileri daha çok uzman okuduğu için orada ilk üç adımda ölçülen tempo yaklaşık 7,4 saat.

Bu ne kanıtlar, ne kanıtlamaz

Kanıtladığı

İleri geçiş → geri geçiş → AdamW → checkpoint döngüsü uçtan uca doğru çalışıyor. Gradyanın yönü doğru; sonlu farkla katman katman doğrulanan geri geçişin uçtan uca teyidi bu. 2,78 trilyon parametreli bir modelin adaptörü bu makinede hareket ediyor.

Kanıtlamadığı

Genelleme. Beş örnek üzerinde loss'un düşmesi ezberdir ve bu testte istenen de tam olarak budur. Modelin Türkçesinin iyileşip iyileşmediği bu grafikten okunamaz.

Bu yüzden ölçüt eğitimden önce yazıldı: modelin yayınından sonra çıkmış Türkçe haber metninde bit/bayt 0,455 → ≤0,441 inecek, İngilizce Wikipedia dilimi 0,194 → ≤0,198'i geçmeyecek. Sonuç olumsuz çıkarsa da olduğu gibi yazılacak.

Şimdi ne dönüyor

9 Eylül 12:53'te asıl koşu başladı: 400 Türkçe talimat örneği, en çok 1024 token'lık 154 paket dizi, 100 adım, lr 5e-4 kosinüs. İlk üç adımın ölçülen temposu yaklaşık 7,4 saat (aralıklar 7,26 ve 7,62 saat; bu iki aralık koşmakta olan kayıttan okundu — depodaki evidence/ anlık görüntüsü asıl koşunun 1. adımında bitiyor), yani yaklaşık 31 gün: 9-11 Ekim civarında tamamlanıyor. Bir systemd zamanlayıcısı 15 dakikada bir ilerlemeyi telefona gönderiyor; süreç ölürse son checkpoint'ten devam ettiriyor, USB disk düşerse yeniden bağlıyor.

Yol boyunca çıkan yönlendirme ölçümleri ayrı bir hikâye: uzman seçimi dilden çok alana duyarlı, uzman yerelliği tek token'da gerçek ama eğitim batch'inde çöküyor, Türkçenin maliyeti yönlendiricide değil tokenizer'da.