Sıfırdan Rust ile Geliştirilen Transformer-Dışı Dil Modeli: PSSA
İçindekiler
PSSA: Plastik Bir Durum-Uzayı Mimarisi
PSSA (Plastic State-Space Architecture), Transformer mimarisini kullanmayan yenilikçi ve kompakt bir dil modelidir. Metinleri yinelemeli (recurrent) bir durum-uzayı katmanı üzerinden belirteç belirteç (token-by-token) işler, sorgulama yapabildiği epizodik bir bellek bankası tutar ve çalışma anında kendi ağırlıklarının bir kısmını dinamik olarak yeniden yazar. Model; PyTorch, TensorFlow veya herhangi bir makine öğrenimi çatısı kullanılmadan, tamamen sıfırdan Rust ile geliştirilmiştir. Eşit parametre sayısı ve aynı veri kümesi üzerinde yapılan testlerde Transformer'a kıyasla daha hızlı öğrenmekte ve aynı CPU üzerinde yaklaşık 12 kat daha hızlı metin üretmektedir.
Neden Rust ve Neden Asıl Mesele Bu Değil?
Rust seçiminin arkasındaki temel motivasyon salt hız kazanmak ya da dilin mimariyi kendiliğinden üstün kılması değildir. PSSA; belirteç başına ağırlık güncellemelerine, ileri geçiş (forward pass) esnasında yazılan dinamik bir bellek bankasına ve toplu çekirdeklerin türevinin doğrulanabileceği skaler bir referans yoluna ihtiyaç duymaktadır.
- Bu gereksinimleri klasik otomatik türev (autograd) çatılarıyla uygulamak, sürekli çatı mimarisiyle mücadele etmeyi gerektirdiğinden lineer cebir işlemleri doğrudan sıfırdan yazılmıştır.
- Bu yazılım mühendisliği tercihi, plastik bileşenlerin yönetimini doğrudanlaştırmış ve gradyanların yaklaşık 3e-8 hassasiyetle doğrulanmasını sağlamıştır.
- Burada asıl iddia programlama dili değil, mimari yeniliktir; Rust yalnızca bir uygulama detayıdır ve Python uyarlamalarına da açıktır.
Transformer Mimarisinden Farkı Nedir?
Transformer modelleri bağlamdaki her belirteç çiftini tek tek puanlayarak adım başına maliyeti dizi uzunluğunun karesiyle ($O(N^2)$) artırır ve her adımda tüm bağlamı baştan okur.
- PSSA ise soldan sağa tek bir geçişte dizi boyunca sabit boyutlu tek bir durum (fixed-size state) taşır.
- Bağlamı sürekli baştan okumak yerine bilgiyi hafıza bankasından çağırır; bu sayede hesaplama maliyeti dizi uzunluğuyla doğrusal ($O(N)$) olarak ölçeklenir. Bu durum bellek kısıtlı ortamlarda devasa bir verimlilik avantajı sağlar.
Model
Her bir belirteç, şu dört temel bileşenden meydana gelen tek bir PSSA katmanından geçer:
- Seçici durum-uzayı özyinelemesi: Girdiye duyarlı durum güncellemeleri gerçekleştirir.
- Hiperbolik uzayda epizodik hafıza bankasından sınırlandırılmış okuma: Verimli bir geometrik temsil ile geçmiş bilgiyi geri çağırır.
- Öğrenilmiş kapı (gate): Okunan bilginin ne kadarının artık akışa (residual stream) ulaşacağını belirler.
- SiLU MLP: Doğrusal olmayan özellik dönüşümünü tamamlar.
Modelin varsayılan mimari parametreleri: $d_m = 256$ kanal, kanal başına $d_s = 16$ durum ve rank-16 adaptör olarak belirlenmiştir.
Özyineleme (Recurrence)
Katman normalize edilmiş belirteç gömmesi $x$ üzerinden, özyinelemeyi sabit yerine dinamik ve seçici kılan üç izdüşüm hesaplanır:
- $\delta = \text{softplus}(W_\delta x)$: Kanal başına adım boyutu ($\delta \in \mathbb{R}^{d_m}$)
- $B = W_B x$: Giriş eşlemesi ($B \in \mathbb{R}^{d_s}$)
- $C = W_C x$: Çıkış eşlemesi ($C \in \mathbb{R}^{d_s}$)
Geçiş matrisi, sistemin kararlılığını korumak ve özyinelemenin patlamasını önlemek amacıyla tasarımsal olarak negatif tutulur:
- $A = -\text{softplus}(A_{\text{raw}})$, $A \in \mathbb{R}^{d_m \times d_s}$
Sürekli sistemin $\delta$ adımıyla ayrıklaştırılması belirteç başına durum güncellemesini verir; $h$ durumu eğitimde belirteçler ve yığın sınırları boyunca aktarılır:
- $\bar{A}{ij} = \exp(\delta_i \cdot A{ij})$
- $\bar{B}_{ij} = \delta_i \cdot B_j$
- $h_{ij} \leftarrow \bar{A}{ij} \cdot h{ij} + \bar{B}_{ij} \cdot x_i$
[Orijinal kaynağa buradan ulaşabilirsiniz.](https://github.com/Sparticle62ops/pssa)
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →