RadarMakale Bülteniai üretimi

Makale Bülteni — SpQR

Kritik aykırı ağırlıkları FP16'da izole edip kalanları 3-bit'e sıkıştırarak tek GPU'da kayıpsız model çalıştıran hibrit seyreklik analizi.

Tim Dettmers ve Washington Üniversitesi ekibi tarafından ICLR 2024’te sunulan “SpQR: A Sparse-Quantized Representation for Near-Lossless LLM Weight Compression” başlıklı akademik makale, aşırı kuantizasyon dünyasındaki en katı doğruluk krizine matematiksel bir çözüm getiriyor1. Pratikte bu çalışma, büyük dil modellerini 3-bit veya 4-bit seviyesine indirdiğimizde modelin şaşkınlık (perplexity) skorunun patlaması ve akıl yürütme kabiliyetini kaybetmesi sorununu ortadan kaldırıyor. Ağırlık matrisindeki yüzde birlik hassas aykırı değerleri (outlier weights) orijinal FP16 hassasiyetinde seyrek bir matriste izole edip geri kalan yüzde doksan dokuzluk normal ağırlıkları agresif biçimde 3-bit’e sıkıştırarak, tüketici sınıfı donanımlarda sıfır kayıpla dev modeller çalıştırmayı vadediyor.

Akademik iddianın ötesinde gerçek dünya çıkarım kıyaslamalarına baktığımızda ortaya konan sıkıştırma kalitesi oldukça etkileyicidir. Makale, klasik GPTQ veya RTN yöntemlerinin aksine %1’in altında perplexity kaybı ve tek 24 GB GPU’da 33B model çalıştırma vadederken, bu ölçümler doğrudan kurumsal ve tüketici sınıfı NVIDIA A100-80GB ve RTX 3090 GPU’lar üzerinde kanıtlanmış durumda. Açık kaynak kod cephesinde ise Vahe1994/SpQR resmi deposunda son commit 6 ay önce, ICLR 2024 teyitli ve 13 açık issue ile özel CUDA ve Triton çekirdeklerini barındıran çalışan bir kod tabanı yer alıyor2.

İddia ve Gerçeklik: SpQR

Model ağırlıklarını 8-bit’ten 4-bit veya 3-bit seviyesine sıkıştırmak VRAM tüketimini dramatik biçimde düşürür; ancak geleneksel homojen kuantizasyon yöntemleri tüm ağırlıklara aynı ölçekleme kurallarını uygular. Oysa derin öğrenme modellerinde ağırlık dağılımı tekdüze değildir; parametrelerin yaklaşık yüzde biri, çıktının doğruluğunu doğrudan belirleyen devasa aykırı değerlerden oluşur. Bu hassas ağırlıkları 3-bit tamsayılara yuvarlamaya zorladığınızda oluşan kuantizasyon hatası tüm katmana yayılır ve model saçmalamaya başlar. SpQR makalesinin getirdiği ana sistem tezi, matrisleri hibrit bir yapıda ikiye bölmektir: Yoğun düşük hassasiyetli matris ve seyrek yüksek hassasiyetli matris.

Sistem, Hessian tabanlı hassasiyet analiziyle aykırı ağırlıkları tespit eder ve bu küçük yüzde birlik dilimi seyrek bir FP16 matrisinde saklar. Geriye kalan normal ağırlıklar ise on altılık küçük grup boyutlarıyla (group size 16) ve iki seviyeli ölçekleme (bi-level quantization) tekniğiyle 3-bit formatına kuantize edilir. Parametre başına düşen ortalama bit genişliği 3,36 ile 4,75 bit arasında dengelenir. Çıkarım anında özel bir GPU çekirdeği, yoğun 3-bit ağırlıkları açarken aynı anda seyrek FP16 matris çarpımını (SpMM) paralel olarak yürütür. Böylece 16-bit temel modele kıyasla hızdan ödün vermeden bellek ihtiyacı yarıdan fazla eritilir. Ancak bir sistem mimarı için madalyonun diğer yüzündeki operasyonel bedeller dikkatle incelenmelidir.

SpQR homojen bir matris üretmez; düzensiz seyrek matrisler ile yoğun blokların bir arada bulunması GPU donanımında yazmaç baskısı ve warp dallanması (branch divergence) yaratır. Eğer aykırı değerlerin oranı yüzde ikinin üzerine çıkarsa seyrek bellek erişimlerinin yarattığı gecikme tüm hızlanmayı yutabilir. Dahası yetmiş milyar parametreli bir modeli SpQR formatına dönüştürmek, saatler süren ağır bir Hessian hesaplama ve kalibrasyon süreci gerektirir; bu da modeli yayına alma hattında ciddi bir ön hazırlık faturası doğurur.

Kod ve Entegrasyon Haritası

SpQR, Tim Dettmers ve ekibi tarafından sadece bir algoritma simülasyonu olarak bırakılmayıp doğrudan CUDA ve C++ uzantılarıyla açık kaynak dünyasına sunuldu2. Kod tabanı incelendiğinde, LLaMA ve Falcon modellerini katman katman sıkıştıran kalibrasyon betikleri ve özel seyrek dequantize çekirdekleri göze çarpmaktadır. Yazarların sunduğu yaklaşım, llama.cpp ve HuggingFace ekosisteminde yoğun ilgi görmüş ve seyrek kuantizasyon tartışmalarına yön vermiştir3.

Açık kaynak dünyasında projenin benimsenebilirliği teorik olarak çok yüksek olsa da endüstriyel entegrasyonda bazı pratik pürüzler bulunmaktadır. AWQ veya GPTQ gibi homojen formatlar standart vLLM ve TensorRT-LLM motorlarına kolayca otururken, SpQR’ın çift matrisli hibrit yapısı inference motorlarının bellek yöneticilerinde özel uyarlamalar gerektirmektedir. Hibrit bellek şeması zamanlayıcı katmanında ek dikkat ister.

Hacker News ve GitHub tartışmalarında geliştiriciler, SpQR’ın model kalitesini koruma konusunda tartışmasız en üstün yöntem olduğunu, ancak derleme süreçlerinin karmaşıklığından ve genel amaçlı çıkarım sunucularına doğrudan bağlanmasındaki sürtünmelerden yakınmaktadır4. Yine de 3-bit seviyesinde saf FP16 doğruluğu yakalayan en rafine açık kaynak sistem mimarisi SpQR’dır.

Ticari Etki: Kimin İşine Yarar?

SpQR teknolojisi, özellikle kısıtlı bütçelerle yerel iş istasyonlarında çalışan yapay zeka girişimleri, veri gizliliği nedeniyle modelleri şirket içinde tutmak zorunda olan KOBİ’ler ve kenar bilişim donanımları geliştiren ekipler için doğrudan bir maliyet mucizesidir. 33 milyar veya 70 milyar parametreli bir modeli tek bir 24 GB tüketici sınıfı GPU (RTX 3090 veya RTX 4090) üzerinde sıfır akıl yürütme kaybıyla çalıştırabilmek, şirketlerin donanım yatırımını (CapEx) doğrudan üçte bire indirir.

Aynı zamanda kodlama, tıp ve hukuk gibi ince detayların ve hassas sayısal verilerin hayati önem taşıdığı dikey sektörlerde SpQR benzersiz bir güvenilirlik sunar. Standart kuantizasyon yöntemlerinin yarattığı sessiz halüsinasyonları ve doğruluk aşınmalarını engelleyerek, sıkıştırılmış modelin tam parametreli orijinal model gibi güvenle karar vermesini sağlar.

Buna karşın devasa bulut kümelerinde saniyede binlerce istek karşılayan ve yüzlerce A100 GPU’sunu homojen batch’lerle çalıştıran büyük API sağlayıcıları için SpQR’ın getirdiği seyrek kernel orkestrasyonu operasyonel olarak zorlayıcı olabilir. Bu ölçekteki şirketler için AWQ veya FP8 gibi homojen formatlar daha kolay ölçeklenir. Özetle SpQR, tekil tüketici GPU’larında dev modelleri kaliteden tek bir milimetre ödün vermeden çalıştırmak isteyen tüm pragmatik sistem mühendisleri için günümüzün en etkili sıkıştırma kaldıracıdır.

Kaynaklar

  1. SpQR: A Sparse-Quantized Representation for Near-Lossless LLM Weight Compression — arXiv
  2. SpQR Official Repository — Vahe1994 GitHub
  3. SpQR Quantization Discussion for llama.cpp — GitHub Discussions
  4. SpQR: Near-Lossless LLM Weight Compression Discussion — Hacker News