LLM·3 dk okuma·
Show HN: GLM 5.2 Modelini Yavaş Bilgisayarımda Çalıştırmak
LLMEdumints Blog
İçindekiler
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.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →