llama.cpp'ye Kayıpsız F32 Sıkıştırma: QFX32/QFX16 ile 2.05x Küçülme
llama.cpp'ye eklenen QFX32/QFX16 GGUF tipleri, F32 modelleri doğruluk kaybı olmadan 2.05x sıkıştırıyor; teknik detaylar ve kullanım.
llama.cpp projesine gönderilen #26136 numaralı PR, F32 ve BF16 modelleri hiçbir doğruluk kaybı olmadan sıkıştıran iki yeni GGUF tipi ekliyor: QFX32 ve QFX16. Yöntem, float tensörlerinin baytlarını (işaret/üs ve mantis baytları) ayrı düzlemlere bölerek komşu ağırlıklar arasındaki güçlü korelasyonu ortaya çıkarıyor; ardından tersine çevrilebilir bir Haar lifting dönüşümü ve RLE uygulanarak veri sıkıştırılıyor. Dönüşüm tamamen bijektif olduğu için ağırlıklar bit bit orijinaliyle aynı şekilde geri elde ediliyor, yani perplexity f32 baseline ile birebir aynı kalıyor.
F32 modeller için sıkıştırma oranı 2.05x (15.64 bit/ağırlık), BF16 için ise 1.14x (14.07 bit/ağırlık) seviyesinde. QFX32'nin iki çalışma modu var: bellek dostu ama biraz daha yavaş çalışan streaming modu ve modeli açılışta tam f32'ye dönüştüren dequant modu (bu modda küçük dosya diskten daha hızlı yüklendiği için toplam çıkarım hızı artabiliyor). QFX16 ise 256KB'lık bir arama tablosu kullanarak çözme işlemini matematiksel olarak sıfır ek yüke indiriyor.
Bu, klasik kayıplı niceleme (Q4, Q8 vb.) yöntemlerinden farklı olarak tam hassasiyetli modelleri depolama ve bant genişliği açısından ücretsiz şekilde küçültme imkanı sunuyor; bu da tekrarlanabilirlik gerektiren araştırma ve doğrulama iş akışları için önemli.
Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz