# GGUF

[GGUF](https://github.com/ggerganov/ggml/blob/master/docs/gguf.md), [GGML](https://github.com/ggerganov/ggml) ile çıkarım için modelleri depolamada kullanılan, model meta verilerini ve tensörleri içeren tek dosyalı bir biçimdir. Birçok kuantize veri türünü destekler ([kuantizasyon türü tablosuna](https://hf.co/docs/hub/en/gguf#quantization-types) bakınız) ve bu da önemli ölçüde bellek tasarrufu sağlar.

    

## GGUF modellerini yükle

[kernels](https://huggingface.co/docs/kernels/index) paketini yükleyin, aksi takdirde paketlenmiş yol, yükleme sırasında tam [dequantization](#dequantize) işlemine geri düşer.

```bash
pip install kernels
```

Hub çekirdeği [ggml-org/ggml-quantization](https://huggingface.co/ggml-org/ggml-quantization) mevcut olduğunda ağırlıklar paketli kalır. Yükleyici, bu çekirdek mevcut olduğunda varsayılan olarak MPS'yi kullanır ve matmulleri doğrudan paketli bloklarda çalıştırır. Çekirdek mevcut değilse model, yükleme sırasında dekuantize edilir.

```py
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "unsloth/Qwen3.5-4B-GGUF"
filename = "Qwen3.5-4B-Q4_K_M.gguf"

model = AutoModelForCausalLM.from_pretrained(model_id, gguf_file=filename)
tokenizer = AutoTokenizer.from_pretrained(model_id, gguf_file=filename)
```

Aynı yükleme, Qwen3.5 MoE için de geçerlidir.

```py
moe_model_id = "unsloth/Qwen3.5-35B-A3B-GGUF"
moe_filename = "Qwen3.5-35B-A3B-Q4_K_M.gguf"

moe_model = AutoModelForCausalLM.from_pretrained(moe_model_id, gguf_file=moe_filename)
moe_tokenizer = AutoTokenizer.from_pretrained(moe_model_id, gguf_file=moe_filename)
```

Paketli yol şu anda Qwen3.5 ve Qwen3.5 MoE'yi destekler. Paketli yüklemeler, MPS üzerinde daha hızlı olduğu için otomatik olarak float32 kullanır. Başka bir `dtype` ayarlarsanız, yükleyici bir uyarı döndürür. Diğer mimariler eski yükleyici üzerinden işlenir.

## Dikkat

MPS üzerinde, çekirdekler yüklüyse, GGUF dosyası yüklenirken varsayılan dikkat mekanizması [ggml-attn](https://huggingface.co/kernels/ggml-org/ggml-attn)'dir: llama.cpp'nin decode ve prefill için kullandığı aynı flash-attention çekirdeği. Çekirdek alınamazsa, model kendi dikkat uygulamasını korur. `attn_implementation` parametresinin (örneğin `"sdpa"`) geçirilmesi her zaman önceliklidir.

Bunu ayrıca açıkça iletebilirsiniz:

```py
model = AutoModelForCausalLM.from_pretrained(
    model_id, gguf_file=filename, attn_implementation="ggml-org/ggml-attn"
)
```

## Dequantize

Dequantizing, yükleme sırasında her ağırlığı açar ve düz bir yoğun model döndürür. Hızlı, sıkıştırılmış yol uygulanmadığında her zaman yedek çözümdür. Ayrıca [GgufConfig](/docs/transformers/main/tr/main_classes/quantization#transformers.GgufConfig) ile bunu açıkça isteyebilirsiniz.

```py
import torch

from transformers import AutoModelForCausalLM, GgufConfig

quantization_config = GgufConfig(dequantize=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id, gguf_file=filename, quantization_config=quantization_config, dtype=torch.bfloat16
)
```

Geçirdiğiniz `dtype` ile normal bir yoğun model elde edersiniz.

Qwen3.5 ve Qwen3.5 MoE dışındaki mimariler, her zaman dekuantizasyon yapan geleneksel yükleyiciden geçer.

> [!TIP]
> Eski yükleyici Llama, Mistral, Qwen2, Qwen2Moe, Phi3, Bloom, Falcon, StableLM, GPT2, Starcoder2 ve [daha fazlasını](https://github.com/huggingface/transformers/blob/main/src/transformers/integrations/ggml.py) destekler.

## Sun

[transformers serve](../serve-cli/serving), bir depodaki her `.gguf` dosyasını ayrı bir model olarak listeler. Bir GGUF modelinin adı `<repo>:<file>.gguf` biçimindedir, çünkü bir depo birden fazla kuantizasyonu barındırır ve kimlik, yüklenmesi gerekenin hangisi olduğunu belirtmelidir. İstekler de modelin adını aynı şekilde belirtir.

```shell
transformers serve unsloth/Qwen3.5-4B-GGUF:Qwen3.5-4B-Q4_K_M.gguf
```

