LLM·3 dk okuma·

Show HN: GLM 5.2 Modelini Yavaş Bilgisayarımda Çalıştırmak

Paylaş
LLMEdumints Blog

Colibrì projesi, devasa GLM-5.2 (744B MoE) modelini sadece 25 GB RAM'e sahip tüketici donanımlarında çalıştırmayı başaran C tabanlı minimal bir çıkarım motorudur. Proje, donanım sınırlarını zorlayan yazılım optimizasyonunun gücünü göstermektedir.

Colibrì'nin Çalışma Mantığı

Geleneksel LLM çalıştırıcıları tüm modeli hafızaya yüklemeye çalışırken, Colibrì akıllı bir Mixture-of-Experts (MoE) stratejisi uygular:

  • Sabit Kısım (Dense Part): Dikkat, paylaşılan uzmanlar ve gömmeler (~17B parametre) int4 formatında RAM'de kalır (~9.9 GB).
  • Yönlendirilen Uzmanlar (Routed Experts): Toplam 21.504 uzman diskte (~370 GB) tutulur ve talep doğrultusunda diskten akış halinde (streaming) okunur.

16 Teknik Özellik ve Yazılım Çıkarımları

  • Sadık GLM-5.2 İleri Geçişi: Orijinal çıktıyla test edilip doğrulanmış hesaplama. Çıkarım: Karmaşık sistemlerde çıktıyı adım adım doğrulamak kritik öneme sahiptir.
  • MLA Dikkat Mekanizması: KV önbelleğini 57 kat küçülten sıkıştırma. Pratik Çıkarım: Algoritmik sıkıştırma yöntemleri donanım limitlerini aşmanın anahtarıdır.
  • DeepSeek-V3 Stili Yönlendirici: MoE katmanlarında verimli yönlendirme. Pratik Çıkarım: Dinamik yük dengeleme algoritmaları sistem kaynaklarını optimize eder.
  • Yerel MTP Spekülatif Kod Çözme: Hızı artıran yerleşik spekülasyon. Pratik Çıkarım: Spekülatif yürütme, genel işlem sürelerini azaltan etkili bir desendir.
  • Gerçek Örnekleme (True Sampling): Gürültüyü azaltan ince ayarlı sıcaklık parametreleri. Pratik Çıkarım: Parametre optimizasyonu çıktı kalitesini doğrudan belirler.
  • Tamsayı Noktasal Çarpım Çekirdekleri: İşlemleri hızlandıran int8/int4 matris çarpımları. Pratik Çıkarım: Performans kritik alanlarda donanıma özel SIMD (AVX2) komutları kullanılmalıdır.
  • MLA Ağırlık Emilimi: Bellek yeniden yapılandırmasını önleme. Pratik Çıkarım: Geçici bellek tahsislerini azaltmak, çöp toplayıcı (GC) yükünü hafifletir.
  • Asenkron Uzman Ön-Okuması: CPU hesaplama yaparken diskten sonraki uzmanı okuma. Pratik Çıkarım: I/O işlemlerini asenkron yürütmek işlemcilerin boşta kalmasını önler.
  • Nicemleme Çekirdekleri: int8/int4/int2 paketleme. Pratik Çıkarım: Veri tiplerini küçültmek, bellek bant genişliğini optimize etmenin en doğrudan yoludur.
  • DSA Seyrek Dikkat: GLM-5.2'nin hızlı dizinleme mekanizması. Pratik Çıkarım: Büyük veri setlerinde arama yaparken indeks tabanlı seyrek erişim tercih edilmelidir.
  • Kalıcı KV-Önbellek: Oturumlar arasında hızlı devam etmeyi sağlayan disk kaydı. Pratik Çıkarım: Durum kalıcılığı soğuk başlangıç sürelerini sıfıra indirebilir.
  • Yönlendirici İleriye Dönük Ön-Getirme: Bir sonraki katmanın uzmanlarını tahmin eden iş parçacığı. Pratik Çıkarım: Tahmine dayalı önbellekleme yavaş depolama gecikmelerini gizler.
  • Toplu Birlik MoE: Aynı uzmana yönelen verileri tek seferde toplu işleme. Pratik Çıkarım: İstekleri bir araya getirerek toplu işleme yapmak I/O maliyetlerini düşürür.
  • C Dilinde Byte Seviyesinde BPE Tokenizer: Bağımsız yerel simgeleştirici. Pratik Çıkarım: Sıfır bağımlılık yaklaşımı yazılımın taşınabilirliğini ve bakımını kolaylaştırır.
  • RAM Güvenliği: Peak RAM kullanımını hesaplayarak OOM hatalarını önleme. Pratik Çıkarım: Çalışma zamanı kaynak sınırlarını yönetmek sistem kararlılığı için şarttır.
  • Çevrimdışı FP8'den int4'e Dönüştürücü: Modeli parça parça indirip dönüştüren araç. Pratik Çıkarım: Büyük verilerle çalışırken akış tabanlı veri işleme disk alanı kazandırır.

Bu teknikler sayesinde devasa modeller, pahalı GPU'lar yerine sıradan bilgisayarlarda çalışabilmektedir. Yazılım geliştiriciler için bellek ve I/O optimizasyonunun sınırlarını görmek açısından harika bir örnektir.

Orijinal kaynağa buradan ulaşabilirsiniz.

Paylaş

Bu konuyu daha derinlemesine öğrenmek ister misin?

Edumints'teki ücretsiz kursları incele ve bugün başla.

Kurslara Göz At →