Transformers documentation

Kantizasyon

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

and get access to the augmented documentation experience

to get started

Kantizasyon

Kantlama teknikleri, ağırlıkları ve aktivasyonları 8-bit tamsayılar (int8) gibi daha düşük hassasiyetli veri türleriyle temsil ederek bellek ve hesaplama maliyetlerini azaltır. Bu, normalde belleğe sığdıramayacağınız daha büyük modelleri yüklemenizi ve çıkarımı hızlandırmanızı sağlar. Transformers, AWQ ve GPTQ kantlama algoritmalarını destekler ve bitsandbytes ile 8-bit ve 4-bit kantlamayı destekler.

Transformers tarafından desteklenmeyen kuantizasyon teknikleri, HfQuantizer sınıfı ile eklenebilir.

Kantizasyon kılavuzunda modelleri nasıl kantize edeceğinizi öğrenin.

QuantoConfig

sınıf transformers.QuantoConfig

< >

( weights = 'int8'activations = Nonemodules_to_not_convert: list | None = None**kwargs )

Parametreler

  • weights (str, isteğe bağlı, varsayılan "int8") — Kantizasyon sonrası ağırlıklar için hedef dtype. Desteklenen değerler: (“float8”,“int8”,“int4”,“int2”)
  • activations (str, isteğe bağlı) — Kantizasyon sonrası aktivasyonlar için hedef dtype. Desteklenen değerler (None,“int8”,“float8”)
  • modules_to_not_convert (list, isteğe bağlı, varsayılan None) — Kantize edilmeyecek modüllerin listesi; bazı modüllerin orijinal hassasiyetinde bırakılmasını açıkça gerektiren modellerin kantize edilmesi için faydalıdır (ör. Whisper encoder, Llava encoder, Mixtral gate katmanları).

quanto kullanılarak yüklenmiş bir modelle oynayabileceğiniz tüm olası öznitelikler ve özellikler hakkında bir sarmalayıcı sınıfıdır.

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi

AqlmConfig

sınıf transformers.AqlmConfig

< >

( in_group_size: int = 8out_group_size: int = 1num_codebooks: int = 1nbits_per_codebook: int = 16linear_weights_not_to_quantize: list[str] | None = None**kwargs )

Parametreler

  • in_group_size (int, isteğe bağlı, varsayılan 8) — Girdi boyutu boyunca grup boyutu.
  • out_group_size (int, isteğe bağlı, varsayılan 1) — Çıktı boyutu boyunca grup boyutu. Her zaman 1 kullanılması önerilir.
  • num_codebooks (int, isteğe bağlı, varsayılan 1) — Additive Quantization işlemi için kod kitaplığı sayısı.
  • nbits_per_codebook (int, isteğe bağlı, varsayılan 16) — Tek bir codebook vektörünü kodlayan bit sayısı. Codebook boyutu 2**nbits_per_codebook'tür.
  • linear_weights_not_to_quantize (Optional[list[str]], isteğe bağlı) — Kantize edilmemesi gereken nn.Linear ağırlık parametrelerinin tam yollarının listesi.
  • kwargs (dict[str, Any], isteğe bağlı) — Yapılandırma nesnesini başlatmak için kullanılacak ek parametreler.

Bu, aqlm parametreleri hakkında bir sarmalayıcı sınıfıdır.

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi - bazı NoneType argümanlarını da varsayılan değerleriyle değiştirir.

VptqConfig

sınıf transformers.VptqConfig

< >

( enable_proxy_error: bool = Falseconfig_for_layers: dict = {}shared_layer_config: dict = {}modules_to_not_convert: list | None = None**kwargs )

Parametreler

  • enable_proxy_error (bool, isteğe bağlı, varsayılan False) — her katman için proxy hatasını hesaplar
  • config_for_layers (Dict, isteğe bağlı, varsayılan {}) — her katman için kuantizasyon parametreleri
  • shared_layer_config (Dict, isteğe bağlı, varsayılan {}) — katmanlar arasında paylaşılan kuantizasyon parametreleri
  • modules_to_not_convert (list, isteğe bağlı, varsayılan None) — Kantize edilmeyecek modüllerin listesi; bazı modüllerin orijinal hassasiyetinde bırakılmasını açıkça gerektiren modellerin kantize edilmesi için faydalıdır (ör. Whisper encoder, Llava encoder, Mixtral gate katmanları).
  • kwargs (dict[str, Any], isteğe bağlı) — Yapılandırma nesnesini başlatmak için kullanılacak ek parametreler.

Bu, vptq parametreleri hakkında bir sarmalayıcı sınıfıdır.

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi

AwqConfig

sınıf transformers.AwqConfig

< >

( bits: int = 4group_size: int = 128zero_point: bool = Truebackend: AwqBackend = <AwqBackend.AUTO: 'auto'>modules_to_not_convert: list | None = None**kwargs )

Parametreler

  • bits (int, isteğe bağlı, varsayılan 4) — Kantizasyon için kullanılacak bit sayısı.
  • group_size (int, isteğe bağlı, varsayılan 128) — Kantizasyon için kullanılacak grup boyutu. Önerilen değer 128'dir ve -1, sütun başına kantizasyon kullanır.
  • zero_point (bool, isteğe bağlı, varsayılan True) — Sıfır noktası kuantizasyonunun kullanılıp kullanılmayacağı.
  • backend (AwqBackend, isteğe bağlı, varsayılan AwqBackend.AUTO) — Kantizasyon arka ucu.
  • modules_to_not_convert (list, isteğe bağlı, varsayılan None) — Kantize edilmeyecek modüllerin listesi; bazı modüllerin orijinal hassasiyetinde bırakılmasını açıkça gerektiren modellerin kantize edilmesi için faydalıdır (ör. Whisper encoder, Llava encoder, Mixtral gate katmanları). Dikkat: modelleri doğrudan transformers ile kantize edemezsiniz; HF modellerini kantize etmek için AutoAWQ belgelerine başvurun.

Bu, auto-awq kütüphanesinin awq kuantizasyonunu ve auto_awq arka ucunu kullanan bir modelin yüklendiği tüm olası öznitelikler ve özelliklerle ilgili bir sarmalayıcı sınıfıdır.

EetqConfig

sınıf transformers.EetqConfig

< >

( weights: str = 'int8'modules_to_not_convert: list | None = None**kwargs )

Parametreler

  • weights (str, isteğe bağlı, varsayılan "int8") — Ağırlıklar için hedef veri türü. Desteklenen tek değer “int8”dir.
  • modules_to_not_convert (list, isteğe bağlı, varsayılan None) — Kantize edilmeyecek modüllerin listesi; bazı modüllerin orijinal hassasiyetinde bırakılmasını açıkça gerektiren modelleri kantize etmek için kullanışlıdır.

eetq kullanılarak yüklenmiş bir modelle oynayabileceğiniz tüm olası öznitelikler ve özellikler hakkında bir sarmalayıcı sınıfıdır.

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi

GPTQConfig

sınıf transformers.GPTQConfig

< >

( bits: inttokenizer: Any = Nonedataset: list[str] | str | None = Nonegroup_size: int = 128damp_percent: float = 0.1desc_act: bool = Falseact_group_aware: bool = Truesym: bool = Truetrue_sequential: bool = Trueformat: str = 'gptq'meta: dict[str, typing.Any] | None = Nonebackend: str | None = Nonemodel_seqlen: int | None = Noneblock_name_to_quantize: str | None = Nonemodule_name_preceding_first_block: list[str] | None = Nonebatch_size: int = 1pad_token_id: int | None = Nonemax_input_length: int | None = Nonecache_block_outputs: bool = Truemodules_in_block_to_quantize: list[list[str]] | None = None**kwargs )

Parametreler

  • bits (int) — Kantize edilecek bit sayısı, desteklenen değerler (2, 3, 4, 8)'dir.
  • tokenizer (str veya PreTrainedTokenizerBase, isteğe bağlı) — Veri setini işlemek için kullanılan tokenizer. Şunlardan birini geçebilirsiniz:
    • Özel bir tokenizer nesnesi.
    • Bir dize, huggingface.co'daki bir model deposunda barındırılan önceden tanımlanmış bir tokenizer'ın model kimliği.
    • Sözcükleştiricinin (tokenizer) gerektirdiği sözlük dosyalarını içeren bir dizin yoluna işaret eder; örneğin save_pretrained() yöntemi kullanılarak kaydedilmiş bir dizin, örn. ./my_model_directory/.
  • dataset (Union[list[str]], isteğe bağlı) — Kantizasyon için kullanılan veri seti. Kendi veri setinizi bir string listesi olarak sağlayabilir veya GPTQ makalesinde kullanılan orijinal veri setlerini [‘wikitext2’,‘c4’,‘c4-new’] kullanabilirsiniz.
  • group_size (int, isteğe bağlı, varsayılan 128) — Kantizasyon için kullanılacak grup boyutu. Önerilen değer 128'dir ve -1, sütun başına kantizasyon kullanır.
  • damp_percent (float, isteğe bağlı, varsayılan 0.1) — Sönümleme için kullanılacak ortalama Hessian çapraz kesit yüzdesi. Önerilen değer 0.1'dir.
  • desc_act (bool, isteğe bağlı, varsayılan False) — Aktivasyon boyutunun azalan sırasına göre sütunların kuantize edilip edilmeyeceğini belirtir. False olarak ayarlanması çıkarımı önemli ölçüde hızlandırabilir ancak perplexite biraz daha kötüleşebilir. Ayrıca act-order olarak da bilinir.
  • act_group_aware (bool, isteğe bağlı, varsayılan True) — Kantizasyon sırasında GAR (group aware activation order) kullanılır. Kantizasyon kalitesi üzerinde ölçülebilir olumlu bir etkiye sahiptir. Yalnızca desc_act = False olduğunda geçerlidir. desc_act = True olduğunda False olarak zorlanır.
  • sym (bool, isteğe bağlı, varsayılan True) — Simetrik kuantizasyonun kullanılıp kullanılmayacağı.
  • true_sequential (bool, isteğe bağlı, varsayılan True) — Tek bir Transformer bloğu içinde bile sıralı kuantizasyonun uygulanıp uygulanmayacağı. Tüm bloğu bir anda kuantize etmek yerine, katman bazlı kuantizasyon gerçekleştiririz. Sonuç olarak, her katman, daha önce kuantize edilmiş katmanlardan geçen girdiler kullanılarak kuantize edilir.
  • format (str, isteğe bağlı, varsayılan "gptq") — GPTQ ağırlık biçimi. gptq (v1) gptqmodel tarafından desteklenir. gptq_v2 yalnızca gptqmodel içindir.
  • meta (dict[str, any], isteğe bağlı) — Kantizasyona veya kantize çıkarıma doğrudan katkıda bulunmayan tooling:version gibi özellikler meta içinde saklanır. Örn. meta.quantizer: [“optimum:version”, “gptqmodel:version”]
  • backend (str, isteğe bağlı) — Hangi çekirdeğin kullanılacağını kontrol eder. gptqmodel için geçerli değerler auto, auto_trainable ve daha fazlasıdır. gptqmodel arka uçları için bkz: https://github.com/ModelCloud/GPTQModel/blob/main/gptqmodel/utils/backend.py
  • model_seqlen (int, isteğe bağlı) — Modelin alabileceği maksimum dizi uzunluğu.
  • block_name_to_quantize (str, isteğe bağlı) — Kantize edilecek transformers bloğu adı. None ise, ortak kalıpları (ör. model.layers) kullanarak blok adını çıkarırız.
  • module_name_preceding_first_block (list[str], isteğe bağlı) — İlk Transformer bloğundan önce gelen katmanlar.
  • batch_size (int, isteğe bağlı, varsayılan 1) — Veri seti işlenirken kullanılan parti boyutu
  • pad_token_id (int, isteğe bağlı) — Doldurma belirteç kimliği. batch_size > 1 olduğunda veri setini hazırlamak için gereklidir.
  • max_input_length (int, isteğe bağlı) — Maksimum giriş uzunluğu. Bu, beklenen maksimum giriş uzunluğuna bağlı bir tamponun başlatılması için gereklidir. act-order ile exllama arka ucuna özgüdür.
  • cache_block_outputs (bool, isteğe bağlı, varsayılan True) — Blok çıktıları, sonraki blok için girdi olarak yeniden kullanılacak şekilde önbelleğe alınıp alınmayacağı.
  • modules_in_block_to_quantize (list[list[str]], isteğe bağlı) — Belirtilen blokta nicelleştirilecek modül adlarının listesi. Bu argüman, belirli doğrusal modüllerin nicelleştirilmesinden hariç tutulması için kullanışlıdır. Nicelleştirilecek blok, block_name_to_quantize ayarlanarak belirtilebilir. Her listeyi sırayla nicelleştiririz. Ayarlanmazsa, tüm doğrusal katmanları nicelleştiririz. Örnek: modules_in_block_to_quantize =[["self_attn.k_proj", "self_attn.v_proj", "self_attn.q_proj"], ["self_attn.o_proj"]]. Bu örnekte, bağımsız oldukları için önce q, k, v katmanlarını eş zamanlı olarak nicelleştiririz. Ardından, q, k, v katmanları nicelleştirilmişken self_attn.o_proj katmanını nicelleştiririz. Bu sayede, model nicelleştirildiğinde self_attn.o_proj'in alacağı gerçek girdiyi yansıttığı için daha iyi sonuçlar elde ederiz.

Bu, optimum api'si kullanılarak gptqmodel arka ucuna dayalı GPTQ kuantizasyonu ile yüklenmiş bir modelde oynayabileceğiniz tüm olası öznitelikler ve özellikler hakkında bir sarmalayıcı sınıfıdır.

from_dict_optimum

< >

( config_dict )

optimum gptq yapılandırma sözlüğüyle uyumlu sınıfı alın

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi

to_dict_optimum

< >

( )

optimum gptq yapılandırması için uyumlu sözlük alın

BitsAndBytesConfig

sınıf transformers.BitsAndBytesConfig

< >

( load_in_8bit = Falseload_in_4bit = Falsellm_int8_threshold = 6.0llm_int8_skip_modules = Nonellm_int8_enable_fp32_cpu_offload = Falsellm_int8_has_fp16_weight = Falsebnb_4bit_compute_dtype = Nonebnb_4bit_quant_type = 'fp4'bnb_4bit_use_double_quant = Falsebnb_4bit_quant_storage = None**kwargs )

Parametreler

  • load_in_8bit (bool, isteğe bağlı, varsayılan False) — Bu bayrak, LLM.int8() ile 8-bit kuantizasyonu etkinleştirmek için kullanılır.
  • load_in_4bit (bool, isteğe bağlı, varsayılan False) — Bu bayrak, bitsandbytes kütüphanesinden gelen FP4/NF4 katmanlarıyla Linear katmanlarını değiştirerek 4-bit kuantizasyonu etkinleştirmek için kullanılır.
  • llm_int8_threshold (float, isteğe bağlı, varsayılan 6.0) — Bu, LLM.int8() : 8-bit Matrix Multiplication for Transformers at Scale makalesinde açıklandığı üzere aykırı değer tespiti için aykırı değer eşiğine karşılık gelir: https://huggingface.co/papers/2208.07339 Bu eşiğin üzerindeki herhangi bir gizli durum değeri aykırı değer olarak kabul edilir ve bu değerler üzerindeki işlem fp16'da yapılır. Değerler genellikle normal dağılıma sahiptir, yani çoğu değer [-3.5, 3.5] aralığındadır, ancak büyük modellerde çok farklı dağılan bazı istisnai sistematik aykırı değerler vardır. Bu aykırı değerler genellikle [-60, -6] veya [6, 60] aralığındadır. Int8 kuantizasyonu, büyüklüğü ~5 olan değerler için iyi çalışır, ancak bunun ötesinde önemli bir performans cezası vardır. İyi bir varsayılan eşik 6'dır, ancak daha kararsız modeller (küçük modeller, ince ayar) için daha düşük bir eşik gerekebilir.
  • llm_int8_skip_modules (list[str], isteğe bağlı) — 8-bit'e dönüştürmek istemediğimiz modüllerin açık bir listesi. Bu, Jukebox gibi farklı konumlarda birden fazla başa sahip olan ve bunların son konumda bulunmadığı modeller için faydalıdır. Örneğin CausalLM modellerinde, son lm_head orijinal dtype'inde tutulur.
  • llm_int8_enable_fp32_cpu_offload (bool, isteğe bağlı, varsayılan False) — Bu bayrak, gelişmiş kullanım senaryoları ve bu özelliğin farkında olan kullanıcılar için kullanılır. Modelinizi farklı parçalara ayırıp bazı parçaları GPU'da int8, bazı parçaları CPU'da fp32 olarak çalıştırmak istiyorsanız bu bayrağı kullanabilirsiniz. Bu, google/flan-t5-xxl gibi büyük modelleri dışa aktarmak (offload) için faydalıdır. Not: int8 işlemleri CPU'da çalıştırılmaz.
  • llm_int8_has_fp16_weight (bool, isteğe bağlı, varsayılan False) — Bu bayrak, LLM.int8()’i 16 bit ana ağırlıklarla çalıştırır. Bu, geriye yayılım için ağırlıkların ileri geri dönüştürülmesine gerek kalmadığından ince ayar için faydalıdır.
  • bnb_4bit_compute_dtype (torch.dtype or str, isteğe bağlı, varsayılan torch.float32) — Bu, giriş türünden farklı olabilecek hesaplama türünü ayarlar. Örneğin, girdiler fp32 olabilir, ancak hızlandırma için hesaplama bf16 olarak ayarlanabilir.
  • bnb_4bit_quant_type (str, isteğe bağlı, varsayılan "fp4") — Bu, bnb.nn.Linear4Bit katmanlarındaki kuantizasyon veri türünü ayarlar. Seçenekler, fp4 veya nf4 ile belirtilen FP4 ve NF4 veri türleridir.
  • bnb_4bit_use_double_quant (bool, isteğe bağlı, varsayılan False) — Bu bayrak, ilk kuantizasyondan gelen kuantizasyon sabitlerinin yeniden kuantize edildiği iç içe kuantizasyon için kullanılır.
  • bnb_4bit_quant_storage (torch.dtype or str, isteğe bağlı, varsayılan torch.uint8) — Bu, kuantize edilmiş 4-bit parametreleri paketlemek için depolama türünü ayarlar.
  • kwargs (dict[str, Any], isteğe bağlı) — Yapılandırma nesnesini başlatmak için kullanılacak ek parametreler.

bitsandbytes kullanılarak yüklenmiş bir modelde oynayabileceğiniz tüm olası öznitelikler ve özellikler hakkında bir sarmalayıcı sınıfıdır.

Şu anda yalnızca LLM.int8(), FP4 ve NF4 kuantizasyonunu destekler. bitsandbytes kütüphanesine daha fazla yöntem eklenirse, bu sınıfa da daha fazla argüman eklenir.

is_quantizable

< >

( )

Model kuantize edilebilirse True, aksi halde False döndürür.

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi - bazı NoneType argümanlarını da varsayılan değerleriyle değiştirir.

quantization_method

< >

( )

Bu yöntem, model için kullanılan kuantizasyon yöntemini döndürür. Model kuantize edilemezse None döndürür.

to_diff_dict

< >

( ) → dict[str, Any]

Dönüş değeri

dict[str, Any]

Bu yapılandırma örneğini oluşturan tüm özniteliklerin sözlüğü,

Daha iyi okunabilirlik için config'ten varsayılan config özniteliklerine karşılık gelen tüm öznitelikleri kaldırır ve bir Python sözlüğüne serialize eder.

HfQuantizer

sınıf transformers.quantizers.HfQuantizer

< >

( quantization_config: QuantizationConfigMixin**kwargs )

HuggingFace quantizer'ının soyut sınıfı. Şu anda, çıkarım ve/veya kuantizasyon için HF transformers modellerini kuantize etmeyi destekler. Bu sınıf yalnızca transformers.PreTrainedModel.from_pretrained tarafından kullanılır ve henüz o yöntemin kapsamı dışında kolayca kullanılamaz.

Öznitelikler quantization_config (transformers.utils.quantization_config.QuantizationConfigMixin): Kantize etmek istediğiniz modelin kantizasyon parametrelerini tanımlayan kantizasyon yapılandırması. requires_calibration (bool): Kantizasyon yönteminin, model kullanılmadan önce kalibre edilmesini gerektirip gerektirmediği.

adjust_max_memory

< >

( max_memory: dict )

Ekstra belleğe ihtiyaç duyuluyorsa infer_auto_device_map() için max_memory argümanını ayarlayın

dequantize

< >

( modeldtype = None )

Modeli orijinal modelini geri almak için potansiyel olarak dekuantize edin; bu işlemde doğruluk / performans kaybı yaşanabilir. Not: Tüm kuantizasyon şemaları bunu desteklemez.

get_load_operations

< >

( )

Serileştirilmiş tensörleri yükleyen op sınıfları, örn. {"deserialize": Mxfp4Deserialize, "dequantize": Mxfp4Dequantize}. Bir deserialization işlemi tek bir modülün parametrelerini oluşturur, bu nedenle yalnızca genel dönüştürücülerde çalışır. Bir dequantization işlemi de modelin dönüştürücülerinin op'lerinden önce çalışır, örn. per-expert birleştirmeden önce.

get_new_dtype

< >

( converterparamdtype: torch.dtype | None )

Bu durum, tensörün diskten cihaza gönderildiği somutlaştırma (materialization) anında gerçekleşir. dtype, önceden kuantize edilmiş kontrol noktası tensörünün param içinde dönüştürüleceği veri tipidir. Eğer bu param kuantize edilmemişse (float tipi), başlatılmış nn.Module'den gelen girdi dtype kullanılır.

Eğer kuantizasyon yönteminin bir Deserializer veya Dequantizer (yükleme işlevi) varsa, bunlar tarafından ele alınması için None döndürülür.

get_state_dict_and_metadata

< >

( model )

State dict ve metadata'ı alın. Kuantizasyon nedeniyle state dict'i biraz değiştirmemiz gerektiğinde kullanışlıdır

get_weight_conversions

< >

( )

Model dönüştürücülerine eşleşmeyen herhangi bir parametrede uygulanacak yükleme işlemini döndürür

param_needs_quantization

< >

( model: PreTrainedModelparam_name: str**kwargs )

Belirli bir parametrenin kuantize edilip edilmeyeceğini kontrol edin.

postprocess_model

< >

( model: PreTrainedModel**kwargs )

Parametreler

  • model (~transformers.PreTrainedModel) — Kantize edilecek model
  • kwargs (dict, isteğe bağlı) — _process_model_after_weight_loading ile birlikte iletilen anahtar kelime argümanları.

Ağırlıkların yüklenmesinin ardından modeli son işlemleyin. Soyut _process_model_after_weight_loading metodunu geçersiz kıldığınızdan emin olun.

preprocess_model

< >

( model: PreTrainedModeldtype = None**kwargs )

Parametreler

  • model (~transformers.PreTrainedModel) — Kantize edilecek model
  • kwargs (dict, isteğe bağlı) — _process_model_before_weight_loading ile birlikte iletilen anahtar kelime argümanları.

Ağırlıkların yüklenmesinden önce model özniteliklerini ayarlamak ve/veya modeli dönüştürmek. Bu noktada modelin meta cihazda başlatılmış olması gerekir; böylece modülleri yerinde değiştirmek için modelin iskeletini serbestçe manipüle edebilirsiniz. Soyut _process_model_before_weight_loading metodunu geçersiz kılmayı unutmayın.

remove_quantization_config

< >

( model )

Modelden kuantizasyon yapılandırmasını kaldırın.

update_attn_implementation

< >

( config )

Model oluşturulmadan önce istenen attn_implementation değerini görür, böylece bir quantizer bunu varsayılan olarak ayarlayabilir.

update_device_map

< >

( device_map: dict[str, typing.Any] | None )

Parametreler

  • device_map (Union[dict, str], isteğe bağlı) — from_pretrained yöntemi aracılığıyla iletilen device_map.

Mevcut cihaz haritasını yeni bir harita ile geçersiz kılmak istiyorsanız bu yöntemi geçersiz kılın. Örneğin, accelerate zorunlu bir gereksinim olduğu için, bitsandbytes durumunda herhangi bir device_map geçirilmezse, device_map `“auto”“` olarak ayarlanır.

update_dtype

< >

( dtype: torch.dtype )

Parametreler

  • dtype (torch.dtype) — from_pretrained içine geçirilen girdi dtype'ı

Bazı kuantizasyon yöntemleri, modelin dtype değerini hedef dtype olarak açıkça ayarlamayı gerektirir. Bu davranışın korunmasını sağlamak istiyorsanız bu yöntemi geçersiz kılmanız gerekir

update_parallel_plan

< >

( modelplan: dict )

model.tp_plan veya model.ep_plan (config ve tüm alt config'lerden birleştirilen tam planlar) içindeki güncellemeler, 'inv_scale' gibi quantizer'ın özel anahtarlarını dikkate alır

update_weight_conversions

< >

( weight_conversionsmodel )

Modelin dönüştürücülerinin (dönüşüm eşlemesinden) serileştirilmiş adları yüklemesini sağlar. Modelin parametreleri, örneğin experts.*.gate_proj.weight'in experts.gate_up_proj ile birleştirilmesi gibi durumları belirler:

  • experts.gate_up_proj_scale_inv bir parametredir: bir kopya, experts.*.gate_proj.weight_scale_inv değerini içine birleştirir
  • aksi halde dönüştürücü experts.*.gate_proj.weight_scale_inv değerlerini de toplar, dequantize işlemi önce çalışır

validate_environment

< >

( *args**kwargs )

Bu yöntem, from_pretrained ile geçirilen argümanlarla olası çakışmaları kontrol etmek için kullanılır. Transformers ile entegre edilen tüm gelecekteki kuantizörler için bunu tanımlamanız gerekir. Açık bir kontrol gerekmiyorsa, hiçbir şey döndürmeyin.

HiggsConfig

sınıf transformers.HiggsConfig

< >

( bits: int = 4p: int = 2modules_to_not_convert: list[str] | None = Nonehadamard_size: int = 512group_size: int = 256tune_metadata: dict[str, typing.Any] | None = None**kwargs )

Parametreler

  • bits (int, isteğe bağlı, varsayılan 4) — Kantizasyon için kullanılacak bit sayısı. 2, 3 veya 4 olabilir. Varsayılan 4'tür.
  • p (int, isteğe bağlı, varsayılan 2) — Kuantizasyon ızgarası boyutu. 1 ve 2 desteklenir. Pratikte 2 her zaman daha iyidir. Varsayılan değer 2'dir.
  • modules_to_not_convert (list, optional, default to [“lm_head”]) — List of linear layers that should not be quantized.
  • hadamard_size (int, isteğe bağlı, varsayılan 512) — HIGGS yöntemi için Hadamard boyutu. Varsayılan değer 512'dir. Matrislerin giriş boyutu bu değere tamamlanır. Bu değerin 512'nin altına düşürülmesi, kuantizasyonun kalitesini azaltır.
  • group_size (int, isteğe bağlı, varsayılan 256) — HIGGS yöntemi için grup boyutu. 64, 128 veya 256 olabilir. Azaltılması performansı neredeyse etkilemez. Varsayılan 256'dır. hadamard_size'ın bir böleni olmalıdır.
  • tune_metadata (‘dict’, isteğe bağlı, varsayılan {}) — Çekirdek ayarlama sonuçlarını kaydetmek için modül düzeyinde meta veriler (gemm blok şekilleri, GPU meta verileri vb.). Varsayılan, boş bir sözlüktür. Ayarlama sırasında otomatik olarak ayarlanır.

HiggsConfig, HIGGS yöntemi kullanılarak yapılan kuantizasyon için bir yapılandırma sınıfıdır.

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi - bazı NoneType argümanlarını da varsayılan değerleriyle değiştirir.

HqqConfig

sınıf transformers.HqqConfig

< >

( nbits: int = 4group_size: int = 64view_as_float: bool = Falseaxis: int | None = Nonedynamic_config: dict | None = Noneskip_modules: list = ['lm_head']**kwargs )

Parametreler

  • nbits (int, isteğe bağlı, varsayılan 4) — Bit sayısı. Desteklenen değerler (8, 4, 3, 2, 1).
  • group_size (int, isteğe bağlı, varsayılan 64) — Grup boyutu değeri. Desteklenen değerler, weight.shape[axis]) değerine bölünebilen herhangi bir değerdir.
  • view_as_float (bool, isteğe bağlı, varsayılan False) — True olarak ayarlanırsa, kuantize ağırlığı float olarak görüntüler (dağıtık eğitimde kullanılır).
  • axis (Optional[int], isteğe bağlı) — Gruplamanın yapıldığı eksen. Desteklenen değerler 0 veya 1'dir.
  • dynamic_config (dict, isteğe bağlı) — Dinamik yapılandırma parametreleri. Anahtar, katmanın ad etiketi; değer ise bir kuantizasyon yapılandırmasıdır. Ayarlanırsa, kimliğiyle belirtilen her katman kendi özel kuantizasyon yapılandırmasını kullanır.
  • skip_modules (list[str], isteğe bağlı, varsayılan ['lm_head']) — Atlanacak nn.Linear katmanlarının listesi.
  • kwargs (dict[str, Any], isteğe bağlı) — Yapılandırma nesnesini başlatmak için kullanılacak ek parametreler.

Bu, hqq'nin BaseQuantizeConfig sınıfının bir sarmalayıcısıdır.

from_dict

< >

( config: dict )

quantizers/auto.py içindeki AutoQuantizationConfig.from_dict'te kullanılan from_dict'i geçersiz kılın

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi - bazı NoneType argümanlarını da varsayılan değerleriyle değiştirir.

to_diff_dict

< >

( ) → dict[str, Any]

Dönüş değeri

dict[str, Any]

Bu yapılandırma örneğini oluşturan tüm özniteliklerin sözlüğü,

Daha iyi okunabilirlik için config'ten varsayılan config özniteliklerine karşılık gelen tüm öznitelikleri kaldırır ve bir Python sözlüğüne serialize eder.

MetalConfig

sınıf transformers.MetalConfig

< >

( bits: int = 4group_size: int = 64modules_to_not_convert: list | None = Nonedequantize: bool = False**kwargs )

Apple Silicon (MPS) cihazlarına yönelik Metal afin kuantizasyonu için yapılandırma sınıfı.

Bu kuantizasyon yöntemi, yapılandırılabilir bit genişliği ve grup boyutu ile afin kuantizasyonu (ölçekler + qbiases) gerçekleştirmek için Hugging Face Hub'daki mlx-quantization-metal-kernels Metal çekirdeklerini kullanır. Kuantize ağırlıklar uint32 tensörlere paketlenir ve ileri geçiş, füzyonlu dequantization + matmul Metal çekirdeklerini kullanır.

Mxfp4Config

sınıf transformers.Mxfp4Config

< >

( modules_to_not_convert: list | None = Nonedequantize: bool = False**kwargs )

Parametreler

  • modules_to_not_convert (list, isteğe bağlı, varsayılan None) — Kantize edilmeyecek modüllerin listesi; bazı modüllerin orijinal hassasiyetinde bırakılmasını açıkça gerektiren modelleri kantize etmek için kullanışlıdır.
  • dequantize (bool, isteğe bağlı, varsayılan False) — Modelin bf16 hassasiyetine dequantize edilecek olup olmadığı

Bu, mxfp4 nicelleştirme kullanılarak yüklenmiş bir modelle oynayabileceğiniz tüm olası öznitelikler ve özellikler hakkında bir sarmalayıcı sınıfıdır.

NVFP4Config

sınıf transformers.NVFP4Config

< >

( modules_to_not_convert: list[str] | None = None**kwargs )

Parametreler

  • modules_to_not_convert (list[str], isteğe bağlı) — Orijinal hassasiyetlerinde kalması gereken modül ad kalıpları.
  • kwargs (dict[str, Any], isteğe bağlı) — Ek değerler yok sayılır ve Transformers kayıt defteri aracılığıyla raporlanır.

Uçtan uca NVFP4 ağırlık kuantizasyonu için yapılandırma.

FbgemmFp8Config

sınıf transformers.FbgemmFp8Config

< >

( activation_scale_ub: float = 1200.0modules_to_not_convert: list | None = None**kwargs )

Parametreler

  • activation_scale_ub (float, isteğe bağlı, varsayılan 1200.0) — Aktivasyon ölçek üst sınırı. Bu, girdi aktivasyonunun kuantize edilmesi sırasında kullanılır.
  • modules_to_not_convert (list, isteğe bağlı, varsayılan None) — Kantize edilmeyecek modüllerin listesi; bazı modüllerin orijinal hassasiyetinde bırakılmasını açıkça gerektiren modelleri kantize etmek için kullanışlıdır.

Bu, fbgemm fp8 kuantizasyonu kullanılarak yüklenmiş bir modelde oynayabileceğiniz tüm olası öznitelikler ve özellikler hakkında bir sarmalayıcı sınıfıdır.

CompressedTensorsConfig

sınıf transformers.CompressedTensorsConfig

< >

( config_groups: dict[str, typing.Union[ForwardRef('QuantizationScheme'), list[str]]] | None = Noneformat: str = 'dense'quantization_status: QuantizationStatus = 'initialized'kv_cache_scheme: typing.Optional[ForwardRef('QuantizationArgs')] = Noneglobal_compression_ratio: float | None = Noneignore: list[str] | None = Nonequant_method: str = 'compressed-tensors'run_compressed: bool | None = Nonedequantize: bool = Falseuse_optimized_inference: bool = False**kwargs )

Parametreler

  • config_groups (typing.dict[str, typing.Union[ForwardRef('QuantizationScheme'), typing.list[str]]], isteğe bağlı) — grup adını bir kuantizasyon şeması tanımına eşleyen sözlük
  • format (str, isteğe bağlı, varsayılan "dense") — ağırlıkların saklandığı biçim, örn. dense, float-quantized veya pack-quantized
  • quantization_status (QuantizationStatus, isteğe bağlı, varsayılan "initialized") — modelin kuantizasyon yaşam döngüsündeki durumu, örn. ‘initialized’, ‘calibration’, ‘frozen’
  • kv_cache_scheme (typing.Union[QuantizationArgs, NoneType], isteğe bağlı) — kv önbelleğinin (kv cache) kuantizasyonunu belirtir. None ise, kv önbelleği kuantize edilmez.
  • global_compression_ratio (typing.Union[float, NoneType], isteğe bağlı) — Model sıkıştırma yüzdesi, 0-1 aralığında bir float
  • ignore (typing.Union[typing.list[str], NoneType], opsiyonel) — kuantize edilmeyecek katman adları veya türleri, ‘re:’ önekiyle düzenli ifade (regex) destekler
  • quant_method (str, isteğe bağlı, varsayılan "compressed-tensors") — değiştirmeyin, compressed-tensors olmalıdır
  • run_compressed (bool, isteğe bağlı) — kullanımdan kaldırıldı, bunun yerine dequantize kullanın. Tek etkisi, dequantize değerini tersine çevirmektir; run_compressed=False, dequantize=True anlamına gelir.
  • dequantize (bool, isteğe bağlı, varsayılan False) — True olduğunda, kuantize ağırlıklar yükleme sırasında model veri türüne (ör. BF16) geri kuantize edilir; bu, modelin ince ayarlanması veya orijinal veri türünde kaydedilmesi için gereklidir. False olduğunda, ağırlıklar sıkıştırılmış hallerinde bırakılır ve compressed-tensors bunları ilk ileri geçişte açar.
  • use_optimized_inference (bool, isteğe bağlı, varsayılan False) — True olduğunda, çekirdekleri (kernels) bulunan şemalara sahip katmanlar, kuantize ağırlıklarını korur ve bu çekirdekler üzerinden çalışır (şu anda W8A8 FP8, CUDA SM89+, XPU veya torch >= 2.15 ile MPS). Yalnızca çıkarım (inference) için ve isteğe bağlıdır: bu parametre olmadan model, standart compressed-tensors yolundan geçer. dequantize=True olduğunda yok sayılır.

Bu, compressed-tensors nicelleştirme yapılandırma seçeneklerini yöneten bir sarmalayıcı sınıfıdır. compressed_tensors.QuantizationConfig sınıfının bir sarmalayıcısıdır.

from_dict

< >

( config_dictreturn_unused_kwargs = False**kwargs ) → QuantizationConfigMixin

Parametreler

  • config_dict (dict[str, Any]) — Yapılandırma nesnesini oluşturmak için kullanılacak sözlük.
  • return_unused_kwargs (bool,isteğe bağlı, varsayılan False) — Kullanılmayan anahtar-argüman listesinin döndürülüp döndürülmeyeceğini belirtir. PreTrainedModel içindeki from_pretrained yönteminde kullanılır.
  • kwargs (dict[str, Any]) — Yapılandırma nesnesini başlatmak için kullanılacak ek parametreler.

Dönüş değeri

QuantizationConfigMixin

Bu parametrelerden örneklenen yapılandırma nesnesi.

Bir Python parametre sözlüğünden CompressedTensorsConfig örneği oluşturur. İsteğe bağlı olarak iç içe geçmiş quantization_config içindeki argümanları sarıdan çıkarır.

to_dict

< >

( )

config.json dosyasına eklenecek kuantizasyon yapılandırması

Bu örneği bir Python sözlüğüne serialize eder. Dönüş: dict[str, Any]: Bu yapılandırma örneğini oluşturan tüm özniteliklerin sözlüğü.

to_diff_dict

< >

( ) → dict[str, Any]

Dönüş değeri

dict[str, Any]

Bu yapılandırma örneğini oluşturan tüm özniteliklerin sözlüğü,

Daha iyi okunabilirlik için config'ten varsayılan config özniteliklerine karşılık gelen tüm öznitelikleri kaldırır ve bir Python sözlüğüne serialize eder.

TorchAoConfig

sınıf transformers.TorchAoConfig

< >

( quant_type: AOBaseConfigmodules_to_not_convert: list | None = Noneinclude_input_output_embeddings: bool = Falseuntie_embedding_weights: bool = False**kwargs )

Parametreler

  • quant_type (AOBaseConfig) — Örneğin Int4WeightOnlyConfig(group_size=32), Int8WeightOnlyConfig(), Int8DynamicActivationInt8WeightConfig(), Float8WeightOnlyConfig() gibi, kuantizasyon türünü belirten bir torchao AOBaseConfig örneği.
  • modules_to_not_convert (list, isteğe bağlı, varsayılan None) — Kantize edilmeyecek modüllerin listesi; bazı modüllerin orijinal hassasiyetinde bırakılmasını açıkça gerektiren modelleri kantize etmek için kullanışlıdır.
  • include_input_output_embeddings (bool, isteğe bağlı, varsayılan False) — Kantizasyona gömme katmanlarının dahil edilip edilmeyeceğini belirtir. Bu bayrak ayarlanırsa, giriş gömme katmanı ayrıca module_not_to_convert listesinden de kaldırılır.
  • untie_embedding_weights (bool, isteğe bağlı, varsayılan False) — Giriş gömme ağırlıkları diğer ağırlıklarla bağlıyken, kuantizasyon sırasında ağırlıkların ayrıştırılıp ayrıştırılmayacağı.

torchao kuantizasyon/sıralık teknikleri için yapılandırma sınıfı.

Örnek:

from torchao.quantization import Int4WeightOnlyConfig

quantization_config = TorchAoConfig(Int4WeightOnlyConfig(group_size=32))
model = AutoModelForCausalLM.from_pretrained(
    model_id, device_map="cuda", torch_dtype=torch.bfloat16, quantization_config=quantization_config
)

from_dict

< >

( config_dictreturn_unused_kwargs = False**kwargs )

Sözlükten yapılandırma oluşturun.

get_apply_tensor_subclass

< >

( )

Uygulanacak kuantizasyon yapılandırmasını döndürür.

post_init

< >

( )

Yapılandırmayı doğrula ve varsayılanları ayarla.

to_dict

< >

( )

Yapılandırmayı sözlüğe dönüştürür.

BitNetQuantConfig

sınıf transformers.BitNetQuantConfig

< >

( modules_to_not_convert: list | None = Nonelinear_class: str = 'bitlinear'quantization_mode: str = 'offline'use_rms_norm: bool = Falserms_norm_eps: float | None = 1e-06**kwargs )

Parametreler

  • modules_to_not_convert (Optional[List], isteğe bağlı) — İsteğe bağlı olarak, kuantize edilmemesi gereken nn.Linear ağırlık parametrelerinin tam yollarını içeren bir liste sağlar. Varsayılan değeri None'dır.
  • linear_class (str, isteğe bağlı, varsayılan "bitlinear") — Kullanılacak lineer sınıfın türü. bitlinear veya autobitlinear olabilir.
  • quantization_mode (str, isteğe bağlı, varsayılan "offline") — Kullanılacak kuantizasyon modu. online veya offline olabilir. online modunda, ağırlık kuantizasyon parametreleri her ileri geçiş sırasında dinamik olarak hesaplanır (ör. mevcut ağırlık değerlerine dayalı olarak). Bu, eğitim sırasında ağırlık değişikliklerine uyum sağlayabilir (Kuantizasyon Farkındalıklı Eğitim - QAT). offline modunda, kuantizasyon parametreleri çıkarımdan önce önceden hesaplanır. Bu parametreler daha sonra sabitlenir ve kuantize modele yüklenir. Bu, genel olarak online kuantizasyona kıyasla daha düşük çalışma zamanı yükü sonucunu verir.
  • use_rms_norm (bool, isteğe bağlı, varsayılan False) — Kantizasyon öncesinde aktivasyonlara RMSNorm uygulanıp uygulanmayacağı. Bu, orijinal BitNet makalesinin kantizasyon/paketleme öncesinde aktivasyonları normalize etme yaklaşımıyla uyumludur.
  • rms_norm_eps (float, isteğe bağlı, varsayılan 1e-06) — Sayısal kararlılık için RMSNorm katmanında kullanılan epsilon değeri.
  • kwargs (dict[str, Any], isteğe bağlı) — Belirli kuantizasyon arka uçları veya gelecekteki sürümler tarafından kullanılabilen ek anahtar kelime argümanları.

BitNet kuantizasyonunu uygulamak için yapılandırma sınıfı.

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi

SpQRConfig

sınıf transformers.SpQRConfig

< >

( bits: int = 3beta1: int = 16beta2: int = 16shapes: dict[str, int] | None = Nonemodules_to_not_convert: list[str] | None = None**kwargs )

Parametreler

  • bits (int, isteğe bağlı, varsayılan 3) — Ağırlıkların ve birinci sıfır noktalarının ve ölçeklerin bit sayısını belirtir. Şu anda yalnızca bits = 3 desteklenmektedir.
  • beta1 (int, isteğe bağlı, varsayılan 16) — SpQR karoları genişliği. Şu anda yalnızca beta1 = 16 desteklenmektedir.
  • beta2 (int, isteğe bağlı, varsayılan 16) — SpQR karoyu yüksekliği. Şu anda yalnızca beta2 = 16 desteklenmektedir.
  • shapes (Optional, isteğe bağlı) — Her nesnenin şeklini içeren bir sözlük. Parametrelerin tam boyutunu yalnızca bitler, beta1 ve beta2'den çıkarsamak imkânsız olduğu için buna ihtiyacımız var.
  • modules_to_not_convert (Optional[list[str]], isteğe bağlı) — İsteğe bağlı olarak, kuantize edilmemesi gereken nn.Linear ağırlık parametrelerinin tam yollarının listesini sağlar. Varsayılan değeri None'dır.
  • kwargs (dict[str, Any], isteğe bağlı) — Yapılandırma nesnesini başlatmak için kullanılacak ek parametreler.

Bu, spqr parametreleri hakkında bir sarmalayıcı sınıfıdır. Daha fazla ayrıntı için orijinal yayına başvurun.

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi - bazı NoneType argümanlarını da varsayılan değerleriyle değiştirir.

FineGrainedFP8Config

sınıf transformers.FineGrainedFP8Config

< >

( activation_scheme: str = 'dynamic'weight_block_size: tuple = (128, 128)dequantize: bool = Falsemodules_to_not_convert: list | None = Nonemodules_to_convert: list | None = Nonescale_fmt: str = 'float'expert_dtype: str = 'fp8'**kwargs )

Parametreler

  • activation_scheme (str, isteğe bağlı, varsayılan "dynamic") — Aktivasyon için kullanılan şema; varsayılan ve şu an için desteklenen tek şema “dynamic”dir.
  • weight_block_size (typing.tuple[int, int], isteğe bağlı, varsayılan (128, 128)) — Kantizasyon için ağırlık bloklarının boyutu, varsayılan (128, 128)'dir.
  • dequantize (bool, isteğe bağlı, varsayılan False) — Modelin yüklenirken dequantize edilip edilmeyeceği.
  • modules_to_not_convert (list, isteğe bağlı) — Kantizasyon sırasında dönüştürülmemesi gereken modül adlarının listesi.
  • modules_to_convert (list, isteğe bağlı) — Kantizasyon sırasında dönüştürülmesi gereken gömme tabloları gibi ek modül adlarının listesi.
  • scale_fmt (str, isteğe bağlı, varsayılan "float") — Blok başına ağırlık ölçeklerinin depolama veri türü: "float" (fp32, V3 tarzı) veya "ue8m0" (1 baytlık torch.float8_e8m0fnu, V4 tarzı).
  • expert_dtype (str, isteğe bağlı, varsayılan "fp8") — MoE uzmanlarının ağırlıklarının biçimi: "fp8" veya DeepSeek-V4’ün FP4 paketlenmiş uzmanları için "fp4".

FineGrainedFP8Config, derinseek modellerinde kullanılan ince taneli FP8 kuantizasyonu için bir yapılandırma sınıfıdır.

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi

QuarkConfig

sınıf transformers.QuarkConfig

< >

( **kwargs )

FourOverSixConfig

sınıf transformers.FourOverSixConfig

< >

( activation_dtype: str | None = Noneactivation_scale_rule: str | None = Nonedtype: str = 'nvfp4'gradient_dtype: str | None = Nonegradient_scale_rule: str | None = Nonekeep_master_weights: bool = Falsematmul_backend: str | None = Noneoutput_dtype: str | None = 'bfloat16'quantize_backend: str | None = Nonescale_rule: str = 'mse'weight_dtype: str | None = Noneweight_scale_2d: bool = Falseweight_scale_rule: str | None = Nonemodule_config_overrides: dict[str, dict[str, typing.Any]] | None = Nonemodules_to_not_convert: list[str] | None = ['lm_head']**kwargs )

Parametreler

  • activation_dtype (str, isteğe bağlı) — Aktivasyon tensörlerini kuantize ederken kullanılacak veri türü. Verilmezse dtype kullanılır.
  • activation_scale_rule (str, isteğe bağlı) — Aktivasyon tensörlerindeki bloklar için ölçek seçilirken kullanılacak ölçekleme kuralı. Verilmezse scale_rule kullanılır.
  • dtype (str, varsayılan “nvfp4”, isteğe bağlı, varsayılan olarak "nvfp4") — Katmanın ağırlıkları, aktivasyonları ve tensörleri için kullanılacak veri türü. "nvfp4" veya "mxfp4" olabilir.
  • gradient_dtype (str, isteğe bağlı) — Gradyan tensörlerini kuantize ederken kullanılacak veri türü. Verilmezse dtype kullanılır.
  • gradient_scale_rule (str, isteğe bağlı) — Gradyan tensörlerindeki bloklar için ölçek seçilirken kullanılacak ölçekleme kuralı. Verilmezse scale_rule kullanılır.
  • keep_master_weights (bool, varsayılan False, isteğe bağlı, varsayılan olarak False) — Ana ağırlıkların korunup korunmayacağı. True ise, yüksek hassasiyetli ağırlıklar her zaman korunur ve ağırlıklar her ileri geçişte çevrimiçi olarak kuantize edilir. Bu, kuantize eğitim için faydalıdır.
  • matmul_backend (str, isteğe bağlı) — Matris çarpımları için kullanılacak arka uç. "cutlass" veya "pytorch" olabilir. Belirtilmezse, kullanılabilirse CUTLASS, değilse PyTorch kullanılır.
  • output_dtype (str, isteğe bağlı, varsayılan "bfloat16") — Katman çıktısı için kullanılacak veri türü. "bfloat16" veya "float16" olabilir.
  • quantize_backend (str, isteğe bağlı) — Kantizasyon için kullanılacak arka uç. "cuda", "triton" veya "pytorch" olabilir. Belirtilmezse, ortamınıza ve her bir arka ucu desteklenen seçeneklere göre en hızlı arka uç seçilir. Genellikle "cuda" çıkarım için, "triton" eğitim için ve "pytorch" CUDA olmayan cihazlarda kullanılır.
  • scale_rule (str, varsayılan “mse”, isteğe bağlı, varsayılan olarak "mse") — Blok ölçeklerini seçerken kullanılacak kural. Four Over Six için "mse", "mae" veya "abs_max", varsayılan NVFP4 kuantizasyonu için "static_6" veya tüm blokları 4 maksimum değerine ölçeklemek için "static_4" olabilir.
  • weight_dtype (str, isteğe bağlı) — Ağırlık tensörlerini kuantize ederken kullanılacak veri türü. Verilmezse dtype kullanılır.
  • weight_scale_2d (bool, varsayılan False, isteğe bağlı, varsayılan olarak False) — Ağırlık tensörlerinde ölçek faktörlerinin 2B bloklarda hesaplanıp hesaplanmayacağı. Bu işlem eğitim sırasında yapılmalıdır.
  • weight_scale_rule (str, isteğe bağlı) — Ağırlık tensörlerindeki bloklar için ölçek seçilirken kullanılacak ölçekleme kuralı. Verilmezse scale_rule kullanılır.
  • module_config_overrides (dict[str, dict[str, Any]], isteğe bağlı) — Modül bazlı yapılandırma geçersiz kılma ayarlarının sözlüğü. Anahtarlar modül adları olmalı ve değerler, o modül için kuantizasyon yapılandırmasını içeren sözlükler olmalıdır. Bu, belirli modüller için varsayılan yapılandırmayı geçersiz kılmak için kullanılabilir.
  • modules_to_not_convert (list[str], isteğe bağlı, varsayılan ['lm_head']) — Kantizasyondan hariç tutulacak modüllerin listesi. Varsayılan olarak lm_head hariç tutulur.

Bu, fouroversix ile kuantizasyon için tüm seçenekleri içeren bir sarmalayıcı sınıfıdır. Kısaca, Four Over Six, NVFP4 kuantizasyonuna bir değişikliktir; 16 FP4 değerinden oluşan her blokta en büyük değeri 4 veya 6'ya adaptif olarak ölçekler. Ölçek olarak 6 seçmek, FP4 değerlerinin tam aralığını kullanır; ancak ölçek olarak 4 seçmek, kuantizasyon hatasının daha homojen bir dağılımına olanak tanır. Daha fazla ayrıntı için orijinal yayına bakın: https://arxiv.org/abs/2512.02010.

FPQuantConfig

sınıf transformers.FPQuantConfig

< >

( forward_dtype: str = 'nvfp4'forward_method: str = 'abs_max'backward_dtype: str = 'bf16'store_master_weights: bool = Falsehadamard_group_size: int | None = Nonepseudoquantization: bool = Falsetransform_init: str = 'hadamard'modules_to_not_convert: list[str] | None = None**kwargs )

Parametreler

  • forward_dtype (str, isteğe bağlı, varsayılan "nvfp4") — İleri geçiş için kullanılacak dtype.
  • forward_method (str, isteğe bağlı, varsayılan "abs_max") — İleri geçiş için kullanılacak ölçekleme. "abs_max" veya "quest" olabilir. "abs_max" PTQ için daha iyidir, "quest" ise QAT için daha iyidir.
  • backward_dtype (str, isteğe bağlı, varsayılan "bf16") — Geriye yayılım (backward pass) için kullanılacak dtype.
  • store_master_weights (bool, isteğe bağlı, varsayılan False) — Ana ağırlıkların saklanıp saklanmayacağı. Katman ağırlıkları üzerinde QAT için gereklidir.
  • hadamard_group_size (int, isteğe bağlı) — "quest" için, kuantizasyondan önceki hadamard dönüşümünün grup boyutu; bu değer MXFP4 grup boyutuyla (32) eşleşir. None ise "nvfp4" için 16, "mxfp4" için 32 olarak ayarlanır.
  • pseudoquantization (bool, isteğe bağlı, varsayılan False) — Triton tabanlı sahte kuantizasyonun kullanılıp kullanılmayacağını belirtir. Blackwell olmayan GPU'lar için zorunludur. Hızlanma sağlamaz. Hata ayıklama amaçlıdır.
  • transform_init (str, isteğe bağlı, varsayılan "hadamard") — ön işleme matrisini başlatmak için kullanılacak bir yöntem. "hadamard", "identity" veya "gsr" olabilir.
  • modules_to_not_convert (list, isteğe bağlı) — Kantize edilmeyecek modüllerin listesi; bazı modüllerin orijinal hassasiyetinde bırakılmasını açıkça gerektiren modelleri kantize etmek için kullanışlıdır.

FPQuantConfig, FPQuant yöntemi kullanılarak yapılan kuantizasyon için bir yapılandırma sınıfıdır.

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi - bazı NoneType argümanlarını da varsayılan değerleriyle değiştirir.

AutoRoundConfig

sınıf transformers.AutoRoundConfig

< >

( bits: int = 4group_size: int = 128sym: bool = Truebackend: str = 'auto'**kwargs )

Parametreler

  • bits (int, isteğe bağlı, varsayılan 4) — Kantizasyon için kullanılacak bit sayısı, desteklenen değerler (2, 3, 4, 5, 6, 7, 8).
  • group_size (int, isteğe bağlı, varsayılan 128) — Grup boyutu değeri
  • sym (bool, isteğe bağlı, varsayılan True) — Simetrik kuantizasyonun uygulanıp uygulanmayacağı
  • backend (str, isteğe bağlı, varsayılan "auto") — Çıkarım arka ucu. Varsayılan olarak AutoRound, cihaz, nicelleştirme ayarları ve yüklü kütüphanelere göre uyumlu bir arka uç seçer. Tüm arka uç seçenekleri için Çıkarım arka ucunu belirtme bölümüne bakın.

Bu, AutoRound kuantizasyonu ile yüklenmiş bir modelde oynayabileceğiniz tüm olası öznitelikler ve özellikler hakkında bir sarmalayıcı sınıfıdır.

post_init

< >

( )

Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi.

SinqConfig

sınıf transformers.SinqConfig

< >

( nbits: int = 4group_size: int = 64tiling_mode: str = '1D'method: str = 'sinq'modules_to_not_convert: list[str] | None = None**kwargs: Any )

Parametreler

  • nbits (int, varsayılan 4) — Ağırlıklar için kuantizasyon bitleri.
  • group_size (int, varsayılan 64) — SINQ ağırlık kuantizasyonunda kullanılan grup boyutu (8'in katı olmalıdır).
  • tiling_mode (str, varsayılan “1D”) — SINQ için tiling modu (genellikle “1D”; arka uydunuz destekliyorsa “2D”).
  • method (str, varsayılan “sinq”) — “sinq” – kalibrasyonsuz, yalnızca ağırlık SINQ “asinq” – A-SINQ (aktivasyon farkında), Hugging Face tarafından desteklenmez. Lütfen resmi SINQ deposuna başvurun.
  • modules_to_not_convert (list[str], isteğe bağlı) — Tam hassasiyette tutulacak modül adlarının/öneklerinin listesi.
  • **kwargs — Ek kullanıcı argümanları (gidiş-dönüş için _extra_kwargs içinde tutulur).

SINQ / A-SINQ için kuantizasyon yapılandırması.

Bunu şuna iletin:

AutoModel.from_pretrained(…, quantization_config=SinqConfig(…))

GgufConfig

sınıf transformers.GgufConfig

< >

( gguf_file: str | None = Nonedequantize: bool = False**kwargs )

Parametreler

  • gguf_file (str, isteğe bağlı) — ağırlıkları içeren .gguf dosyasının yolu. from_pretrained(..., gguf_file=...) ile adlandırıldığında, bu alan otomatik olarak doldurulduğu için atlanabilir.
  • dequantize (bool, isteğe bağlı, varsayılan False) — Bunun yerine, yükleme sırasında her ağırlığı düz bir yoğun modele açar. Her zaman doğrudur, ancak bellek tasarrufundan vazgeçer; dosyanın kuantizasyon türleri için uygun bir matmul çekirdeği mevcut olmadığında otomatik yedek çözüm olarak da kullanılır.

Ağırlıkları GGUF bloklarında bırakılmış bir kuantize GGUF checkpoint yükleyin.

Update on GitHub