Geliştirme
Tarayıcıda model eğitme
Scellis eğitim döngüsünün tamamını — autograd, optimizer'lar, zamanlayıcılar, karma hassasiyet, PEFT — kendi GPU'nuzda, bir tarayıcı sekmesinde, ilk yüklemeden sonra çevrimdışı çalıştırır. İddia konusunda net olalım: bir sekme, kiralanmış bir veri merkezi GPU'sunu geçmez ve Scellis bunu asla iddia etmez. Elde ettiğiniz şudur: sıfır kurulum, cihazınızda kalan hesaplama, her planda ücretsiz yerel hesap gücü ve kuruluş gereği yeniden üretilebilir çalıştırmalar. Bu sayfa yolu baştan sona yürür: yapılandır, bütçele, çalıştır, checkpoint al, devam et.
Dağınık ayarlarda değil, Model View'da yapılandırın#
Bir eğitim çalıştırmasını tanımlayan her şey modelin kendisinde, Model View'da yaşar — bir model düğümüne çift tıklayarak girdiğiniz tam ekran editör. Aynı model orada üç biçimde birden görünür — graf, form ve SML'de (Scellis Model Language) kod — tek bir kaydın üç izdüşümü, tek kare içinde eşzamanlı. Eğitim hattı da o kaydın parçasıdır:
model: user/ada/tiny_transformer@3
optimizer: { block_id: training/optimizer/adamw, lr: 3.0e-4, weight_decay: 0.01 }
scheduler: { block_id: training/scheduler/warmup_cosine, warmup_steps: 500 }
loss: { block_id: training/loss/cross_entropy, label_smoothing: 0.1 }
epochs: 10
batch_size: 32
grad_clip: { max_norm: 1.0 }
precision: { policy: mixed_f16, master_weights: f32, loss_scaling: dynamic }
determinism_tier: prod # debug | prod | fast — never silently defaulted
seed: 42 # counter-based RNG, checkpointed with the runBunların hiçbiri genel uygulama ayarlarında gizlenmez — ve bunun altı çizilmeye değer bir sonucu vardır: modeli paylaştığınızda eğitim hattının tamamı onunla birlikte taşınır; modeli açan kişi yalnızca mimarinizi değil, eğitim düzeneğinizi de alır. Son iki satıra dikkat edin: determinizm kademesi açık ve görünür bir tercihtir; tohum ise durumu çalıştırmayla birlikte checkpoint'lenen sayaç tabanlı bir RNG'yi besler.
Hazır gelen bileşen yığını#
Bileşen yığını hazır katalog içeriği olarak gelir — bir başlangıç kümesi, asla bir tavan değil. Her satır değiştirilebilir ve her kategori, yerleşiklerin izlediği yazarlık yolundan sizin tarafınızdan genişletilebilir; yazdığınız optimizer bu seçicilerde tıpkı hazır gelen biri gibi görünür.
| Kategori | Hazır gelen bileşenler |
|---|---|
| Optimizatörler (9) | Adam · AdamW · SGD · LAMB · Adafactor · Lion · Sophia · Int8Adam · Prodigy |
| Kayıp fonksiyonları (15) | MSE · L1 · BCE · CrossEntropy · KLDivergence · PoissonNLL · GaussianNLL · Focal · Huber · Dice · IoU · Contrastive · CosineEmbedding · InfoNCE · TripletMargin |
| LR zamanlayıcıları (14) | Step · MultiStep · Exponential · CosineAnnealing (+WarmRestarts) · OneCycle · ReduceOnPlateau · WarmupCosine · Linear · Polynomial · Cyclic · Sequential · Chained · Lambda — artı bir LR aralık-testi bulucusu |
| PEFT adaptörleri (6) | LoRA · QLoRA · PrefixTuning · BitFit · IA3 · PromptTuning |
| Gradyan op'ları (8) | Kırpma, AMP ölçekleme, biriktirme / micro-batching, aktivasyon checkpointing ve daha fazlası |
| Düzenlileştirme (5) | Mixup · CutMix · Label Smoothing · Weight Decay · Spectral Norm |
| Ağırlık başlatma + ortalama | 11 başlatma şeması · EMA / SWA |
| Metrikler (10) | Accuracy · F1 · Precision · Recall · ConfusionMatrix · Perplexity · AUROC · AUPRC · ECE · Brier |
PEFT üzerine dürüst bir dipnot: LoRA ailesi derlenmiş op-grafına indirgenir; prefix ve prompt tuning bugün eager yolda çalışır — beyan edilmiş bir durum, gizlenmiş değil.
İlk adımdan önce bir bellek planı#
Herhangi bir şey çalışmadan önce planlayıcı bellek hikâyesinin tamamını hesaplar: parametreler, aktivasyonlar, gradyanlar, optimizer durumu ve çalışma belleği — artı karma hassasiyet altında ağırlıkların f32 ana kopyası. Bu sınıflar bellekte aynı anda durur: sığması gereken, TOPLAMLARI, yani tepe değeridir; iç içe döngüler bu tepeyi görünür biçimde büyütür. Tepe değeri cihazınızın gerçek sınırlarına karşı denetlenir ve üç karardan biriyle döner: yeşil — sığar; sarı — uyarılarla sığar; kırmızı — reddedilir ve ret, çözümü adıyla söyler. Batch'i küçültün, aktivasyon checkpointing'i açın, hassasiyeti değiştirin: her öneri tahmini kazancıyla gelir — deneme yanılma yerine sayılarla karar verirsiniz.
Aynı dürüstlük kapasite için de geçerlidir. Cihazları havuzlamak bellekle değil, işlem hacmiyle ilgilidir: parametreleri artı optimizer durumu tek cihazın VRAM'ini aşan bir model, orada hiçbir batch boyutunda eğitilemez — planlayıcı bunu açıkça söyler ve PEFT ile parçalama (sharding) yollarını gösterir (tek başına QLoRA, ince ayar tabanını kabaca 4–8× düşürür). İşin cihazlara nasıl yayıldığı — ve bunun dürüstçe ne kazandırdığı — dağıtık hesaplama sayfasının hikâyesidir.
Gerçekte ne çalışır#
Modeliniz, incelenebilir bir IR merdiveninden WGSL hesaplama çekirdeklerine derlenir; hiçbir şey bu merdiveni atlamaz. Eğitim döngüsünün kendisi host güdümlüdür — veriye bağlı kontrol akışını sıradan kılan da budur: taşan adımlarda NaN atlama, platoda tetiklenen LR düşüşleri, erken durdurma. Karma hassasiyet gerçek bir sayısal politikadır — dinamik kayıp ölçekleme, f32 ana ağırlıklar, f32'de biriktirilen indirgemeler — ve sayısal tavan örtbas edilmek yerine açıkça söylenir: WGSL'de bf16 yoktur (kayıp ölçeklemeli f16 tarayıcıdaki dürüst yoldur) ve GPU'da f64 yoktur (gerçek f64, WASM oracle'ında yaşar). Döngünün çevresinde derleyici gösterişsiz işleri yapar: WebGPU'nun 128 MB bağlama sınırı etrafında otomatik karolama, birinci sınıf bir flash-attention indirgemesi ve istediğiniz yerde aktivasyon yeniden-hesaplaması.
Füzyon dürüstlüğü#
Çekirdek füzyonu, fast kademesindeki çıkarım forward'ında devreye girer. Eğitimin backward'ı eager bantta koşar: gradyan doğrudur, füzyonlu değildir. Beklenen eager-füzyonlu ek yük aralığı uygunluk korpusunda ölçülür ve her motor sürümüyle yeniden yayımlanır — asla uydurulmuş bir sabit değildir.
Checkpoint'ler tam kaldığı yerden devam eder#
Her checkpoint içerik-adresli bir pakettir:
{
"weights": "sha256:9c1e07…",
"optimizer_state": "sha256:4b77aa…",
"rng_state": { "algorithm": "philox4x32", "counter": 18432000 },
"epoch": 7,
"step": 21875,
"metrics": { "loss": 0.4181, "val_accuracy": 0.887 }
}RNG sayaç tabanlı olduğu için aynı tohum ve sayaç, her arka uçta aynı çekilişleri üretir — dropout, karıştırma ve veri artırma için adlandırılmış alt akışlarla. Bir checkpoint'i sürdürmek eğitimi tam olarak sürdürür, aşağı yukarı değil. Güvenceler kademelidir ve size açıkça söylenir: debug kademesinde aynı cihazdaki iki çalıştırma bit düzeyinde özdeştir; prod kademesinde cihazlar arası uyum beyan edilen tolerans içindedir; cihazlar arası bit düzeyinde özdeşlik ise CPU oracle yoludur. Çalıştırmalar, veri kümesi sürümleri (hash ile referanslanır — bkz. veri ve bağlayıcılar), checkpoint'ler ve metrikler baştan sona köken kayıtlarıdır: deneyleri karşılaştırmak, zaten var olan kayıtlar üzerinde bir sorgudur — yeniden üretilebilirliğin özü ve bir sonucu yeniden üretmenin bir kazı projesi değil, bir URL olmasının nedeni.
İnce ayar aynı yüzeyde#
Eğitilmiş bir model aynı Model View'da yeniden açılır — içe aktarılmış bir model de öyle: motor özelliği değil içerik olan ONNX, safetensors ve PyTorch state-dict codec'leri üzerinden. Güvendiğinizi dondurun, PEFT adaptörlerini katman katman ekleyin, bir başlığı değiştirin, sonucu eğitime geri gönderin. Ayrı bir ince ayar ürünü yoktur: tek yüzey, tek planlayıcı, tek çalıştırma yolu.
Uzun çalıştırma, dürüstçe#
Tarayıcılar arka plandaki sekmeleri kısar ve Scellis bunu saklamak yerine söyler: bir eğitim sekmesi arka plana düştüğünde yavaşlama yüksek sesle duyurulur — tahminle değil, gerçek zamanlayıcı sapmasıyla ölçülerek. Ürün buna karşı onaya bağlı bir ekran uyanıklık kilidi ve ayrık bir çalıştırma penceresi sunar; bu pencere, siz başka yerde çalışırken ekranda bir Scellis yüzeyi tutan bir izleme ve denetim yüzeyidir. Hesaplamayı taşımaz: döngü yine Studio sekmesinde koşar ve o sekme kısıldığında pencere bunu yüksek sesle söyler. Çöken bir sekme, son checkpoint'ten tek eylemle devam edilebilen açık bir “kesildi” durumuna bağlanır. Ve abartılacak bir gözetimsiz mod yoktur — kapalı bir sekme hiçbir şey hesaplamaz.
Not
Kullanılabilir WebGPU yok mu? İş akışları, yüksek sesli ve kalıcı bir uyarının arkasında daha yavaş bir CPU yolunda yine de çalışır: “CPU üzerinde çalışıyor — N× daha yavaş, büyük model eğitimi sınırlı”. İkisi de olmayan bir cihaz bile her modeli oluşturma ve inceleme için açar. Neyin, neden sınırlı olduğunun tam haritası dürüst sınırlar sayfasındadır.