23 puan yazan GN⁺ 2025-09-16 | Henüz yorum yok. | WhatsApp'ta paylaş
  • RustGPT, harici makine öğrenimi framework'leri olmadan, yalnızca saf Rust ve ndarray ile uygulanan transformer tabanlı bir dil modeli
  • Ön eğitim (Pre-training) ve instruction tuning ile olgusal bilgi ve diyalog kalıplarını öğrenmesi için tasarlanmış
  • Yapı, tokenizer → embedding → transformer blokları → çıktı projeksiyonu şeklinde ilerleyen tipik bir LLM mimarisini izliyor
  • Modüler kaynak yapısı ve test kodları sunarak eğitim, çıkarım ve optimizasyon süreçlerinin ayrıntılı biçimde anlaşılmasını sağlıyor
  • Rust ekosisteminde framework bağımlılığı olmadan sıfırdan LLM uygulamak isteyen geliştiriciler ve öğrenenler için önemli bir referans

Proje genel bakışı

  • RustGPT, harici makine öğrenimi framework'leri veya karmaşık bağımlılıklar olmadan, yalnızca saf Rust dili ve doğrusal cebir kütüphanesi (ndarray) ile LLM uygulayan bir açık kaynak proje
  • Temel amaç, modern LLM'lerin çekirdek bileşenlerini (transformer, attention, embedding, optimizasyon vb.) doğrudan uygulamak ve eğitim sürecini anlamak
  • Diğer ana akım LLM'lerden farklı olarak transformer yapısı, backpropagation, tokenizer ve optimizer gibi tüm parçaları Rust koduyla doğrudan tasarlıyor; bu da Rust geliştiricileri ve araştırmacıların derin öğrenmenin prensiplerini sıfırdan anlayıp genişletebilmesini sağlıyor
  • Matris işlemlerini ndarray ile yürütmesi ve PyTorch ya da TensorFlow gibi harici makine öğrenimi paketlerine bağımlı olmaması ayırt edici yönü
  • Modülerlik ve test kapsamı güçlü olduğu için çeşitli deneyler ve iyileştirmeler için uygun; ayrıca "sıfırdan LLM geliştirme (From Scratch)" eğitim amacı için de elverişli

Başlıca özellikler ve uygulama yaklaşımı

  • Transformer mimarisi: giriş metni → tokenizasyon → embedding → transformer blokları → nihai tahmin
    • Giriş metni, tokenizasyon sürecinden geçerek embedding vektörlerine dönüştürülür
    • Embedding'ler Transformer Block içinden geçer (multi-head attention + feedforward network)
    • Son olarak Output Projection Layer, kelime hazinesi üzerindeki olasılık dağılımını üreterek tahmini gerçekleştirir

Uygulama yapısı

  • main.rs: eğitim pipeline'ı, veri hazırlama, interaktif modun çalıştırılması
  • llm.rs: LLM genelinde forward·backward pass ve eğitim mantığı
  • transformer.rs, self_attention.rs, feed_forward.rs: çekirdek transformer blokları
  • embeddings.rs, output_projection.rs: embedding ve nihai çıktı katmanı
  • adam.rs: Adam optimizer uygulaması
  • Her modül, karşılık gelen test kodlarını (tests/) içerir ve işlev doğrulaması yapılabilir

Eğitim·test yöntemi ve veri akışı

  • Eğitim süreci
    • Sözlük oluşturma → ön eğitim (100 epoch, olgusal cümle verisi) → instruction tuning (100 epoch, diyalog verisi)
    • Ön eğitim örneği: "The sun rises in the east and sets in the west"
    • Instruction tuning örneği: "User: How do mountains form? Assistant: ..."
  • İnteraktif mod desteği
    • Eğitim tamamlandıktan sonra prompt-yanıt tabanlı diyalog testi yapılabiliyor
    • Örnek: "How do mountains form?" → "Mountains are formed through tectonic forces or volcanism..."

Teknik ayrıntılar

  • Kelime haznesi boyutu: eğitim verisine göre dinamik olarak ayarlanıyor
  • Embedding boyutu: 128, gizli katman: 256
  • Maksimum dizi uzunluğu: 80 token
  • Mimari: 3 transformer bloğu + embedding + çıktı katmanı
  • Eğitim algoritması: Adam optimizer, gradient clipping (L2 normu 5.0 ile sınırlı)
  • Öğrenme oranı: pre-training 0.0005, instruction tuning 0.0001
  • Kayıp fonksiyonu: cross-entropy loss

Model ve kod özellikleri

  • Özel tokenizer (noktalama işaretlerini işler)
  • Greedy decoding tabanlı metin üretimi
  • Modüler katman yapısı ve açık arayüzler
  • Test kapsamı: her katman ve işlev için birim test kodları içerir
  • Bağımlılıklar: yalnızca ndarray (matris işlemleri), rand / rand_distr (rastgele başlatma) kullanılır (PyTorch/TensorFlow gibi harici ML kullanılmaz)
  • Eğitsel değer: modern LLM'lerin iç yapısını ve eğitim prensiplerini öğrenmek için ideal

Gelişim potansiyeli

  • Gelişmiş mimarilerin eklenmesi: multi-head attention, RoPE, positional encoding vb.
  • Performans optimizasyonu: SIMD, paralel eğitim, bellek verimliliği iyileştirmeleri
  • Model kaydetme/yükleme desteği
  • Gelişmiş sampling (beam search, Top-k/Top-p) ve değerlendirme metriklerinin eklenmesi

Önemi

  • Python tabanlı PyTorch ve TensorFlow framework'lerine bağımlı olmadan yalnızca Rust ile doğrudan LLM uygulanabileceğini gösteren, öğrenme ve deney amaçlı bir proje
  • LLM'lerin iç çalışma prensiplerini anlamak ve Rust ortamında ML sistemleri geliştirmek isteyen geliştiriciler için faydalı bir referans

Henüz yorum yok.

Henüz yorum yok.