Transformers documentation
Kantizasyon
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
< source >( 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ılanNone) — 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.
Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi
AqlmConfig
sınıf transformers.AqlmConfig
< source >( 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 gerekennn.Linearağı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.
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
< source >( 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ılanFalse) — 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ılanNone) — 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.
Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi
AwqConfig
sınıf transformers.AwqConfig
< source >( 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ılanTrue) — Sıfır noktası kuantizasyonunun kullanılıp kullanılmayacağı. - backend (
AwqBackend, isteğe bağlı, varsayılanAwqBackend.AUTO) — Kantizasyon arka ucu. - modules_to_not_convert (
list, isteğe bağlı, varsayılanNone) — 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çinAutoAWQbelgelerine 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
< source >( 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ılanNone) — 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.
Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi
GPTQConfig
sınıf transformers.GPTQConfig
< source >( 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 (
strveyaPreTrainedTokenizerBase, 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ılanFalse) — 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ılanTrue) — Kantizasyon sırasında GAR (group aware activation order) kullanılır. Kantizasyon kalitesi üzerinde ölçülebilir olumlu bir etkiye sahiptir. Yalnızcadesc_act = Falseolduğunda geçerlidir.desc_act = TrueolduğundaFalseolarak zorlanır. - sym (
bool, isteğe bağlı, varsayılanTrue) — Simetrik kuantizasyonun kullanılıp kullanılmayacağı. - true_sequential (
bool, isteğe bağlı, varsayılanTrue) — 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_v2yalnı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ğerlerauto,auto_trainableve 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ılanTrue) — 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_quantizeayarlanarak 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şkenself_attn.o_projkatmanını nicelleştiririz. Bu sayede, model nicelleştirildiğindeself_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.
optimum gptq yapılandırma sözlüğüyle uyumlu sınıfı alın
Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi
optimum gptq yapılandırması için uyumlu sözlük alın
BitsAndBytesConfig
sınıf transformers.BitsAndBytesConfig
< source >( 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ılanFalse) — Bu bayrak, LLM.int8() ile 8-bit kuantizasyonu etkinleştirmek için kullanılır. - load_in_4bit (
bool, isteğe bağlı, varsayılanFalse) — Bu bayrak,bitsandbyteskü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 Scalemakalesinde 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ğinCausalLMmodellerinde, sonlm_headorijinaldtype'inde tutulur. - llm_int8_enable_fp32_cpu_offload (
bool, isteğe bağlı, varsayılanFalse) — 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-xxlgibi 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ılanFalse) — 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.dtypeor str, isteğe bağlı, varsayılantorch.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,fp4veyanf4ile belirtilen FP4 ve NF4 veri türleridir. - bnb_4bit_use_double_quant (
bool, isteğe bağlı, varsayılanFalse) — 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.dtypeor str, isteğe bağlı, varsayılantorch.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.
Model kuantize edilebilirse True, aksi halde False döndürür.
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.
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
< source >( ) → 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
< source >( 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.
Ekstra belleğe ihtiyaç duyuluyorsa infer_auto_device_map() için max_memory argümanını ayarlayın
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.
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.
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.
State dict ve metadata'ı alın. Kuantizasyon nedeniyle state dict'i biraz değiştirmemiz gerektiğinde kullanışlıdır
Model dönüştürücülerine eşleşmeyen herhangi bir parametrede uygulanacak yükleme işlemini döndürür
Belirli bir parametrenin kuantize edilip edilmeyeceğini kontrol edin.
postprocess_model
< source >( model: PreTrainedModel**kwargs )
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
< source >( model: PreTrainedModeldtype = None**kwargs )
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.
Modelden kuantizasyon yapılandırmasını kaldırın.
Model oluşturulmadan önce istenen attn_implementation değerini görür, böylece bir quantizer bunu varsayılan olarak ayarlayabilir.
update_device_map
< source >( device_map: dict[str, typing.Any] | None )
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
< source >( dtype: torch.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
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
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_invbir parametredir: bir kopya,experts.*.gate_proj.weight_scale_invdeğerini içine birleştirir- aksi halde dönüştürücü
experts.*.gate_proj.weight_scale_invdeğerlerini de toplar, dequantize işlemi önce çalışır
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
< source >( 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.
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
< source >( 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ılanFalse) —Trueolarak 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']) — Atlanacaknn.Linearkatmanları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.
quantizers/auto.py içindeki AutoQuantizationConfig.from_dict'te kullanılan from_dict'i geçersiz kılın
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
< source >( ) → 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
< source >( 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
< source >( modules_to_not_convert: list | None = Nonedequantize: bool = False**kwargs )
Parametreler
- modules_to_not_convert (
list, isteğe bağlı, varsayılanNone) — 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ılanFalse) — 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
< source >( modules_to_not_convert: list[str] | None = None**kwargs )
Uçtan uca NVFP4 ağırlık kuantizasyonu için yapılandırma.
FbgemmFp8Config
sınıf transformers.FbgemmFp8Config
< source >( 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ılanNone) — 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
< source >( 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-quantizedveyapack-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 yerinedequantizekullanın. Tek etkisi,dequantizedeğerini tersine çevirmektir;run_compressed=False,dequantize=Trueanlamına gelir. - dequantize (
bool, isteğe bağlı, varsayılanFalse) —Trueolduğ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.Falseolduğ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ılanFalse) —Trueolduğ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=Trueolduğ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
< source >( 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ılanFalse) — Kullanılmayan anahtar-argüman listesinin döndürülüp döndürülmeyeceğini belirtir.PreTrainedModeliçindekifrom_pretrainedyö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.
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
< source >( ) → 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
< source >( quant_type: AOBaseConfigmodules_to_not_convert: list | None = Noneinclude_input_output_embeddings: bool = Falseuntie_embedding_weights: bool = False**kwargs )
Parametreler
- quant_type (
AOBaseConfig) — ÖrneğinInt4WeightOnlyConfig(group_size=32),Int8WeightOnlyConfig(),Int8DynamicActivationInt8WeightConfig(),Float8WeightOnlyConfig()gibi, kuantizasyon türünü belirten bir torchaoAOBaseConfigörneği. - modules_to_not_convert (
list, isteğe bağlı, varsayılanNone) — 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ılanFalse) — 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ılanFalse) — 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
)Sözlükten yapılandırma oluşturun.
Uygulanacak kuantizasyon yapılandırmasını döndürür.
Yapılandırmayı doğrula ve varsayılanları ayarla.
Yapılandırmayı sözlüğe dönüştürür.
BitNetQuantConfig
sınıf transformers.BitNetQuantConfig
< source >( 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 gerekennn.Linearağı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ü.bitlinearveyaautobitlinearolabilir. - quantization_mode (
str, isteğe bağlı, varsayılan"offline") — Kullanılacak kuantizasyon modu.onlineveyaofflineolabilir.onlinemodunda, 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).offlinemodunda, 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ılanFalse) — 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ı.
Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi
SpQRConfig
sınıf transformers.SpQRConfig
< source >( 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 gerekennn.Linearağı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.
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
< source >( 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ılanFalse) — 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ıktorch.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.
Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi
QuarkConfig
FourOverSixConfig
sınıf transformers.FourOverSixConfig
< source >( 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ü. Verilmezsedtypekullanı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ı. Verilmezsescale_rulekullanı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ü. Verilmezsedtypekullanı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ı. Verilmezsescale_rulekullanılır. - keep_master_weights (
bool, varsayılan False, isteğe bağlı, varsayılan olarakFalse) — Ana ağırlıkların korunup korunmayacağı.Trueise, 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ü. Verilmezsedtypekullanılır. - weight_scale_2d (
bool, varsayılan False, isteğe bağlı, varsayılan olarakFalse) — 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ı. Verilmezsescale_rulekullanı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 olaraklm_headhariç 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
< source >( 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ılanFalse) — 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.Noneise"nvfp4"için 16,"mxfp4"için 32 olarak ayarlanır. - pseudoquantization (
bool, isteğe bağlı, varsayılanFalse) — 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.
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
< source >( 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ılanTrue) — 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.
Argümanların doğru olduğunu kontrol eden güvenlik denetleyicisi.
SinqConfig
sınıf transformers.SinqConfig
< source >( 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_kwargsiç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
< source >( gguf_file: str | None = Nonedequantize: bool = False**kwargs )
Parametreler
- gguf_file (
str, isteğe bağlı) — ağırlıkları içeren.ggufdosyası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ılanFalse) — 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.