Hub documentation
GGUF
GGUF
Hugging Face Hub tüm dosya biçimlerini destekler ancak modellerin hızlı yüklenmesi ve kaydedilmesi için optimize edilmiş bir ikili biçim olan GGUF formatı için yerleşik özelliklere sahiptir; bu da onu çıkarım (inference) amaçları için son derece verimli kılar. GGUF, GGML ve diğer yürütücülerle (executors) kullanılmak üzere tasarlanmıştır. GGUF, popüler C/C++ LLM çıkarım çerçevesi olan llama.cpp'nin de geliştiricisi olan @ggerganov tarafından geliştirilmiştir. PyTorch gibi çerçevelerde başlangıçta geliştirilen modeller, bu motorlarla kullanılmak üzere GGUF formatına dönüştürülebilir.

Bu grafikte görebileceğimiz üzere, safetensors gibi yalnızca tensör içeren dosya biçimlerinin aksine – ki Hub için önerilen model biçimlerinden biridir – GGUF, hem tensörleri hem de standartlaştırılmış bir metadata setini kodlar.
GGUF dosyalarını bulma
GGUF etiketiyle filtreleyerek GGUF dosyalarına sahip tüm modellere göz atabilirsiniz: hf.co/models?library=gguf. Ayrıca, model ağırlıklarınızı GGUF ağırlıklarına dönüştürmek/kuantize etmek için ggml-org/gguf-my-repo aracını kullanabilirsiniz.

Örneğin, GGUF dosyalarının nasıl çalıştığını görmek için TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF deposuna göz atabilirsiniz.

Üstveri ve tensör bilgisi görüntüleyicisi
Hub, GGUF dosyaları için bir görüntüleyiciye sahiptir; bu görüntüleyici kullanıcıların meta verileri ve tensör bilgilerini (ad, şekil, hassasiyet) incelemesini sağlar. Görüntüleyici, model sayfasında (örnek) ve dosyalar sayfasında (örnek) kullanılabilir.

Açık kaynak araçlarla kullanım
@huggingface/gguf ile meta verileri ayrıştırma
Uzak konaklamalı dosyalarla (ör. Hugging Face Hub) çalışan bir javascript GGUF ayrıştırıcısı da oluşturduk.
npm install @huggingface/gguf
import { gguf } from "@huggingface/gguf";
// remote GGUF file from https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF
const URL_LLAMA = "https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/resolve/191239b/llama-2-7b-chat.Q2_K.gguf";
const { metadata, tensorInfos } = await gguf(URL_LLAMA);Daha fazla bilgi için buraya bakın.
Kantizasyon Türleri
| tür | kaynak | açıklama |
|---|---|---|
| F64 | Wikipedia | 64-bit standart IEEE 754 çift hassasiyetli kayan noktalı sayı. |
| I64 | GH | 64-bit sabit genişlikli tamsayı. |
| F32 | Wikipedia | 32-bit standart IEEE 754 tek hassasiyetli kayan noktalı sayı. |
| I32 | GH | 32-bit sabit genişlikli tamsayı. |
| F16 | Wikipedia | 16-bit standart IEEE 754 yarı hassasiyetli kayan noktalı sayı. |
| BF16 | Wikipedia | 32-bit IEEE 754 tek hassasiyetli kayan noktalı sayının 16-bit kısaltılmış versiyonu. |
| I16 | GH | 16-bit sabit genişlikli tamsayı. |
| Q8_K | GH | 8-bit kuantizasyon (q). Her blok 256 ağırlık içerir. Yalnızca ara sonuçların kuantize edilmesi için kullanılır. Bu kuantizasyon tipi için tüm 2-6 bit nokta çarpımları uygulanmıştır. Ağırlık formülü: w = q * block_scale. |
| I8 | GH | 8-bit sabit genişlikli tamsayı. |
| Q6_K | GH | 6-bit kuantizasyon (q). 16 bloktan oluşan süper bloklar, her blok 16 ağırlık içerir. Ağırlık formülü: w = q * block_scale(8-bit), bu da ağırlık başına 6.5625 bit sonucunu verir. |
| Q5_K | GH | 5-bit kuantizasyon (q). 8 bloktan oluşan süper bloklar, her blok 32 ağırlık içerir. Ağırlık formülü: w = q * block_scale(6-bit) + block_min(6-bit), bu da ağırlık başına 5,5 bit sonucunu verir. |
| Q4_K | GH | 4-bit kuantizasyon (q). 8 bloktan oluşan süper bloklar, her blok 32 ağırlık içerir. Ağırlık formülü: w = q * block_scale(6-bit) + block_min(6-bit), bu da ağırlık başına 4,5 bit sonucunu verir. |
| Q3_K | GH | 3-bit kuantizasyon (q). 16 bloktan oluşan süper bloklar, her blok 16 ağırlık içerir. Ağırlık formülü: w = q * block_scale(6-bit), bu da ağırlık başına 3.4375 bit sonucunu verir. |
| Q2_K | GH | 2-bit kuantizasyon (q). 16 bloktan oluşan süper bloklar, her blok 16 ağırlık içerir. Ağırlık formülü: w = q * block_scale(4-bit) + block_min(4-bit), bu da ağırlık başına 2.625 bit sonucunu verir. |
| IQ4_NL | GH | 4-bit kuantizasyon (q). 256 ağırlıklı süper bloklar. w ağırlığı, super_block_scale & importance matrix kullanılarak elde edilir. |
| IQ4_XS | HF | 4-bit kuantizasyon (q). 256 ağırlıklı süper bloklar. w ağırlığı, super_block_scale & importance matrix kullanılarak elde edilir ve bu, ağırlık başına 4,25 bit sonucunu verir. |
| IQ3_S | HF | 3-bit kuantizasyon (q). 256 ağırlıklı süper bloklar. w ağırlığı, super_block_scale & importance matrix kullanılarak elde edilir ve bu, ağırlık başına 3,44 bit sonucunu verir. |
| IQ3_XXS | HF | 3-bit kuantizasyon (q). 256 ağırlıklı süper bloklar. w ağırlığı, super_block_scale & importance matrix kullanılarak elde edilir ve bu, ağırlık başına 3,06 bit sonucunu verir. |
| IQ2_XXS | HF | 2-bit kuantizasyon (q). 256 ağırlıklı süper bloklar. w ağırlığı, super_block_scale & importance matrix kullanılarak elde edilir ve bu, ağırlık başına 2,06 bit sonucunu verir. |
| IQ2_S | HF | 2-bit kuantizasyon (q). 256 ağırlıklı süper bloklar. w ağırlığı, super_block_scale & importance matrix kullanılarak elde edilir ve bu, ağırlık başına 2,5 bit sonucunu verir. |
| IQ2_XS | HF | 2-bit kuantizasyon (q). 256 ağırlıklı süper bloklar. w ağırlığı, super_block_scale & importance matrix kullanılarak elde edilir ve bu, ağırlık başına 2,31 bit sonucunu verir. |
| IQ1_S | HF | 1-bit kuantizasyon (q). 256 ağırlıklı süper bloklar. w ağırlığı, super_block_scale & importance matrix kullanılarak elde edilir ve bu, ağırlık başına 1,56 bit sonucunu verir. |
| IQ1_M | GH | 1-bit kuantizasyon (q). 256 ağırlıklı süper bloklar. w ağırlığı, super_block_scale & importance matrix kullanılarak elde edilir ve bu, ağırlık başına 1,75 bit sonucunu verir. |
| TQ1_0 | GH | Üçlü kuantizasyon. |
| TQ2_0 | GH | Üçlü kuantizasyon. |
| MXFP4 | GH | 4-bit Microscaling Blok Kayan Nokta. |
| Eski türler | ||
| Q8_0 | GH | 8-bit en yakın yuvarlama kuantizasyonu (q). Her blok 32 ağırlık içerir. Ağırlık formülü: w = q * block_scale. Eski kuantizleme yöntemi (bugüne kadar yaygın olarak kullanılmamıştır). |
| Q8_1 | GH | 8-bit en yakın yuvarlama kuantizasyonu (q). Her blok 32 ağırlık içerir. Ağırlık formülü: w = q * block_scale + block_minimum. Eski kuantizleme yöntemi (bugüne kadar yaygın olarak kullanılmamıştır). |
| Q5_0 | GH | 5-bit en yakın yuvarlama kuantizasyonu (q). Her blok 32 ağırlık içerir. Ağırlık formülü: w = q * block_scale. Eski kuantizleme yöntemi (bugüne kadar yaygın olarak kullanılmamıştır). |
| Q5_1 | GH | 5-bit en yakın yuvarlama kuantizasyonu (q). Her blok 32 ağırlık içerir. Ağırlık formülü: w = q * block_scale + block_minimum. Eski kuantizleme yöntemi (bugüne kadar yaygın olarak kullanılmamıştır). |
| Q4_0 | GH | 4-bit en yakın yuvarlama kuantizasyonu (q). Her blok 32 ağırlık içerir. Ağırlık formülü: w = q * block_scale. Eski kuantizleme yöntemi (bugüne kadar yaygın olarak kullanılmamıştır). |
| Q4_1 | GH | 4-bit en yakın yuvarlama kuantizasyonu (q). Her blok 32 ağırlık içerir. Ağırlık formülü: w = q * block_scale + block_minimum. Eski kuantizasyon yöntemi (bugüne kadar yaygın olarak kullanılmamıştır). |
yukarıdaki tabloda herhangi bir hata varsa, lütfen bu dosya için bir PR açın.
Update on GitHub