Transformers 文件
將 🤗 Transformers 模型匯出至 ONNX
並獲得增強的文件體驗
開始使用
將 🤗 Transformers 模型匯出至 ONNX
🤗 Transformers 提供了一個 transformers.onnx
包,您可以透過利用配置物件將模型檢查點轉換為 ONNX 圖。
更多詳情請參見有關匯出 🤗 Transformers 模型的指南。
ONNX 配置
我們提供了三個抽象類,您應根據希望匯出的模型架構型別繼承這些類
- 基於編碼器的模型繼承自 OnnxConfig
- 基於解碼器的模型繼承自 OnnxConfigWithPast
- 編碼器-解碼器模型繼承自 OnnxSeq2SeqConfigWithPast
OnnxConfig
class transformers.onnx.OnnxConfig
< 來源 >( config: PretrainedConfig task: str = 'default' patching_specs: typing.Optional[list[transformers.onnx.config.PatchingSpec]] = None )
ONNX 可匯出模型的基類,描述瞭如何透過 ONNX 格式匯出模型的元資料。
flatten_output_collection_property
< 來源 >( name: str field: Iterable ) → (dict[str, Any])
將任何潛在的巢狀結構扁平化,透過結構內元素的索引來擴充套件欄位名稱。
from_model_config
< 來源 >( config: PretrainedConfig task: str = 'default' )
為特定模型例項化一個 OnnxConfig
生成虛擬輸入
< 來源 >( preprocessor: typing.Union[ForwardRef('PreTrainedTokenizerBase'), ForwardRef('FeatureExtractionMixin'), ForwardRef('ImageProcessingMixin')] batch_size: int = -1 seq_length: int = -1 num_choices: int = -1 is_pair: bool = False framework: typing.Optional[transformers.utils.generic.TensorType] = None num_channels: int = 3 image_width: int = 40 image_height: int = 40 sampling_rate: int = 22050 time_duration: float = 5.0 frequency: int = 220 tokenizer: typing.Optional[ForwardRef('PreTrainedTokenizerBase')] = None )
引數
- preprocessor — (PreTrainedTokenizerBase, FeatureExtractionMixin 或 ImageProcessingMixin): 與此模型配置關聯的預處理器。
- batch_size (
int
, 可選, 預設為 -1) — 匯出模型的批大小(-1 表示動態軸)。 - num_choices (
int
, 可選, 預設為 -1) — 為多項選擇任務提供的候選答案數量(-1 表示動態軸)。 - seq_length (
int
, 可選, 預設為 -1) — 匯出模型的序列長度(-1 表示動態軸)。 - is_pair (
bool
, 可選, 預設為False
) — 指示輸入是否為文字對(句子 1, 句子 2) - framework (
TensorType
, 可選, 預設為None
) — 分詞器將為其生成張量的框架(PyTorch 或 TensorFlow)。 - num_channels (
int
, 可選, 預設為 3) — 生成影像的通道數。 - image_width (
int
, 可選, 預設為 40) — 生成影像的寬度。 - image_height (
int
, 可選, 預設為 40) — 生成影像的高度。 - sampling_rate (
int
, 可選,預設為 22050) — 用於音訊資料生成的取樣率。 - time_duration (
float
, 可選,預設為 5.0) — 用於音訊資料生成的總取樣秒數。 - frequency (
int
, 可選,預設為 220) — 生成音訊所需的自然頻率。
為特定框架生成提供給 ONNX 匯出器的輸入
generate_dummy_inputs_onnxruntime
< 來源 >( reference_model_inputs: Mapping ) → Mapping[str, Tensor]
使用參考模型輸入為 ONNX Runtime 生成輸入。對於編碼器和解碼器作為獨立 ONNX 檔案匯出的 seq2seq 模型,可以重寫此方法以執行推理。
指示模型是否需要使用外部資料格式的標誌
OnnxConfigWithPast
class transformers.onnx.OnnxConfigWithPast
< 來源 >( config: PretrainedConfig task: str = 'default' patching_specs: typing.Optional[list[transformers.onnx.config.PatchingSpec]] = None use_past: bool = False )
fill_with_past_key_values_
< 來源 >( inputs_or_outputs: Mapping direction: str inverted_values_shape: bool = False )
用 past_key_values 填充 input_or_outputs 對映,並考慮動態軸。
with_past
< 來源 >( config: PretrainedConfig task: str = 'default' )
例項化一個 OnnxConfig,其 `use_past` 屬性設定為 True
OnnxSeq2SeqConfigWithPast
class transformers.onnx.OnnxSeq2SeqConfigWithPast
< 來源 >( config: PretrainedConfig task: str = 'default' patching_specs: typing.Optional[list[transformers.onnx.config.PatchingSpec]] = None use_past: bool = False )
ONNX 特性
每個 ONNX 配置都與一組 *特性* 相關聯,使您能夠為不同型別的拓撲或任務匯出模型。
FeaturesManager
check_supported_model_or_raise
< 來源 >( model: typing.Union[ForwardRef('PreTrainedModel'), ForwardRef('TFPreTrainedModel')] feature: str = 'default' )
檢查模型是否具有請求的特性。
determine_framework
< 來源 >( model: str framework: typing.Optional[str] = None )
確定用於匯出的框架。
優先順序順序如下
- 透過 `framework` 的使用者輸入。
- 如果提供了本地檢查點,則使用與檢查點相同的框架。
- 環境中的可用框架,優先使用 PyTorch
get_config
< 來源 >( model_type: str feature: str ) → OnnxConfig
獲取 model_type 和 feature 組合的 OnnxConfig。
get_model_class_for_feature
< 來源 >( feature: str framework: str = 'pt' )
嘗試從特性名稱中檢索 AutoModel 類。
get_model_from_feature
< 原始碼 >( feature: str model: str framework: typing.Optional[str] = None cache_dir: typing.Optional[str] = None )
嘗試從模型名稱和要啟用的特性中檢索模型。
get_supported_features_for_model_type
< 原始碼 >( model_type: str model_name: typing.Optional[str] = None )
嘗試從模型型別中檢索 特性 -> OnnxConfig 建構函式的對映。