Transformers documentation

GGUF

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

GGUF

GGUF, 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 bakınız) ve bu da önemli ölçüde bellek tasarrufu sağlar.

GGUF modellerini yükle

kernels paketini yükleyin, aksi takdirde paketlenmiş yol, yükleme sırasında tam dequantization işlemine geri düşer.

pip install kernels

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

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.

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 desteklemektedir. Paketli yüklemeler, MPS üzerinde daha hızlı olduğu için otomatik olarak float32 kullanır. Farklı bir dtype ayarlarsanız, yükleyici bir uyarı döndürür. Diğer mimariler geleneksel yükleyici üzerinden işlenir.

Dikkat

MPS üzerinde, çekirdekler yüklüyse, GGUF dosyası yüklenirken varsayılan dikkat mekanizması 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:

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üm olarak kullanılır. Ayrıca GgufConfig ile bunu açıkça isteyebilirsiniz.

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.

Eski yükleyici Llama, Mistral, Qwen2, Qwen2Moe, Phi3, Bloom, Falcon, StableLM, GPT2, Starcoder2 ve daha fazlasını destekler.

Sun

transformers serve, 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.

transformers serve unsloth/Qwen3.5-4B-GGUF:Qwen3.5-4B-Q4_K_M.gguf
Update on GitHub