- 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.