· kaynak dev.to (home feed)
Frost: Neve dili üzerine kurulu, ResNet-18 benchmark'larıyla gelen 1400 satırlık bir derin öğrenme framework'ü
Bir dev.to yazısı, Frost'u tanıtıyor: Neve dili üzerine kurulmuş, yaklaşık 1400 satırlık bir derin öğrenme framework'ü; paralel dataloader'lar, GPU kernel'ları ve tekrarlanabilir bir ResNet-18 benchmark'ı sunuyor.

Bir framework ve bir dil, birlikte yayınlandı
Projeyi geliştiren ve NoSavedDATA adıyla yayın yapan geliştirici, daha önce çıkan Neve programlama dili üzerine kurulu Frost adlı bir derin öğrenme framework'ünü yayınladı. dev.to'daki tanıtım yazısına göre framework, paralel dataloader'ları, GPU kernel'larını ve yüksek seviyeli bir hesaplama dilini yaklaşık 1400 satır kodla ifade ediyor ve yanında ilk bir benchmark ile geliyor: ResNet-18. Benchmark kodu ayrı bir herkese açık depoda yayınlandığından sonuçların söylenene güvenmek yerine yeniden üretilebilmesi mümkün.
Projeyi motive eden üç sorun
Yazı, projeyi güncel PyTorch merkezli stack'e ilişkin üç sıkıntıya dayandırıyor.
İlki okunabilirlik. Sophia optimizer makalesini okuyup gayri resmi bir implementasyonla denemeler yapan yazar, NaN'lerle dolu kötü sonuçlar aldı; sonraki bir makale de bunun ve başka optimizer'ların abartılı iddialar ileri sürdüğünü savundu. Çıkarılan ders şu: PyTorch'ta optimizer'lar bile okumak ve genişletmek için zor, dolayısıyla başka birinin araştırmasını denetlemek saatlerce çalışma ve hata ayıklama demek ve net bir yanıt garantisi yok.
İkincisi GPU kodu. Flash attention yaklaşık 2 kat hızlanma sağladı diye belirtiyor yazar, ama yüksek seviyeli kernel framework'leri yazarı için yeterince olgun olmadığından C++ ve CUDA ile yazılmıştı. PyTorch'un üzerine C++ iliştirmek ise tek bir satır kernel kodu gerçekten çalışmadan önce setuptools ve extension kalıpları demek.
Üçüncüsü paralellik. Atari için BBF'yi implemente eden bir lisans tezi kapsamında Efficient Zero pekiştirmeli öğrenme modelini incelerken yazar, PyTorch'un ifade edemediği bir paralellik buldu; orijinal implementasyon, C fonksiyonlarının Python'dan çağrılabilmesi için Cython'a başvuruyordu. PyTorch'un kendi data worker'ları Global Interpreter Lock'u aşmak için C ile yazılmış; byte-pair encoding gibi ön işleme ise tipik olarak C, C++ veya Rust'ta yapılıyor. Python'un üretkenliği, C ailesinin hızı, Lua ya da Julia ile birlikte çalışabilirlik ve eşzamanlılık için başka araçlar arasında seçim yapmak durumunda kalan yazar, eğitim işlerinin arasındaki boş vakitlerde bir dil yazmaya başladı ve bu daha sonra bir yüksek lisans projesine dönüştü.
Neve, Julia, Mojo ve Triton karşısında nerede duruyor
Yazı Neve'yi üç alternatifle karşılaştırıyor. Julia, C++ hızına yakın çalışan dinamik tipleme, çöp toplama ve kanallar için takdir ediyor — ama CUDA kernel'ları hâlâ blockIdx().x gibi ham temel öğeler açığa çıkarıyor, hızlı matris çarpımı için önemli olan cp_async intrinsic'i interop üzerinden eklenmek zorunda ve yazar end anahtar kelimesinin sözdizimsel gürültüsüne itiraz ediyor.
Mojo, Python birlikte çalışabilirliği, byte-pair encoding benchmark'ları, flash-attention kernel'ları ve MAX üzerinden GPU taşınabilirliği için puan topluyor. Puan kaybettirenler ise yalnızca BPE çıkarımını (eğitimi değil) benchmark etmesi, kanallarının olmaması ve Rust tarzı sahiplik modelini benimsemesi. CuTe ve Cutlass'tan türetilen layout ve tiling yaklaşımı, Neve'nin aynı sorunları ele alma biçimine ilham verdi; ancak yazar ortaya çıkan kodu ağır buluyor: comptime metaprogramlaması sürekli karşımıza çıkıyor ve layout tanımları ayrıntılı.
Triton ise benzer layout ve tiling olanakları sunarken dinamik tipli kalmayı başarıyor ve comptime dertlerinden kaçınıyor.
Şimdiye dek öne sürülen sonuçlar
ResNet-18 benchmark'ının yanında yazar, Neve'nin metin işleme ve BPE eğitiminde SentencePiece'li Python'a yaklaştığını, CPU matris çarpımında NumPy ve OpenBLAS ile rekabetçi olduğunu ve bunu yüksek seviyeli SIMD kodu olarak yazdığını bildiriyor. GPU tarafında ise flash attention implementasyonunu hedefleyen, daha iyi bir programlama arayüzü üzerinde çalışılıyor. Yazının kendisinde benchmark tabloları yok; sayılar bağlantılı depolarda ve bağımsız doğrulama da tam olarak oradan başlayacaktı.
Neden önemli
Asıl argüman Sophia anekdotu. On sayfalık bir makaleyi yeniden üretmek saatlerce çalışma artı hata ayıklama gerektiriyorsa ve iddialarının tutup tutmadığı konusunda yine de şüphe bırakıyorsa, araçlar yalnızca fikirler için değil, araştırma için de bir darboğaz demektir. Uçtan uca okunabilir kadar kompakt, dataloader'ları, ön işlemeyi ve kernel'ları tek bir dille kapsayan bir derin öğrenme stack'i, denetleme, genişletme ve deneyleri yeniden üretme maliyetini düşürür ve orijinal işi zorlaştıran çok dilli yapıştırıcıyı ortadan kaldırır. Frost, performans iddiaları yazarının kendi benchmark'larına dayanan erken dönem, tek geliştirilik bir proje; şüphecilik yerinde olur. Ama tam bir eğitim stack'inin aynı anda Python, C++, Cython ve CUDA gerektirmediğinin kanıtı olarak denenmeye değer.
- #deep-learning
- #programming-languages
- #gpu-kernels
- #open-source
- #benchmarks
İlgili yazılar
- Z.ai'nin GLM-5.3'ü, değişmeden kalan 743 milyar parametreli taban üzerindeki post-training sayesinde büyük kazanımlar iddia ediyor
- Iriszip: tarayıcıda hesap ve yüklemeye gerek olmayan, şifreli P2P dosya aktarımı
- Tek laptopta dokuz coding harness: kullanılabilirliği belirleyen token hızı değil, prompt boyutu