Transformers documentation

Dışa Aktarıcılar

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üretip register_backend() ile kaydederek 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ı.

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ı.

register_backend

transformers.exporters.register_backend

< >

( exporter: type[HfExporter]runner: type[ModelRunner] | None = None )

Bir dışa aktarıcıyı, config_class'ı ile birlikte, export_format'ı altında ve dışa aktarmalarını çalıştıran runner ile birlikte kaydedin, böylece otomatik sınıflar bunları bulabilsin.

HfExporter

sınıf transformers.exporters.HfExporter

< >

( )

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

Bir backend eklemek için ~HfExporter.export_program yöntemini alt sınıflandırıp tek bir grafiği izlemek için ve ~HfExporter.save_program / ~HfExporter.load_program yöntemlerini yazmak ve geri okumak için uygulayın. Halka açık ~HfExporter.export ve ~HfExporter.export_for_generation yöntemleri, bunların üzerine bir ExportedModel oluşturur.

export

< >

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

Dönüş değeri

ExportedModel

Tek bir "model" bileşeni; arka planın programı .program'dır ve save_pretrained, bu programı, ilgili meta verileri ve model yapılandırmasını yazar.

Modeli tek bir grafik olarak dışa aktarın.

~HfExporter.export_program ile aynı forward kwargs'larını alır.

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 ) → ExportedModel

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

ExportedModel

Aşama başına bir ExportedComponent, anahtarları decompose_for_generation() ile aynı.

Ü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_program ç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.

export_program

< >

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

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.

Dönüş değeri

tuple[Any, ExportMetadata]

Arka planın program nesnesi (ExportedProgram, onnx_ir.Model, ExecutorchProgramManager, openvino.Model) ve izleme sırasında kaydedilen meta veriler (build_export_metadata()), yalnızca bazı formatların bu verileri taşıyabilmesi nedeniyle ayrı olarak döndürülür.

Tek bir grafik izleyin. ~HfExporter.save_program ile eşleştirilen arka uç genişletme noktası.

load_program

< >

( path: str | Path )

~HfExporter.save_program tarafından yazılan bir programı geri okur. ~HfExporter.export_program tarafından döndürülen içerikten farklı olabilir: ExecuTorch için çalışma zamanı Program, bunun ExecutorchProgramManager'ı dosyadan yeniden oluşturulamaz.

program_files

< >

( filename: str )

~HfExporter.save_program tarafından filename olarak kaydedilen bir program için yazılan dosyalar: dosyanın kendisi ve formatın yanında tuttuğu diğer dosyalar (ağırlıklar, harici veriler).

save_program

< >

( program: Anypath: str | Path )

~HfExporter.export_program tarafından döndürülen tek bir programı, arka planın dosya biçiminde path konumuna yazın.

validate_environment

< >

( )

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

ExportedModel

sınıf transformers.exporters.ExportedModel

< >

( components: dict[str, ExportedComponent]export_format: ExportFormat | strconfig: PreTrainedConfig | None = Nonegeneration_config: GenerationConfig | None = None )

Dışa aktarılmış bir model: grafikleri (components, {name: ExportedComponent}) ve bunların izlendiği yapılandırmalar, modelin geldiği modelin çağrılma biçiminde adlandırılır.

~HfExporter.export, programı .program olan tek bir "model" bileşeni üretir; ~HfExporter.export_for_generation ise her üretim aşaması için bir bileşen üretir.

>>> exported = OnnxExporter().export(model, inputs, OnnxConfig(dynamic=True))
>>> exported.save_pretrained("exported")
>>> outputs = ExportedModel.from_pretrained("exported", device="cuda")(**inputs)
>>> outputs.last_hidden_state

__call__

< >

( share_inputs: bool = Trueshare_outputs: bool = False**kwargs )

Tek grafik dışa aktarımı çalıştırır ve kaynak modelin döndürdüğü değeri döndürür. Dışa aktarımın izlenmediği kwargs'lar atılır, bu nedenle bir işleyicinin (processor) tüm çıktısı geçirilebilir. share_inputs ve share_outputs çalıştırıcıya (runner) gider (bkz. ModelRunner.__call__): share_outputs ile çıktılar, sonraki çağrıya kadar geçerlidir.

program

< >

( )

Tek grafik dışa aktarımı için arka planın kendi programı.

'a

< >

( device = None**runner_kwargs )

Programları, device üzerinde (None ise backend varsayılanı) backend çalışma zamanında yükleyin. runner_kwargs, backend çalıştırıcısına gider: ONNX Runtime için providers ve session_options, OpenVINO için config (derleme özellikleri) ve torch_threads (model etrafındaki torch işleri için CPU'yu bölün).

save_pretrained

< >

( save_directory: str | Pathpush_to_hub: bool = False**kwargs )

Parametreler

  • save_directory (str veya Path) — Yazılacak dizin, var değilse oluşturulur.
  • push_to_hub (bool, isteğe bağlı, varsayılan False) — Kaydedilen dosyaların ayrıca Hub'a, repo_id adresine (varsayılan olarak ad alanınızdaki save_directory adı) yüklenip yüklenmeyeceğini belirtir.
  • kwargs (dict[str, Any], isteğe bağlı) — Hub yüklemesine iletilir: repo_id, commit_message, token, private, …

Bileşenleri (her biri ayrı bir dosya olarak), yapılandırmaları ve her bileşenin dosyasını ile izleme sırasında kaydedilen meta verileri adlandıran bir manifest dosyasını yazın. ~ExportedModel.from_pretrained bunları geri yükler.

from_pretrained

< >

( pretrained_model_name_or_path: str | Pathdevice = Nonecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'subfolder: str = ''trust_remote_code: bool = False**runner_kwargs )

Parametreler

  • pretrained_model_name_or_path (str veya Path) — Yerel bir dizin veya Hub depo kimliği. Hub'dan yalnızca manifestte adı geçen dosyalar indirilir, bu sayede bir dışa aktarma, modelin kendi ağırlıklarının yanında durabilir.
  • device (str veya torch.device, isteğe bağlı) — Nerede çalıştırılacağı (None ise arka planın varsayılanı).
  • cache_dir (Union[str, os.PathLike], isteğe bağlı) — Standart önbellek kullanılmayacaksa, indirilen önceden eğitilmiş model yapılandırmasının önbelleğe alınacağı dizinin yolu.
  • force_download (bool, isteğe bağlı, varsayılan False) — Model ağırlıklarının ve yapılandırma dosyalarının (yeniden) indirilmesinin zorlanıp zorlanmayacağını belirler; önbellekteki sürümler varsa bunların üzerine yazar.
  • local_files_only (bool, isteğe bağlı, varsayılan False) — Sadece yerel dosyalara bakılacak mı (yani modelin indirilmeye çalışılmayacağı).
  • token (str veya bool, isteğe bağlı) — Uzak dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton. True ise veya belirtilmezse, hf auth login çalıştırıldığında oluşturulan jeton ( ~/.huggingface içinde saklanır) kullanılır.
  • revision (str, isteğe bağlı, varsayılan olarak "main") — Kullanılacak belirli model sürümü. huggingface.co üzerinde modelleri ve diğer artefaktları depolamak için git tabanlı bir sistem kullandığımız için bir dal adı, etiket adı veya commit kimliği olabilir, bu nedenle revision git tarafından izin verilen herhangi bir tanımlayıcı olabilir.

    Hub'da oluşturduğunuz bir çekme isteğini test etmek için revision="refs/pr/<pr_number>" parametresini iletebilirsiniz.

  • subfolder (str, isteğe bağlı, varsayılan "") — İlgili dosyalar huggingface.co üzerindeki model deposunun bir alt klasöründe konumlanıyorsa, klasör adını burada belirleyebilirsiniz.
  • trust_remote_code (bool, isteğe bağlı, varsayılan False) — Kodu deposunda barındırılan bir modelin yapılandırmasının, from_pretrained() durumunda olduğu gibi yüklenip yüklenmeyeceğini belirtir.
  • runner_kwargs (isteğe bağlı) — Arka planın çalıştırıcı seçenekleri, ~ExportedModel.to için olduğu gibi: ONNX Runtime için providers ve session_options, OpenVINO için config ve torch_threads.

~ExportedModel.save_pretrained'in yazdıklarını yükleyin: her bileşen, kendi metadata'si ve yanlarına kaydedilen yapılandırmalarla birlikte, backend'inin ~HfExporter.load_program metodu üzerinden yüklenir. Programlar, backend'in çalışma zamanında derhal yüklenir ve çalıştırılmaya hazırdır.

ExportedComponent

sınıf transformers.exporters.ExportedComponent

< >

( program: Anymetadata: ExportMetadata )

Dışa aktarılan tek grafik: arka uç programı ve dışa aktarıcının bu program hakkında kaydettiği bilgiler.

ExportMetadata

sınıf transformers.exporters.ExportMetadata

< >

( architecture: str | None = Nonepackages: dict[str, str] = <factory>export_config: dict[str, Any] = <factory>export_dtype: str | None = Noneexport_device: str | None = Nonekwargs: dict[str, dict] = <factory>in_spec: str | None = Noneout_spec: str | None = Nonein_constants: dict[str, Any] = <factory>out_constants: list = <factory> )

Dışa aktarıcının bir grafik hakkında kaydettiği bilgiler (build_export_metadata()).

from_dict

< >

( values: Mapping[str, Any] )

Kaydedilen sözlükten metadata'yı oluşturun, bu sınıfın sahip olmadığı alanları (daha yeni bir sürüm tarafından eklenenler) atlayın.

ModelRunner

sınıf transformers.exporters.ModelRunner

< >

( metadata: ExportMetadata )

Arka uydusunda bir dışa aktarılmış programı çalıştırır: runner(**kwargs), kaynak modelin döndürdüğünü döndürür.

from_program

< >

( program: Anymetadata: ExportMetadatadevice = None )

Bir programın dışa aktarımı olarak bir çalıştırıcı, onu döndürür veya ~HfExporter.load_program onu device üzerinde ( None ise arka planın varsayılanı) geri okur.

unflatten

< >

( outputs: list )

Programın düz çıktılarını (sonuncu olanlar) ve kaydedilen sabitleri kullanarak modelin çıktılarını yeniden oluşturun.

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(**inputs)
>>> exported.save_pretrained("exported")  # `model.pt2`, its metadata and the model config

export

< >

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

Dönüş değeri

ExportedModel

Tek bir "model" bileşeni; arka planın programı .program'dır ve save_pretrained, bu programı, ilgili meta verileri ve model yapılandırmasını yazar.

Modeli tek bir grafik olarak dışa aktarın.

~HfExporter.export_program ile aynı forward kwargs'larını alır.

OnnxExporter

sınıf transformers.exporters.OnnxExporter

< >

( )

Bir PreTrainedModel'i ONNX grafiğine (bir onnx_ir.Model) dönüştüren dışa aktarıcı.

Örnek:

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

>>> exporter = OnnxExporter()
>>> exported = exporter.export(model, inputs, config=OnnxConfig(dynamic=True))
>>> outputs = exported(**inputs)  # on ONNX Runtime
>>> onnx_model = exported.program  # an `onnx_ir.Model`
>>> exported.save_pretrained("exported")  # `model.onnx`, its metadata and the model config

export

< >

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

Dönüş değeri

ExportedModel

Tek bir "model" bileşeni; arka planın programı .program'dır ve save_pretrained, bu programı, ilgili meta verileri ve model yapılandırmasını yazar.

Modeli tek bir grafik olarak dışa aktarın.

~HfExporter.export_program ile aynı forward kwargs'larını alır.

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()
>>> exported = exporter.export(model, inputs, config=ExecutorchConfig(backend="xnnpack"))
>>> outputs = exported(**inputs)  # on the ExecuTorch runtime
>>> exported.save_pretrained("exported")  # `model.pte`, its metadata and the model config

export

< >

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

Dönüş değeri

ExportedModel

Tek bir "model" bileşeni; arka planın programı .program'dır ve save_pretrained, bu programı, ilgili meta verileri ve model yapılandırmasını yazar.

Modeli tek bir grafik olarak dışa aktarın.

~HfExporter.export_program ile aynı forward kwargs'larını alır.

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 = Noneopset_version: int | None = Noneoptimize: bool = Trueort_fusions: Literal['cpu', 'cuda', 'webgpu', 'dml'] | None = None )

Parametreler

  • 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.
  • 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.
  • ort_fusions (str, isteğe bağlı) — Grafiği, çalıştığı execution provider için ONNX Runtime’ın op’larına birleştirir: "cpu", "cuda", "webgpu" veya "dml". Birleştirilmiş grafik yalnızca ONNX Runtime üzerinde çalışır. optimize=True gerektirir.

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 = Nonecompress_to_fp16: bool = Falsestateful: bool = True )

Parametreler

  • compress_to_fp16 (bool, opsiyonel, varsayılan False) — Dönüştürülen modelin float32 ağırlıklarını float16'ya sıkıştırarak boyutunu yarıya indirir. Daha dar aralık nedeniyle varsayılan olarak kapalıdı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.

traced_calibration

< >

( sample_inputs: dict[str, Any] )

FX-graflı kuantizatörler için izlenen kwargs olarak kalibrasyon örnekleri.

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”<modality>_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