Transformers documentation

Dışa Aktarıcılar

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

Dışa Aktarıcılar

Transformers'a yeni dışa aktarma arka uçları, HfExporter sınıfından türetme yoluyla eklenebilir.

Exporters kılavuzunda yerleşik dışa aktarıcıları nasıl kullanacağınızı öğrenin.

AutoHfExporter

sınıf transformers.exporters.AutoHfExporter

< >

( )

ExportConfig verildiğinde doğru HfExporter sınıfını otomatik olarak örneklemekten sorumlu olan Auto-Hf dışa aktarıcı sınıfı.

from_pretrained

< >

( pretrained_model_name_or_path**kwargs )

Bir dışa aktarıcı örneğini, dışa aktarma yapılandırması içeren önceden eğitilmiş bir modelden/kontrol noktasından yükleyin.

Henüz uygulanmadı — birinci sınıf “dışa aktarma tarifi” iş akışı için yer tutucu.

Fikir: Model sahipleri, Hub üzerindeki ağırlıklarının yanında bir export_config.json (veya config.json içinde bir export_config alanı) yayımlar. Bu dosya, sahibin mimarileri için zaten doğruladığı ayarları içerir: hedef format (dynamo / onnx / executorch), kesin dinamik şekil spesifikasyonları (ör. text_ids 4096'ya kadar dinamik, görüntü karoları 448'de sabit, kenar cihaz dağıtımı için batch=1), strict bayrağı, ONNX opset, prefill ile decode yerleşimi, ExecuTorch arka uç seçimi ve bugün bir README'de veya özel bir defterde geleneksel bilgi olarak yer alan diğer tüm ayarlar.

Tüketiciler, ardından sahip tarafından doğrulanmış dışa aktarmayı tek çağrıda alır:

exporter = AutoHfExporter.from_pretrained("org/model-name")
program = exporter.export(model, inputs)

[register_export_input_preparer] kayıt defteriyle birleşir: sahip, şekil spesifikasyonunu export_config.json üzerinden sağlar; transformers ise bu mimari için veriye bağımlı ön hesaplamaları (cu_seqlens, görme konum kimlikleri, pencere indeksleri, …) sağlar. Birlikte, yeni modellerin dışa aktarılmasının iki zorlu kısmını kapsarlar — doğru şekil sözleşmesini bilmek ve doğru girdileri hazırlamak — böylece aşağı akış kullanıcıları bunlardan herhangi birini sıfırdan yeniden türetmek zorunda kalmaz (ve yanlış yaptıklarında üretimde bozulma yaşamazlar).

supports_export_format

< >

( export_config_dict: dict )

Sağlanan sözlüğün, hem kayıtlı bir yapılandırma sınıfına hem de kayıtlı bir dışa aktarıcı sınıfına sahip bir export_format tanımladığını belirtiyorsa True döndürür. Biçim tamamen eksikse, bilinmiyorsa veya yalnızca yarı kayıtlıysa, uygulanabilir bir mesajla uyarı verir.

AutoExportConfig

sınıf transformers.exporters.AutoExportConfig

< >

( )

Bir sözlükte saklanan bir dışa aktarma yapılandırması verildiğinde doğru dışa aktarma yapılandırmasına otomatik olarak yönlendirmeyi üstlenen Auto-HF dışa aktarma yapılandırma sınıfı.

HfExporter

sınıf transformers.exporters.HfExporter

< >

( )

Tüm Transformers dışa aktarıcıları için soyut temel sınıf.

Yeni bir dışa aktarma arka ucu eklemek için ~HfExporter.export sınıfını türetin ve uygulayın.

export

< >

( model: PreTrainedModelsample_inputs: MutableMapping[str, torch.Tensor | Cache]config: ExportConfigMixin )

Parametreler

  • model (PreTrainedModel) — Dışa aktarılacak model.
  • sample_inputs (dict[str, torch.Tensor | Cache]) — Forward kwargs — model(**sample_inputs) çağrısına geçireceğiniz argümanlar. Bunlar, izleme sırasında örnek girişler olarak doğrudan kullanılır. Otoregresif bir çözümleme adımı dışa aktarımı için bu, past_key_values, cache_position gibi alanları dahil etmeniz gerektiği anlamına gelir. Yalnızca üretim tarzı girişleriniz varsa bunun yerine ~HfExporter.export_for_generation kullanın — bu yöntem sizin için model.generate çalıştırır ve her aşamayı dışa aktarır.
  • config (ExportConfigMixin) — Arka uçla ilgili yapılandırma.

Modeli dışa aktarın ve backend'e özgü program nesnesini döndürün.

export_for_generation

< >

( model: PreTrainedModelsample_inputs: MutableMapping[str, torch.Tensor | Cache]config: ExportConfigMixin | dict[str, ExportConfigMixin]generation_config: GenerationConfig | None = Nonemulti_token_decode: bool = False ) → dict[str, Any]

Parametreler

  • model (PreTrainedModel) — Dışa aktarılacak üretken model. model.generate(**sample_inputs) desteklemelidir.
  • sample_inputs (dict[str, torch.Tensor | Cache]) — Generate kwargs — model.generate(**sample_inputs) çağrısına geçireceğiniz argümanlar (genellikle input_ids + attention_mask, çok modallı modeller için pixel_values / input_features gibi modallık girdileri). Aşama bazlı forward kwargs içsel olarak yakalanır.
  • config (ExportConfigMixin veya dict[str, ExportConfigMixin]) — Arka uç (backend) özel yapılandırması. Her bileşene uygulanacak tek bir yapılandırma geçin veya bileşen adına göre anahtarlanmış bir dict (ör. "image_encoder", "language_model", "lm_head", "decode") ile bileşen bazında geçersiz kılın — tüm bileşen adları dict içinde mevcut olmalıdır.
  • generation_config (GenerationConfig, isteğe bağlı) — generate() yakalamasına iletilir (varsayılan olarak modelin kendi ayarları kullanılır). Sabit boyutlu bir StaticCache ile dışa aktarmak için cache_implementation="static" içeren bir yapılandırma geçin.
  • multi_token_decode (bool, isteğe bağlı, varsayılan False) — decode bileşeninin birden fazla sorgu tokenini aynı anda işleyip işlemediğini belirtir — dinamik sorgu ekseni (boş önbellekte prefill, aksi halde geçmişten devam) — klasik tek token adımıyla karşılaştırıldığında (bkz. decompose_for_generation()). Yalnızca dinamik şekilli bir dışa aktarmada (config.dynamic=True) dinamik kalır.

Dönüş değeri

dict[str, Any]

{component_name: backend_specific_artifact} — decompose_for_generation() ile aynı anahtarlar. Değerler, somut backend için ~HfExporter.export'in döndürdüğü şeydir (ExportedProgram, ONNXProgram, ExecutorchProgramManager).

Üretken bir modeli parçalara ayırın ve her bileşeni bağımsız olarak dışa aktarın.

decompose_for_generation() etrafındaki ince sarmalayıcı, döndürülen her (submodel, forward_inputs) çifti üzerinde ~HfExporter.export çağrısı yapar. Ara (submodel, forward_inputs) çiftlerine (doğrulama, özel girdiler, bir aşamayı atlama, …) ihtiyacınız varsa, decompose_for_generation() işlevini doğrudan çağırın.

validate_environment

< >

( *args**kwargs )

required_packages'ın yüklendiğini kontrol edin ve tested_versions'ten sürüm sapması durumunda uyarı verin.

DynamoExporter

sınıf transformers.exporters.DynamoExporter

< >

( )

Bir PreTrainedModel'i ExportedProgram'a dönüştüren dışa aktarıcı.

Örnek:

>>> from transformers.exporters.exporter_dynamo import DynamoExporter, DynamoConfig

>>> exporter = DynamoExporter()
>>> exported = exporter.export(model, inputs, config=DynamoConfig(dynamic=True))
>>> outputs = exported.module()(**inputs)

export

< >

( model: PreTrainedModelsample_inputs: MutableMapping[str, Any]config: DynamoConfig | dict[str, Any] )

OnnxExporter

sınıf transformers.exporters.OnnxExporter

< >

( )

Bir PreTrainedModel'i ONNX ONNXProgram'a dönüştüren dışa aktarıcı.

Örnek:

>>> from transformers.exporters.exporter_onnx import OnnxExporter, OnnxConfig

>>> exporter = OnnxExporter()
>>> onnx_program = exporter.export(model, inputs, config=OnnxConfig(dynamic=True))
>>> outputs = onnx_program(**inputs)  # run in-memory
>>> exporter.export(model, inputs, config=OnnxConfig(output_path="model.onnx"))  # save to disk

export

< >

( model: PreTrainedModelsample_inputs: MutableMapping[str, Any]config: OnnxConfig | dict[str, Any] )

ExecutorchExporter

sınıf transformers.exporters.ExecutorchExporter

< >

( )

Bir PreTrainedModel'i ExecuTorch ExecutorchProgramManager'ine dönüştüren dışa aktarıcı.

Örnek:

>>> from transformers.exporters.exporter_executorch import ExecutorchExporter, ExecutorchConfig

>>> exporter = ExecutorchExporter()
>>> et_program = exporter.export(model, inputs, config=ExecutorchConfig(backend="xnnpack"))
>>> et_program.write_to_file("model.pte")

export

< >

( model: PreTrainedModelsample_inputs: MutableMapping[str, Any]config: ExecutorchConfig | dict[str, Any] )

Bir modeli ExecuTorch'e dışa aktarın, arka uç hazırlığını ve torch op yamalarını uygulayın.

DynamoConfig

sınıf transformers.exporters.DynamoConfig

< >

( export_format: ExportFormat = <ExportFormat.DYNAMO: 'dynamo'>dynamic: bool = Falsestrict: bool = Falsedynamic_shapes: dict[str, Any] | None = Noneprefer_deferred_runtime_asserts_over_guards: bool = Falsequantizer: ExportQuantizer | None = None )

Parametreler

  • dynamic (bool, opsiyonel, varsayılan False) — Dinamik (sembolik) şekillerle dışa aktarılacak mı? True olduğunda ve dynamic_shapes ayarlanmadığında, tüm gerginlik boyutları otomatik olarak Dim.AUTO olarak ayarlanır.
  • strict (bool, isteğe bağlı, varsayılan False) — torch.export içinde sıkı modun etkinleştirilip etkinleştirilmeyeceğini belirtir. Tam sembolik izlemeyi çalıştırır ve daha fazla hata yakalar, ancak daha yavaştır ve karmaşık modellerde başarısız olma olasılığı daha yüksektir.
  • dynamic_shapes (dict[str, Any], isteğe bağlı) — torch.export'a iletilen, girdi başına açık dinamik şekil tanımlamaları. dynamic parametresine göre önceliklidir.
  • prefer_deferred_runtime_asserts_over_guards (bool, opsiyonel, varsayılan False) — True olduğunda, veriye bağımlı şekil korumaları, dışa aktarma sırasında bir korumanın sembolik şekil aralığının tamamında geçerli olmayacağı durumlarda dışa aktarmayı başarısız kılmak yerine, dışa aktarılan grafikte çalışma zamanı assert'leri olarak üretilir. Çoğu transformer LLM, ince taneli Dim(min=, max=) sınırlarını kullanırken bunun True olarak ayarlanmasını gerektirir. dynamic=True / Dim.AUTO ile gerekmez; bu durumda torch.export, şekil ilişkilerini kullanıcı tarafından belirtilen sınırlara karşı doğrulamak yerine çıkarır.
  • quantizer ([~exporters.quantizers.ExportQuantizer], opsiyonel) — Dışa aktarma sırasında uygulanan eğitim sonrası nicelleştirme: tüm arka uçlar için FX grafiğinde [~exporters.quantizers.PT2EQuantizer] veya [~exporters.quantizers.NNCFTorchFXQuantizer], dönüştürülmüş ONNX modelinde [~exporters.quantizers.OnnxRuntimeQuantizer] veya dönüştürülmüş OpenVINO / ONNX modelinde [~exporters.quantizers.NNCFOpenVINOQuantizer] / [~exporters.quantizers.NNCFOnnxQuantizer].

torch.export ile modelleri dışa aktarmak için yapılandırma sınıfı.

OnnxConfig

sınıf transformers.exporters.OnnxConfig

< >

( export_format: ExportFormat = <ExportFormat.ONNX: 'onnx'>dynamic: bool = Falsestrict: bool = Falsedynamic_shapes: dict[str, Any] | None = Noneprefer_deferred_runtime_asserts_over_guards: bool = Falsequantizer: ExportQuantizer | None = Noneoutput_path: str | PathLike | None = Noneopset_version: int | None = Noneexternal_data: bool = Trueoptimize: bool = Trueexport_params: bool = Truekeep_initializers_as_inputs: bool = False )

Parametreler

  • output_path (str veya PathLike, isteğe bağlı) — .onnx dosyası için çıktı yolu. None olduğunda (varsayılan), dışa aktarılan model diske yazılmadan ONNXProgram olarak bellekte tutulur.
  • opset_version (int, isteğe bağlı) — Hedeflenecek ONNX opset sürümü. Varsayılan olarak, yüklü onnxscript sürümünün desteklediği en son opset kullanılır.
  • external_data (bool, isteğe bağlı, varsayılan True) — Büyük ağırlık tensörlerini protobuf içinde gömülmek yerine ayrı bir .onnx_data yan dosyasında saklar. Ağırlıkları 2 GB protobuf sınırını aşan modeller için gereklidir.
  • optimize (bool, isteğe bağlı, varsayılan True) — Dışa aktarılan grafik üzerinde onnxscript optimizasyon geçişlerini (sabit katlama, ölü kod eleme, …) çalıştırır. Yalnızca onnxscript optimizasyoncusundaki yukarı akış hatalarına takılan modeller için devre dışı bırakın.
  • export_params (bool, isteğe bağlı, varsayılan True) — Model ağırlıklarını ONNX grafiğine gömün. Ağırlıksız bir grafik dışa aktarmak için False olarak ayarlayın (ağırlıklar çalışma zamanında sağlanmalıdır).
  • keep_initializers_as_inputs (bool, isteğe bağlı, varsayılan False) — Ağırlık başlatıcılarını açık grafik girdileri olarak dışa aktarır. Bazı eski ONNX çalışma zamanları (opset < 9) için gereklidir.

torch.onnx.export üzerinden modelleri ONNX'e dışa aktarmak için yapılandırma sınıfı.

DynamoConfig sınıfından tüm alanları devralır (dynamic, strict, dynamic_shapes, prefer_deferred_runtime_asserts_over_guards).

ExecutorchConfig

sınıf transformers.exporters.ExecutorchConfig

< >

( export_format: ExportFormat = <ExportFormat.EXECUTORCH: 'executorch'>dynamic: bool = Falsestrict: bool = Falsedynamic_shapes: dict[str, Any] | None = Noneprefer_deferred_runtime_asserts_over_guards: bool = Falsequantizer: ExportQuantizer | None = Nonebackend: str = 'xnnpack'alloc_graph_input: bool = Truealloc_graph_output: bool = Truealloc_mutable_buffers: bool = True )

Parametreler

  • backend (str, isteğe bağlı, varsayılan olarak "xnnpack") — Hedef ExecuTorch arka ucu. Desteklenen değerler:
    • "xnnpack" — XNNPACK kütüphanesi üzerinden CPU çıkarımı (varsayılan; her yerde çalışır).
    • "cuda" — ExecuTorch CUDA arka ucu üzerinden GPU çıkarımı.
    • "mlx" — Apple Silicon üzerinde ExecuTorch MLX arka ucu üzerinden GPU çıkarımı.
  • alloc_graph_input (bool, isteğe bağlı, varsayılan True) — Hafıza planlama adımının, grafik girdileri için arena hafızası ayırıp ayırmadığını belirtir. False olduğunda, çalışma zamanı girdi tamponlarını arena'ya kopyalamak yerine çağıran tarafından sağlanan girdi tamponlarını doğrudan kullanır — böylece yerinde USER_INPUT_MUTATION (ör. bir StaticCache yazması) arena kopyasında değil, çağıranın tensöründe gerçekleşir.
  • alloc_graph_output (bool, isteğe bağlı, varsayılan True) — Hafıza planlama geçişinin, grafik çıktıları için arena hafızası ayırıp ayırmadığını belirtir. False olduğunda, çağıran tarafın çıktı tamponlarını çalışma zamanında bağlaması gerekir (Method::set_output_data_ptr); bir çıktıyı, değiştirilmiş girdisinin tamponuna bağlamak, kopyalama-dışa aktarma gidiş-dönüşünü önler.
  • alloc_mutable_buffers (bool, isteğe bağlı, varsayılan True) — Hafıza planlama adımının, değişken tamponlar (modelde barındırılan durum) için arena hafızası ayırıp ayırmadığını belirtir. MemoryPlanningPass bileşenine aktarılır.

ExecuTorch formatına model dışa aktarma için yapılandırma sınıfı.

DynamoConfig sınıfından tüm alanları devralır (dynamic, strict, dynamic_shapes, prefer_deferred_runtime_asserts_over_guards).

OpenVINOConfig

sınıf transformers.exporters.OpenVINOConfig

< >

( export_format: ExportFormat = <ExportFormat.OPENVINO: 'openvino'>dynamic: bool = Falsestrict: bool = Falsedynamic_shapes: dict[str, Any] | None = Noneprefer_deferred_runtime_asserts_over_guards: bool = Falsequantizer: ExportQuantizer | None = Noneoutput_path: str | PathLike | None = Nonecompress_to_fp16: bool = Truestateful: bool = True )

Parametreler

  • output_path (str veya PathLike, isteğe bağlı) — .xml dosyası için çıktı yolu (eşleşen .bin dosyası yanına yazılır). None olduğunda (varsayılan) dönüştürülen model, bellekte bir openvino.Model olarak tutulur.
  • compress_to_fp16 (bool, opsiyonel, varsayılan True) — Kaydetme sırasında kayan noktalı ağırlıkları FP16'ya sıkıştırır — çoğu modelde doğruluk üzerinde ihmal edilebilir bir etkiyle disk üzerindeki boyutu yarıya indirir. Yalnızca output_path ayarlandığında uygulanır.
  • stateful (bool, optional, defaults to True) — Fold round-tripped state tensors (KV cache, SSM states, …) into internal OV variables (ReadValue/Assign`). The runtime then carries state across `infer()` calls instead of marshalling cache tensors through inputs/outputs on every step, and a fused `beam_idx input reorders state in-graph for beam search. No-op for models without round-tripped state (encoders, prefill-only exports). Set it to False for targets that take no stateful model, such as the NPU plugin.

openvino.convert_model aracılığıyla modelleri OpenVINO IR formatına dışa aktarmak için yapılandırma sınıfı.

[DynamoConfig] sınıfından tüm alanları devralır (dynamic, strict, dynamic_shapes, prefer_deferred_runtime_asserts_over_guards).

Kantlayıcılar

sınıf transformers.exporters.ExportQuantizer

< >

( calibration_dataset: Iterable[dict[str, Any]] | None = None )

Parametreler

  • calibration_dataset (Iterable[dict], isteğe bağlı) — Kantlayıcının kalibrasyonunu yaptığı girdi sözlükleri: bir liste veya partileri model girdilerine toplayan bir DataLoader. ~HfExporter.export_for_generation için bunlar generate argümanlarıdır ve her bileşen için bir kalibrasyon setine alınır. None olduğunda, veriye ihtiyaç duyan bir kantlayıcı, uyarı vererek dışa aktarımın kendi örnek girdileri üzerinde kalibrasyon yapar.

Dışa aktarma sırasında uygulanan eğitim sonrası niceliklendiriciler için temel sınıf.

Bir quantizer, desteklediği dışa aktarma biçimlerini ve ihtiyaç duyduğu paketleri (exporter'lar gibi, test edildiği sürümlerle birlikte) ve herhangi bir dönüştürme işleminden önce torch.export FX grafiğini mi (böylece her backend sonucu alır) yoksa bir backendin dönüştürdüğü modeli mi (onnx_ir.Model, openvino.Model) kuantize ettiğini bildirir. Exporter, bunu baştan dışa aktarma ile doğrular, ardından o model ve dışa aktarmanın örnek girdileriyle ~ExportQuantizer.quantize çağrısını yapar. Yeni bir kuantizasyon yöntemi eklemek için bunu alt sınıflandırın ve quantize uygulayın; bir CalibrationSet, kalibrasyon örneklerini modelin kendi girdilerine eşler.

quantize

< >

( model: Anysample_inputs: dict[str, Any]export_format: ExportFormat )

model (eğer quantizes_fx_graph ise FX grafiği, aksi halde backend modeli) kuantize edin ve sonucu, calibration_dataset üzerinde veya yoksa dışa aktarımın sample_inputs üzerinde kalibre edilmiş olarak döndürün.

validate_environment

< >

( export_format: ExportFormat )

Bu kuantizatörün export_format dışa aktarımında çalışamaması veya gerekli bir paketin eksik ya da çok eski olması durumunda hata fırlatır; test edildiği sürümden farklıysa uyarı verir.

with_calibration

< >

( calibration_dataset: Iterable[dict[str, Any]] )

calibration_dataset üzerinde kalibrasyon yapan bu kuantizatörün bir kopyası.

sınıf transformers.exporters.quantizers.CalibrationSet

< >

( calibration_dataset: Iterable[dict[str, Any]] | Nonesample_inputs: dict[str, Any]transform: Callable[[dict[str, Any]], Any] )

Model girdileri olarak kalibrasyon örneklerinin yeniden yinelebilir görünümü.

Örnekler, kuantizatörün calibration_dataset değeridir; yoksa dışa aktarımın kendi sample_inputs değeridir (okunduklarında bir kez uyarı verilir). Bunlar, bir tokenizer’ın BatchEncoding gibi herhangi bir eşleme olabilir. transform, her geçişte, örnekleri tek tek ve tembel (lazy) bir şekilde, her forward-kwarg örneğini kuantize edilmiş modelin kabul ettiği biçime (izlenen kwargs, ONNX beslemeleri, OpenVINO port beslemeleri) eşler.

sınıf transformers.exporters.PT2EQuantizer

< >

( quantizer: Anycalibration_dataset: Iterable[dict[str, Any]] | None = None )

Parametreler

  • quantizer (torchao.quantization.pt2e.quantizer.Quantizer) — Grafiği işaretleyen PT2E quantizer'ı. quantize/dequantize işlemleri, hedef backend'in desteklediği türden olmalıdır: inductor için X86InductorQuantizer, ONNX (QDQ) veya OpenVINO, ExecuTorch için XNNPACKQuantizer.
  • calibration_dataset (Iterable[dict], isteğe bağlı) — Gözlemcilerin kalibrasyon için kullandığı girdi sözlükleri (bkz. ExportQuantizer), her biri için bir ileri geçiş. Kalibrasyonu toplu (batch) veriler üzerinde yapmak için, tekil örneklerin listesini yerine örnekleri toplu girdi sözlüklerine birleştiren bir DataLoader iletin.

FX grafiğini PyTorch 2 Export (PT2E) kuantizasyonu ile kuantize edin: prepare_pt2e gözlemcileri (observers) ekler, kalibrasyon seti bunları yönlendirir ve convert_pt2e bunları quantize/dequantize işlemleriyle değiştirir. Tüm dışa aktarma (export) arka uçlarıyla çalışır.

Örnek:

>>> from torchao.quantization.pt2e.quantizer.x86_inductor_quantizer import (
...     X86InductorQuantizer,
...     get_default_x86_inductor_quantization_config,
... )
>>> from transformers.exporters import DynamoConfig, PT2EQuantizer

>>> x86 = X86InductorQuantizer().set_global(get_default_x86_inductor_quantization_config())
>>> DynamoConfig(quantizer=PT2EQuantizer(x86, calibration_dataset=samples))

sınıf transformers.exporters.OnnxRuntimeQuantizer

< >

( config: OnnxRuntimeStaticConfig | OnnxRuntimeDynamicConfig | None = Nonecalibration_dataset: Iterable[dict[str, Any]] | None = None )

Dönüştürülen ONNX modelini ONNX Runtime'ın kendi araçları (onnxruntime.quantization) ile kuantize edin: OnnxRuntimeStaticConfig (varsayılan) ile quantize_static veya OnnxRuntimeDynamicConfig ile quantize_dynamic.

Örnek:

>>> from transformers.exporters import (
...     OnnxConfig,
...     OnnxRuntimeDynamicConfig,
...     OnnxRuntimeQuantizer,
...     OnnxRuntimeStaticConfig,
... )

>>> static = OnnxRuntimeStaticConfig(per_channel=True)
>>> OnnxConfig(quantizer=OnnxRuntimeQuantizer(static, calibration_dataset=samples))
>>> OnnxConfig(quantizer=OnnxRuntimeQuantizer(OnnxRuntimeDynamicConfig()))

sınıf transformers.exporters.OnnxRuntimeStaticConfig

< >

( quant_format: Any = Noneop_types_to_quantize: list[str] | None = Noneper_channel: bool | None = Nonereduce_range: bool | None = Noneactivation_type: Any = Noneweight_type: Any = Nonenodes_to_quantize: list[str] | None = Nonenodes_to_exclude: list[str] | None = Nonecalibrate_method: Any = Nonecalibration_providers: list[str] | None = Noneextra_options: dict[str, Any] | None = None )

onnxruntime.quantization.quantize_static argümanları: int8 aktivasyonlar ve ağırlıklar (varsayılan olarak QDQ), kuantizörün calibration_dataset üzerinde kalibre edilir. None olarak bırakılan bir alan, ONNX Runtime varsayılanını korur. Her biri için quantize_static dokümantasyonuna bakın.

sınıf transformers.exporters.OnnxRuntimeDynamicConfig

< >

( op_types_to_quantize: list[str] | None = Noneper_channel: bool | None = Nonereduce_range: bool | None = Noneweight_type: Any = Nonenodes_to_quantize: list[str] | None = Nonenodes_to_exclude: list[str] | None = Noneextra_options: dict[str, Any] | None = None )

onnxruntime.quantization.quantize_dynamic argümanları: int8 ağırlıklar, çalışma zamanında kuantize edilen aktivasyonlar, kalibrasyon yok. None olarak bırakılan bir alan, ONNX Runtime varsayılanını korur. Her biri için bkz. quantize_dynamic.

sınıf transformers.exporters.NNCFOpenVINOQuantizer

< >

( config: NNCFQuantizationConfig | NNCFWeightCompressionConfig | None = Nonecalibration_dataset: Iterable[dict[str, Any]] | None = None )

Dönüştürülen OpenVINO modelini NNCF ile kuantize edin: nncf.quantize bir NNCFQuantizationConfig (varsayılan) ile veya nncf.compress_weights bir NNCFWeightCompressionConfig ile.

Örnek:

>>> import nncf
>>> from transformers.exporters import NNCFOpenVINOQuantizer, NNCFWeightCompressionConfig, OpenVINOConfig

>>> OpenVINOConfig(quantizer=NNCFOpenVINOQuantizer(calibration_dataset=samples))
>>> OpenVINOConfig(
...     quantizer=NNCFOpenVINOQuantizer(NNCFWeightCompressionConfig(mode=nncf.CompressWeightsMode.INT4_SYM))
... )

sınıf transformers.exporters.NNCFOnnxQuantizer

< >

( config: NNCFQuantizationConfig | NNCFWeightCompressionConfig | None = Nonecalibration_dataset: Iterable[dict[str, Any]] | None = None )

Dönüştürülen ONNX modelini NNCF aracılığıyla ONNX arka ucu üzerinden kuantize edin: nncf.quantize ile NNCFQuantizationConfig (varsayılan, int8 QDQ) veya nncf.compress_weights ile NNCFWeightCompressionConfig (ONNX Runtime'ın MatMulNBits olarak int4).

Örnek:

>>> import nncf
>>> from transformers.exporters import NNCFOnnxQuantizer, NNCFWeightCompressionConfig, OnnxConfig

>>> OnnxConfig(quantizer=NNCFOnnxQuantizer(calibration_dataset=samples))
>>> OnnxConfig(quantizer=NNCFOnnxQuantizer(NNCFWeightCompressionConfig(mode=nncf.CompressWeightsMode.INT4_SYM)))

sınıf transformers.exporters.NNCFTorchFXQuantizer

< >

( config: NNCFQuantizationConfig | NNCFWeightCompressionConfig | None = Nonecalibration_dataset: Iterable[dict[str, Any]] | None = None )

torch.export FX grafiğini, TorchFX arka ucu üzerinden NNCF ile kuantize edin: NNCFQuantizationConfig ile nncf.quantize (varsayılan, quantize/dequantize işlemleri) veya NNCFWeightCompressionConfig ile nncf.compress_weights. PT2EQuantizer gibi, herhangi bir dönüştürmeden önce çalıştığından, tüm arka uçlar sonucunu alır. ExecuTorch yalnızca ağırlık-kuantize edilmiş sonucu düşürür: XNNPACK, quantize/dequantize işlemlerini devretmez ve ExecuTorch için bunlara ait çekirdekler yoktur.

Örnek:

>>> from transformers.exporters import DynamoConfig, NNCFTorchFXQuantizer

>>> DynamoConfig(quantizer=NNCFTorchFXQuantizer(calibration_dataset=samples))

sınıf transformers.exporters.NNCFQuantizationConfig

< >

( mode: Any = Nonepreset: Any = Nonetarget_device: Any = Nonesubset_size: int | None = Nonefast_bias_correction: bool | None = Nonemodel_type: Any = Noneignored_scope: Any = Noneadvanced_parameters: Any = None )

nncf.quantize argümanları: int8 aktivasyonlar ve ağırlıklar, quantizer’ın calibration_dataset üzerinde kalibre edilmiştir. None olarak bırakılan bir alan, model_type hariç olmak üzere NNCF varsayılanını korur; model_type varsayılan olarak nncf.ModelType.TRANSFORMER değerini alır. Her biri için nncf.quantize dokümantasyonuna bakın.

sınıf transformers.exporters.NNCFWeightCompressionConfig

< >

( mode: Any = Noneratio: float | None = Nonegroup_size: int | None = Noneignored_scope: Any = Noneall_layers: bool | None = Nonesensitivity_metric: Any = Nonesubset_size: int | None = Noneawq: bool | None = Nonescale_estimation: bool | None = Nonegptq: bool | None = Nonelora_correction: bool | None = Nonebackup_mode: Any = Nonecompression_format: Any = Noneadvanced_parameters: Any = None )

nncf.compress_weights argümanları: veriye duyarlı yöntemler (AWQ, ölçek tahmini, GPTQ) içeren int4 modları için yalnızca ağırlıklı int8 veya int4. int8 modları verisizdir; diğerleri ise kuantizörün calibration_dataset üzerinde kalibre eder. gptq ve lora_correction yalnızca OpenVINO içindir. None olarak bırakılan bir alan, NNCF varsayılanını korur. Her biri için bkz. nncf.compress_weights.

Yardımcılar

export_for_generation işlevini destekleyen alt düzey işlevler; bir modeli ayrıştırma ile her bileşeni dışa aktarma arasında müdahale etmeniz gerektiğinde kullanışlıdır.

transformers.exporters.utils.get_leaf_tensors

< >

( obj: Any ) → dict[str, torch.Tensor]

Parametreler

  • obj (Any) — Bir tensör, dataclass, dict, list, tuple veya bunların herhangi bir iç içe geçmesi.

Dönüş değeri

dict[str, torch.Tensor]

Noktalı yol dizgilerinden tensörlere düz eşleme.

Olası olarak iç içe geçmiş bir yapıdan tüm yaprak tensörleri özyinelemeli olarak getirir.

transformers.exporters.utils.prepare_for_export

< >

( model: PreTrainedModel | torch.nn.Moduleinputs: MutableMapping[str, Any] )

Dışa aktarma için model ve girdileri yapılandırır. Hem model hem de inputs yerinde değiştirilir ve output_flags, inputs içinden use_cache, return_dict vb. için alınan değerleri tutan (model, inputs, output_flags) döndürülür (izleme sırasında patch_model_config tarafından model.config üzerine geri döndürülebilir şekilde uygulanacak).

  • Etiket girdilerini (labels, future_values) ayıklar — kayıp hesabı desteklenmez.
  • Çıktı bayraklarını (use_cache, return_dict, …) inputs içinden çıkarır, böylece izlenen kwargs olarak görünmezler; değerler, model.config üzerine uygulanması için izleme bloğuna döndürülür.
  • @register_export_input_preparer ile kayıtlı veriye bağımlı görme/ses kwargs'larını önceden hesaplar ve bunları inputs içine yazar.
  • Girdi tensörlerini modelin dtype / device değerleriyle eşleşecek şekilde dönüştürür.

transformers.exporters.utils.decompose_prefill_decode

< >

( model: PreTrainedModelinputs: dict[str, Any]generation_config: Any = Nonemulti_token_decode: bool = False ) → dict[str, tuple[torch.nn.Module, dict]]

Dönüş değeri

dict[str, tuple[torch.nn.Module, dict]]

{"prefill": (model, prefill_inputs), "decode": (model, decode_inputs)}.

model.generate() çalıştırın ve prefill ile decode girdilerini yakalayın.

Tüm üretim mekanizmasını yeniden kullanır; böylece her mimari (yalnızca çözücü, SSM, kodlayıcı-çözücü, çok modlu, …) döngüyü yeniden uygulamaya gerek kalmadan doğru girdileri alır.

generation_config, generate() işlevine iletilir (varsayılan olarak modelin kendi ayarları kullanılır); bu nedenle yakalanan girdiler, generate() işlevinin oluşturacağı önbelleği kullanır. cache_implementation="static" ve max_cache_len=N değerlerini içeren bir yapılandırma iletirseniz, çözümleme girdilerinde statik boyutlu bir önbellek yakalanır; bu, statik önbellek dışa aktarımının temelini oluşturur. max_cache_len, yakalama işleminden bağımsız olarak önbelleğin boyutunu belirler; böylece dışa aktarılan çözümleme, büyüyen bir önbellek yerine sabit bir [..., N, ...] önbelleği alır.

multi_token_decode olduğunda, decode bileşeni çoklu token olarak yakalanır — iki ardışık decode adımı birleştirilir (_merge_decode_calls bkz.) böylece sorgu dizisi ekseni sembolik kalır (tek token'lı bir decode, bu ekseni 1'e özelleştirirdi). Ardından hem tek token'ı (sıradan çözümleme) hem de birçok token'ı (geçmişten devam veya önbellek boşken düz bir prefill) işler. Aksi halde decode, klasik tek token'lı decode'dur.

transformers.exporters.utils.decompose_multimodal

< >

( model: PreTrainedModelinputs: dict[str, Any] ) → dict[str, tuple[torch.nn.Module, dict]]

Dönüş değeri

dict[str, tuple[torch.nn.Module, dict]]

Her algılanan alt modül (görsel/ses kodlayıcı, projeksiyon, dil modeli, lm_head) için bir name: (module, inputs) girdisi.

Yükseltilen

ValueError

  • ValueError — modelde bilinen çok modüllü alt modüller bulunamazsa.

Her çok modlu alt modülün girdilerini tek bir ileri geçişle yakalayın.

Öznitelik adına göre (görüntü kulesi, projeksiyoncu, dil modeli, lm_head, …) bilinen tüm çok modlu alt modülleri algılar ve tek bir model(**inputs) çağrısı sırasında ileri yönlü (forward) anahtar kelime argümanlarını yakalar.

Her alt modül, bağımsız dışa aktarım için ayrı bir name: (module, inputs) girdisi olarak döndürülür. Token birleştirme adımı (ör. çok modlu modeller için masked_scatter), bilinçli olarak dışa aktarılan grafiklerin dışında bırakılır — inputs_embeds'i decoder'ı çalıştırmadan önce kodlayıcı çıktılarından bir araya getirmek çağırıcının sorumluluğundadır.

transformers.exporters.utils.decompose_for_generation

< >

( model: PreTrainedModelinputs: dict[str, Any]generation_config: Any = Nonemulti_token_decode: bool = False ) → `{component_name

Parametreler

  • model — Üretken model. model.generate(**inputs) desteklemelidir.
  • inputs — Generate kwargs — model.generate(**inputs) çağrısına ileteceğiniz parametreler.
  • generation_config — Yakalama sırasında generate() çağrısına iletilen isteğe bağlı GenerationConfig. Statik boyutlu bir önbelleğe karşı dışa aktarmak için cache_implementation="static" + max_cache_len=N içeren bir tane geçin (bkz. decompose_prefill_decode).
  • multi_token_decode — True olduğunda, decode bileşeni çoklu token decode olarak yakalanır (dinamik sorgu dizisi ekseni: birden fazla token aynı anda — geçmişten devam veya önbellek boşken düz prefill); tekli token decode dinamik kalamaz (bkz. decompose_prefill_decode).

Dönüş değeri

`{component_name

(submodel, forward_inputs)}. Keys are “prefill”/“decode”for plain generative models and”_encoder”/“multi_modal_projector”/“language_model”/“lm_head”/“decode”` for multi-modal generative models.

Üretken bir modeli bağımsız olarak dışa aktarılabilir (model, forward_inputs) çiftlerine ayırın.

decompose_prefill_decode çalıştırılarak gerçek bir model.generate(**inputs, max_new_tokens=2) çağrısından prefill ve decode forward kwargs'ları yakalanır. Prefill çok modluysa (is_multimodal göre), decompose_multimodal aracılığıyla her alt modül için (görüntü/ses kodlayıcı, projeksiyon, dil modeli, lm_head) birer giriş olacak şekilde daha da bölünür.

transformers.exporters.utils.is_multimodal

< >

( model: PreTrainedModel | torch.nn.Module )

Model, modal kodlayıcılar ve bir dil modeline sahip çok modluysa True döndürür.

PreTrainedModel olmayan bir model (ör. çıplak bir nn.Module) standart get_encoder/get_decoder erişimcilerine sahip değildir ve açıkça çok modallı değildir, bu nedenle False değerine kısaltılır.

Update on GitHub