← Teknoloji Radarı

Yapay zekâ

Belleğe sığmayan modeli çalıştırmak: Dizüstünde dev model, çipte minik model

Colibrì adlı açık kaynak motor, 744 milyar parametrelik bir modeli sıradan bir bilgisayarda diskten parça parça okuyarak çalıştırıyor. Bir başka geliştirici ise 512 KB belleği olan ucuz bir çipte dil modeli koşturdu. İkisinin de sırrı aynı: Modelin tamamını belleğe almamak.

Bu neden önemli?

Yapay zekâyı kendi cihazında çalıştırmanın önündeki en büyük engel çoğu zaman ekran kartı değil, bellek. Bir modelin her an hangi kısmına gerçekten ihtiyaç duyduğunu anlamak, yerel yapay zekânın sınırlarını anlamanın da anahtarı.

This Tiny Engine Runs Impossibly Big AI Models Locally! (colibrì) · Better Stack, YouTube (İngilizce). Tıklayınca video yüklenir.

Asıl sorun: Bellek

Bir dil modeli, milyarlarca sayıdan (parametre ya da “ağırlık”) oluşuyor. Normalde model çalışırken bu sayıların hepsi hızlı bellekte, yani RAM’de ya da ekran kartının belleğinde (VRAM) durmalı. 744 milyar parametrelik bir model, sıkıştırılmış haliyle bile yüzlerce gigabayt tutuyor. Bu yüzden büyük modeller veri merkezlerinde çalışıyor.

Ama bir modelin her kelimeyi üretirken bütün parametrelerine ihtiyacı yoksa? İşte iki proje tam bu soruya yaslanıyor.

Colibrì: Uzmanları diskten çağırmak

Bugünkü büyük modellerin çoğu Mixture of Experts (MoE), yani “uzmanlar karışımı” mimarisiyle çalışıyor. Model tek bir dev ağ değil, binlerce küçük “uzman” alt ağdan oluşuyor. Her kelime için bir yönlendirici, sadece birkaç uzmanı devreye sokuyor.

Colibrì, tek bir C dosyasından oluşan, dış bağımlılığı olmayan açık kaynak bir motor. Projenin sitesine göre GLM-5.2 modelinin 744 milyar parametresinin her kelimede sadece yaklaşık 40 milyarı kullanılıyor. Colibrì de şöyle bir düzen kuruyor:

  • Her kelimede kullanılan ortak parçalar sürekli bellekte kalıyor.
  • Uzmanlar SSD diskte duruyor. Hangisi gerekirse o anda okunuyor.
  • Sık kullanılan uzmanlar zamanla fark edilip boş RAM’e ya da VRAM’e alınıyor. Yani motor kullandıkça ısınıyor.

Proje, çıktının orijinal model uygulamasıyla kelimesi kelimesine aynı olduğunu doğruladığını söylüyor. Hız ise ayrı bir konu. Videodaki testte, 32 GB RAM’li bir MacBook’ta ve harici bir SSD’de, ilk kelime iki dakikadan uzun sürdü, sonra saniyede kabaca 0,1 token geldi. (Token, modelin ürettiği en küçük parça. Kabaca bir kelime ya da kelime parçası.) Sürenin büyük kısmı hesaplamada değil, diski beklemekte geçti. RTX 5090’lı, 64 GB RAM’li ve hızlı dahili diskli bir masaüstünde ise saniyede 0,8 token’a çıktı. Videonun vardığı sonuç: Farkı yaratan ekran kartı değil, modelin ne kadarının RAM’de tutulabildiği. Bir de disk alanı: Model tek başına yaklaşık 350 GB yer kaplıyor.

ESP32: Kelime tablosunu flaşta tutmak

Öbür uçta bir geliştirici, ESP32-S3 adlı küçük bir mikrodenetleyicide 28,9 milyon parametrelik bir dil modeli çalıştırdı. Bu çipin hızlı belleği sadece 512 KB. Videoya göre çipin fiyatı 8 dolar civarında.

Hile, Google’ın Gemma 3n modelinde kullandığı Per-Layer Embeddings fikrinden geliyor. Modelin parametrelerinin büyük kısmı (yaklaşık 25 milyonu) bir arama tablosunda duruyor. Bu tabloyla hesap yapılmıyor, sadece içinden satır okunuyor. Proje açıklamasına göre:

  • Tablo yavaş ama geniş flaş bellekte kalıyor. Her kelime için sadece birkaç satır, yaklaşık 450 bayt okunuyor.
  • Modelin hesap yapan çekirdeği orta hızdaki ek bellekte (PSRAM) duruyor.
  • Sadece en sık dokunulan küçük değerler 512 KB’lik hızlı belleğe giriyor.

Sonuç: İnternete hiç bağlanmadan saniyede yaklaşık 10 token. Ama beklentiyi doğru kur. Model, çocuk hikâyelerinden oluşan TinyStories veri setiyle eğitildi. Basit kısa hikâyeler yazıyor, soru cevaplamıyor, talimat takip etmiyor. İlginç olan modelin ne söylediği değil, bu kadar küçük bir cihaza nasıl sığdığı.

Ortak ders

İki projede de fikir aynı: Model, belleğe bütünüyle yüklenmesi gereken bir blok değil. Hangi parçaya ne sıklıkla ihtiyaç duyulduğuna göre hızlı, orta ve yavaş bellek katmanlarına dağıtılabilen bir veri. Bilgisayarların yıllardır dosyalar için yaptığı önbellekleme, şimdi modellerin içine uygulanıyor.

Düşün

  • Saniyede 0,1 token üreten dev bir model mi, saniyede 50 token üreten küçük bir model mi? Hangi işler için hangisini seçerdin?
  • İnternete hiç bağlanmayan minik bir dil modeli hangi cihazlarda işe yarayabilir?

Bu yazıdaki araçlar Araç Kutusu'nda: Colibrì