Optimum 文件

模型

您正在檢視的是需要從原始碼安裝。如果您想透過 pip 正常安裝,請檢視最新的穩定版本 (v1.27.0)。
Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

模型

通用模型類

optimum.intel.openvino.modeling_base.OVBaseModel

< >

( 模型: 模型 配置: PretrainedConfig = 無 裝置: str = 'CPU' 動態形狀: bool = True ov_配置: typing.Optional[typing.Dict[str, str]] = 無 模型_儲存_目錄: typing.Union[str, pathlib.Path, optimum.intel.openvino.utils.TemporaryDirectory, NoneType] = 無 量化_配置: typing.Union[optimum.intel.openvino.configuration.OVWeightQuantizationConfig, typing.Dict, NoneType] = 無 **kwargs )

基礎 OVModel 類。

從預訓練

< >

( 模型_id: typing.Union[str, pathlib.Path] 匯出: bool = False 強制_下載: bool = False 使用_auth_token: typing.Union[bool, str, NoneType] = None token: typing.Union[bool, str, NoneType] = None 快取_目錄: str = '/root/.cache/huggingface/hub' 子資料夾: str = '' 配置: typing.Optional[transformers.configuration_utils.PretrainedConfig] = None 僅本地檔案: bool = False 信任_遠端_程式碼: bool = False 版本: typing.Optional[str] = None **kwargs )

引數

  • model_id (Union[str, Path]) — 可以是:
    • 一個字串,即託管在 huggingface.co 模型倉庫中的預訓練模型的模型 ID。有效的模型 ID 可以是根級別的,如 bert-base-uncased,也可以是使用者或組織名稱空間下的,如 dbmdz/bert-base-german-cased
    • 一個包含使用 ~OptimizedModel.save_pretrained 儲存的模型目錄的路徑,例如 ./my_model_directory/
  • export (bool, 預設為 False) — 定義提供的 model_id 是否需要匯出為目標格式。
  • force_download (bool, 預設為 True) — 是否強制(重新)下載模型權重和配置檔案,如果存在快取版本則覆蓋。
  • use_auth_token (Optional[Union[bool,str]], 預設為 None) — 已棄用。請改用 token 引數。
  • token (Optional[Union[bool,str]], 預設為 None) — 用作遠端檔案 HTTP bearer 授權的令牌。如果為 True,將使用執行 huggingface-cli login 時生成的令牌(儲存在 huggingface_hub.constants.HF_TOKEN_PATH 中)。
  • cache_dir (Optional[str], 預設為 None) — 如果不應使用標準快取,則為下載的預訓練模型配置應快取的目錄路徑。
  • subfolder (str, 預設為 "") — 如果相關檔案位於模型倉庫的子資料夾中(本地或 huggingface.co 上),您可以在此處指定資料夾名稱。
  • config (Optional[transformers.PretrainedConfig], 預設為 None) — 模型配置。
  • local_files_only (Optional[bool], 預設為 False) — 是否只檢視本地檔案(即不嘗試下載模型)。
  • trust_remote_code (bool, 預設為 False) — 是否允許 Hub 上定義的自定義程式碼進行建模。此選項僅應設定為 True,用於您信任且已閱讀其程式碼的倉庫,因為它將在您的本地機器上執行 Hub 上存在的程式碼。
  • revision (Optional[str], 預設為 None) — 要使用的特定模型版本。它可以是分支名稱、標籤名稱或提交 ID,因為我們使用基於 git 的系統儲存 huggingface.co 上的模型和其他工件,因此 revision 可以是 git 允許的任何識別符號。

從預訓練模型配置例項化預訓練模型。

重塑

< >

( 批次大小: int 序列長度: int 高度: int = 無 寬度: int = 無 )

引數

  • batch_size (int) — 批次大小。
  • sequence_length (int) — 序列長度或通道數。
  • height (int, 可選) — 影像高度。
  • width (int, 可選) — 影像寬度。

在模型的層上傳播給定的輸入形狀,修復模型的輸入形狀。

自然語言處理

以下類適用於以下自然語言處理任務。

OVModelForCausalLM

optimum.intel.OVModelForCausalLM

< >

( 模型: 模型 配置: PretrainedConfig = 無 裝置: str = 'CPU' 動態形狀: bool = 無 ov_配置: typing.Optional[typing.Dict[str, str]] = 無 模型_儲存_目錄: typing.Union[str, pathlib.Path, optimum.intel.openvino.utils.TemporaryDirectory, NoneType] = 無 量化_配置: typing.Union[optimum.intel.openvino.configuration.OVWeightQuantizationConfig, typing.Dict, NoneType] = 無 **kwargs )

引數

  • model (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • config (transformers.PretrainedConfig) — PretrainedConfig 是模型配置類,包含模型的所有引數。用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • device (str, 預設為 "CPU") — 模型將最佳化的裝置型別。生成的編譯模型將包含特定於此裝置的節點。
  • dynamic_shapes (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設為 False 時,模型不會動態重塑。
  • ov_config (Optional[Dict], 預設為 None) — 包含與模型編譯相關資訊的字典。
  • compile (bool, 預設為 True) — 當設定為 False 時,在載入步驟中停用模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這可能有助於避免不必要的編譯。

具有因果語言建模頭(與輸入嵌入繫結的線性層)的 OpenVINO 模型。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

前進

< >

( 輸入_ids: LongTensor 注意_mask: typing.Optional[torch.LongTensor] = 無 過去_key_values: typing.Optional[typing.Tuple[typing.Tuple[torch.FloatTensor]]] = 無 位置_ids: typing.Optional[torch.LongTensor] = 無 token_type_ids: typing.Optional[torch.LongTensor] = 無 **kwargs )

生成

< >

( inputs: typing.Optional[torch.Tensor] = 無 生成_配置: typing.Optional[transformers.generation.configuration_utils.GenerationConfig] = 無 logits_處理器: typing.Optional[transformers.generation.logits_process.LogitsProcessorList] = 無 停止_條件: typing.Optional[transformers.generation.stopping_criteria.StoppingCriteriaList] = 無 字首_允許_tokens_fn: typing.Optional[typing.Callable[[int, torch.Tensor], typing.List[int]]] = 無 同步_gpus: typing.Optional[bool] = 無 助手_模型: typing.Optional[ForwardRef('PreTrainedModel')] = 無 流式傳輸器: typing.Optional[ForwardRef('BaseStreamer')] = 無 負數_提示_ids: typing.Optional[torch.Tensor] = 無 負數_提示_attention_mask: typing.Optional[torch.Tensor] = 無 **kwargs )

OVModelForMaskedLM

optimum.intel.OVModelForMaskedLM

< >

( 模型 = 無 配置 = 無 **kwargs )

引數

  • model (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • config (transformers.PretrainedConfig) — PretrainedConfig 是模型配置類,包含模型的所有引數。用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • device (str, 預設為 "CPU") — 模型將最佳化的裝置型別。生成的編譯模型將包含特定於此裝置的節點。
  • dynamic_shapes (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設為 False 時,模型不會動態重塑。
  • ov_config (Optional[Dict], 預設為 None) — 包含與模型編譯相關資訊的字典。
  • compile (bool, 預設為 True) — 當設定為 False 時,在載入步驟中停用模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這可能有助於避免不必要的編譯。

OpenVINO 模型,帶有 MaskedLMOutput,用於掩碼語言建模任務。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

前進

< >

( 輸入_ids: typing.Union[torch.Tensor, numpy.ndarray] 注意_mask: typing.Union[torch.Tensor, numpy.ndarray] token_type_ids: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = 無 **kwargs )

引數

  • input_ids (torch.Tensor) — 詞彙表中輸入序列標記的索引。可以使用 AutoTokenizer 獲取索引。什麼是輸入 ID?
  • attention_mask (torch.Tensor), 可選) — 用於避免對填充標記索引執行注意力操作的掩碼。掩碼值選擇範圍為 [0, 1]
  • token_type_ids (torch.Tensor, 可選) — 分段標記索引,指示輸入的第一個和第二個部分。索引選擇範圍為 [0, 1]

OVModelForMaskedLM 的前向方法,覆蓋了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

使用 transformers.pipelines 進行掩碼語言建模的示例

>>> from transformers import AutoTokenizer, pipeline
>>> from optimum.intel import OVModelForMaskedLM

>>> tokenizer = AutoTokenizer.from_pretrained("roberta-base")
>>> model = OVModelForMaskedLM.from_pretrained("roberta-base", export=True)
>>> mask_token = tokenizer.mask_token
>>> pipe = pipeline("fill-mask", model=model, tokenizer=tokenizer)
>>> outputs = pipe("The goal of life is" + mask_token)

OVModelForSeq2SeqLM

optimum.intel.OVModelForSeq2SeqLM

< >

( 編碼器: 模型 解碼器: 模型 解碼器_with_past: 模型 = 無 配置: PretrainedConfig = 無 裝置: str = 'CPU' 動態形狀: bool = True ov_配置: typing.Optional[typing.Dict[str, str]] = 無 模型_儲存_目錄: typing.Union[str, pathlib.Path, optimum.intel.openvino.utils.TemporaryDirectory, NoneType] = 無 量化_配置: typing.Union[optimum.intel.openvino.configuration.OVWeightQuantizationConfig, typing.Dict] = 無 **kwargs )

引數

  • encoder (openvino.Model) — 與編碼器關聯的 OpenVINO Runtime 模型。
  • 解碼器 (openvino.Model) — 與解碼器關聯的 OpenVINO Runtime 模型。
  • 帶過去值的解碼器 (openvino.Model) — 與帶過去鍵值的解碼器關聯的 OpenVINO Runtime 模型。
  • 配置 (transformers.PretrainedConfig) — PretrainedConfig 是與模型關聯的配置例項。用配置檔案初始化不會載入與模型關聯的權重,只加載配置。

用於 OpenVINO 推理的帶語言建模頭的序列到序列模型。

前進

< >

( input_ids: LongTensor = None attention_mask: typing.Optional[torch.FloatTensor] = None decoder_input_ids: typing.Optional[torch.LongTensor] = None decoder_attention_mask: typing.Optional[torch.LongTensor] = None encoder_outputs: typing.Optional[typing.Tuple[typing.Tuple[torch.Tensor]]] = None past_key_values: typing.Optional[typing.Tuple[typing.Tuple[torch.Tensor]]] = None cache_position: typing.Optional[torch.LongTensor] = None labels: typing.Optional[torch.LongTensor] = None **kwargs )

引數

  • 輸入 ID (torch.LongTensor) — 詞彙表中輸入序列標記的索引,形狀為 (batch_size, encoder_sequence_length)
  • 注意力掩碼 (torch.LongTensor) — 用於避免對填充標記索引執行注意力的掩碼,形狀為 (batch_size, encoder_sequence_length)。掩碼值選擇在 [0, 1]
  • 解碼器輸入 ID (torch.LongTensor) — 詞彙表中解碼器輸入序列標記的索引,形狀為 (batch_size, decoder_sequence_length)
  • 編碼器輸出 (torch.FloatTensor) — 編碼器 last_hidden_state 的形狀為 (batch_size, encoder_sequence_length, hidden_size)
  • 過去鍵值 (tuple(tuple(torch.FloatTensor), *可選*) — 包含用於加速解碼的注意力塊的預計算鍵和值隱藏狀態。元組的長度為 config.n_layers,每個元組包含兩個形狀為 (batch_size, num_heads, decoder_sequence_length, embed_size_per_head) 的張量和兩個形狀為 (batch_size, num_heads, encoder_sequence_length, embed_size_per_head) 的額外張量。

OVModelForSeq2SeqLM 的 forward 方法,覆蓋了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

文字生成示例

>>> from transformers import AutoTokenizer
>>> from optimum.intel import OVModelForSeq2SeqLM

>>> tokenizer = AutoTokenizer.from_pretrained("echarlaix/t5-small-openvino")
>>> model = OVModelForSeq2SeqLM.from_pretrained("echarlaix/t5-small-openvino")
>>> text = "He never went out without a book under his arm, and he often came back with two."
>>> inputs = tokenizer(text, return_tensors="pt")
>>> gen_tokens = model.generate(**inputs)
>>> outputs = tokenizer.batch_decode(gen_tokens)

使用 transformers.pipeline 的示例

>>> from transformers import AutoTokenizer, pipeline
>>> from optimum.intel import OVModelForSeq2SeqLM

>>> tokenizer = AutoTokenizer.from_pretrained("echarlaix/t5-small-openvino")
>>> model = OVModelForSeq2SeqLM.from_pretrained("echarlaix/t5-small-openvino")
>>> pipe = pipeline("translation_en_to_fr", model=model, tokenizer=tokenizer)
>>> text = "He never went out without a book under his arm, and he often came back with two."
>>> outputs = pipe(text)

OVModelForQuestionAnswering

class optimum.intel.OVModelForQuestionAnswering

< >

( 模型 = 無 配置 = 無 **kwargs )

引數

  • 模型 (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • 配置 (transformers.PretrainedConfig) — PretrainedConfig 是模型配置類,包含模型的所有引數。用配置檔案初始化不會載入與模型關聯的權重,只加載配置。請檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • 裝置 (str, 預設為 "CPU") — 模型將為其最佳化的裝置型別。生成的編譯模型將包含特定於此裝置的節點。
  • 動態形狀 (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設情況下,如果模型不需要動態重塑,則應設定為 False
  • OpenVINO 配置 (Optional[Dict], 預設為 None) — 包含模型編譯相關資訊的字典。
  • 編譯 (bool, 預設為 True) — 當設定為 False 時,在載入步驟中停用模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這對於避免不必要的編譯很有用。

帶 QuestionAnsweringModelOutput 的 OpenVINO 模型,用於抽取式問答任務。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

前進

< >

( 輸入_ids: typing.Union[torch.Tensor, numpy.ndarray] 注意_mask: typing.Union[torch.Tensor, numpy.ndarray] token_type_ids: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = 無 **kwargs )

引數

  • 輸入 ID (torch.Tensor) — 詞彙表中輸入序列標記的索引。可以使用 AutoTokenizer 獲取索引。什麼是輸入 ID?
  • 注意力掩碼 (torch.Tensor, 可選) — 用於避免對填充標記索引執行注意力的掩碼。掩碼值選擇在 [0, 1]
  • 標記型別 ID (torch.Tensor, 可選) — 分段標記索引,用於指示輸入的第一個和第二個部分。索引選擇在 [0, 1]

OVModelForQuestionAnswering 的 forward 方法,覆蓋了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

使用 transformers.pipeline 進行問答的示例

>>> from transformers import AutoTokenizer, pipeline
>>> from optimum.intel import OVModelForQuestionAnswering

>>> tokenizer = AutoTokenizer.from_pretrained("distilbert-base-cased-distilled-squad")
>>> model = OVModelForQuestionAnswering.from_pretrained("distilbert-base-cased-distilled-squad", export=True)
>>> pipe = pipeline("question-answering", model=model, tokenizer=tokenizer)
>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"
>>> outputs = pipe(question, text)

OVModelForSequenceClassification

class optimum.intel.OVModelForSequenceClassification

< >

( 模型 = 無 配置 = 無 **kwargs )

引數

  • 模型 (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • 配置 (transformers.PretrainedConfig) — PretrainedConfig 是模型配置類,包含模型的所有引數。用配置檔案初始化不會載入與模型關聯的權重,只加載配置。請檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • 裝置 (str, 預設為 "CPU") — 模型將為其最佳化的裝置型別。生成的編譯模型將包含特定於此裝置的節點。
  • 動態形狀 (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設情況下,如果模型不需要動態重塑,則應設定為 False
  • OpenVINO 配置 (Optional[Dict], 預設為 None) — 包含模型編譯相關資訊的字典。
  • 編譯 (bool, 預設為 True) — 當設定為 False 時,在載入步驟中停用模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這對於避免不必要的編譯很有用。

帶 SequenceClassifierOutput 的 OpenVINO 模型,用於序列分類任務。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

前進

< >

( 輸入_ids: typing.Union[torch.Tensor, numpy.ndarray] 注意_mask: typing.Union[torch.Tensor, numpy.ndarray] token_type_ids: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = 無 **kwargs )

引數

  • 輸入 ID (torch.Tensor) — 詞彙表中輸入序列標記的索引。可以使用 AutoTokenizer 獲取索引。什麼是輸入 ID?
  • 注意力掩碼 (torch.Tensor, 可選) — 用於避免對填充標記索引執行注意力的掩碼。掩碼值選擇在 [0, 1]
  • 標記型別 ID (torch.Tensor, 可選) — 分段標記索引,用於指示輸入的第一個和第二個部分。索引選擇在 [0, 1]

OVModelForSequenceClassification 的 forward 方法,覆蓋了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

使用 transformers.pipeline 進行序列分類的示例

>>> from transformers import AutoTokenizer, pipeline
>>> from optimum.intel import OVModelForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased-finetuned-sst-2-english")
>>> model = OVModelForSequenceClassification.from_pretrained("distilbert-base-uncased-finetuned-sst-2-english", export=True)
>>> pipe = pipeline("text-classification", model=model, tokenizer=tokenizer)
>>> outputs = pipe("Hello, my dog is cute")

OVModelForTokenClassification

class optimum.intel.OVModelForTokenClassification

< >

( 模型 = 無 配置 = 無 **kwargs )

引數

  • 模型 (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • 配置 (transformers.PretrainedConfig) — PretrainedConfig 是模型配置類,包含模型的所有引數。用配置檔案初始化不會載入與模型關聯的權重,只加載配置。請檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • 裝置 (str, 預設為 "CPU") — 模型將為其最佳化的裝置型別。生成的編譯模型將包含特定於此裝置的節點。
  • 動態形狀 (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設情況下,如果模型不需要動態重塑,則應設定為 False
  • OpenVINO 配置 (Optional[Dict], 預設為 None) — 包含模型編譯相關資訊的字典。
  • 編譯 (bool, 預設為 True) — 當設定為 False 時,在載入步驟中停用模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這對於避免不必要的編譯很有用。

帶 TokenClassifierOutput 的 OpenVINO 模型,用於標記分類任務。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

前進

< >

( 輸入_ids: typing.Union[torch.Tensor, numpy.ndarray] 注意_mask: typing.Union[torch.Tensor, numpy.ndarray] token_type_ids: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = 無 **kwargs )

引數

  • 輸入 ID (torch.Tensor) — 詞彙表中輸入序列標記的索引。可以使用 AutoTokenizer 獲取索引。什麼是輸入 ID?
  • 注意力掩碼 (torch.Tensor, 可選) — 用於避免對填充標記索引執行注意力的掩碼。掩碼值選擇在 [0, 1]
  • 標記型別 ID (torch.Tensor, 可選) — 分段標記索引,用於指示輸入的第一個和第二個部分。索引選擇在 [0, 1]

OVModelForTokenClassification 的 forward 方法,覆蓋了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

使用 transformers.pipelines 進行標記分類的示例

>>> from transformers import AutoTokenizer, pipeline
>>> from optimum.intel import OVModelForTokenClassification

>>> tokenizer = AutoTokenizer.from_pretrained("dslim/bert-base-NER")
>>> model = OVModelForTokenClassification.from_pretrained("dslim/bert-base-NER", export=True)
>>> pipe = pipeline("token-classification", model=model, tokenizer=tokenizer)
>>> outputs = pipe("My Name is Peter and I live in New York.")

音訊

以下是可用於以下音訊任務的類。

OVModelForAudioClassification

class optimum.intel.OVModelForAudioClassification

< >

( 模型 = 無 配置 = 無 **kwargs )

引數

  • 模型 (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • 配置 (transformers.PretrainedConfig) — PretrainedConfig 是模型配置類,包含模型的所有引數。用配置檔案初始化不會載入與模型關聯的權重,只加載配置。請檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • 裝置 (str, 預設為 "CPU") — 模型將為其最佳化的裝置型別。生成的編譯模型將包含特定於此裝置的節點。
  • 動態形狀 (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設情況下,如果模型不需要動態重塑,則應設定為 False
  • OpenVINO 配置 (Optional[Dict], 預設為 None) — 包含模型編譯相關資訊的字典。
  • 編譯 (bool, 預設為 True) — 當設定為 False 時,在載入步驟中停用模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這對於避免不必要的編譯很有用。

帶 SequenceClassifierOutput 的 OpenVINO 模型,用於音訊分類任務。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

前進

< >

( input_values: typing.Union[torch.Tensor, numpy.ndarray] attention_mask: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None **kwargs )

引數

  • 輸入 ID (torch.Tensor) — 詞彙表中輸入序列標記的索引。可以使用 AutoTokenizer 獲取索引。什麼是輸入 ID?
  • 注意力掩碼 (torch.Tensor, 可選) — 用於避免對填充標記索引執行注意力的掩碼。掩碼值選擇在 [0, 1]
  • 標記型別 ID (torch.Tensor, 可選) — 分段標記索引,用於指示輸入的第一個和第二個部分。索引選擇在 [0, 1]

OVModelForAudioClassification 的 forward 方法,覆蓋了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

使用 transformers.pipelines 進行音訊分類的示例

>>> from datasets import load_dataset
>>> from transformers import AutoFeatureExtractor, pipeline
>>> from optimum.intel import OVModelForAudioClassification

>>> preprocessor = AutoFeatureExtractor.from_pretrained("superb/hubert-base-superb-er")
>>> model = OVModelForAudioClassification.from_pretrained("superb/hubert-base-superb-er", export=True)
>>> pipe = pipeline("audio-classification", model=model, feature_extractor=preprocessor)
>>> dataset = load_dataset("superb", "ks", split="test")
>>> audio_file = dataset[3]["audio"]["array"]
>>> outputs = pipe(audio_file)

OVModelForAudioFrameClassification

class optimum.intel.OVModelForAudioFrameClassification

< >

( model: Model config: PretrainedConfig = None **kwargs )

引數

  • model (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • config (transformers.PretrainedConfig) — PretrainedConfig 是包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • device (str, 預設為 "CPU") — 模型將為其最佳化的裝置型別。生成的編譯模型將包含特定於該裝置的節點。
  • dynamic_shapes (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設情況下,如果模型不需要動態重塑,應將其設定為 False
  • ov_config (Optional[Dict], 預設為 None) — 包含模型編譯相關資訊的字典。
  • compile (bool, 預設為 True) — 當設定為 False 時,在載入步驟中停用模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這有助於避免不必要的編譯。

OpenVINO 模型,頂部帶有幀分類頭,用於像說話人日誌化這樣的任務。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

用於 OpenVINO 的音訊幀分類模型。

前進

< >

( input_values: typing.Optional[torch.Tensor] = None attention_mask: typing.Optional[torch.Tensor] = None **kwargs )

引數

  • input_values (torch.Tensor, 形狀為 (batch_size, sequence_length)) — 輸入原始語音波形浮點值。輸入值可以透過使用 AutoFeatureExtractor 將音訊檔案載入到陣列中獲得。

OVModelForAudioFrameClassification 的 forward 方法,重寫了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

音訊幀分類示例

>>> from transformers import AutoFeatureExtractor
>>> from optimum.intel import OVModelForAudioFrameClassification
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("anton-l/wav2vec2-base-superb-sd")
>>> model =  OVModelForAudioFrameClassification.from_pretrained("anton-l/wav2vec2-base-superb-sd", export=True)

>>> inputs = feature_extractor(dataset[0]["audio"]["array"], return_tensors="pt", sampling_rate=sampling_rate)
>>>    logits = model(**inputs).logits

>>> probabilities = torch.sigmoid(torch.as_tensor(logits)[0])
>>> labels = (probabilities > 0.5).long()
>>> labels[0].tolist()

OVModelForCTC

class optimum.intel.OVModelForCTC

< >

( model: Model config: PretrainedConfig = None **kwargs )

引數

  • model (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • config (transformers.PretrainedConfig) — PretrainedConfig 是包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • device (str, 預設為 "CPU") — 模型將為其最佳化的裝置型別。生成的編譯模型將包含特定於該裝置的節點。
  • dynamic_shapes (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設情況下,如果模型不需要動態重塑,應將其設定為 False
  • ov_config (Optional[Dict], 預設為 None) — 包含模型編譯相關資訊的字典。
  • compile (bool, 預設為 True) — 當設定為 False 時,在載入步驟中停用模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這有助於避免不必要的編譯。

帶有頂部語言建模頭用於連線主義時間分類(CTC)的 Onnx 模型。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

用於 OpenVINO 的 CTC 模型。

前進

< >

( input_values: typing.Optional[torch.Tensor] = None attention_mask: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None **kwargs )

引數

  • input_values (torch.Tensor, 形狀為 (batch_size, sequence_length)) — 輸入原始語音波形浮點值。輸入值可以透過使用 AutoFeatureExtractor 將音訊檔案載入到陣列中獲得。

OVModelForCTC 的 forward 方法,重寫了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

CTC 示例

>>> from transformers import AutoFeatureExtractor
>>> from optimum.intel import OVModelForCTC
>>> from datasets import load_dataset

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = AutoFeatureExtractor.from_pretrained("facebook/hubert-large-ls960-ft")
>>> model = OVModelForCTC.from_pretrained("facebook/hubert-large-ls960-ft", export=True)

>>> # audio file is decoded on the fly
>>> inputs = processor(dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="np")
>>> logits = model(**inputs).logits
>>> predicted_ids = np.argmax(logits, axis=-1)

>>> transcription = processor.batch_decode(predicted_ids)

OVModelForAudioXVector

class optimum.intel.OVModelForAudioXVector

< >

( model: Model config: PretrainedConfig = None **kwargs )

引數

  • model (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • config (transformers.PretrainedConfig) — PretrainedConfig 是包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • device (str, 預設為 "CPU") — 模型將為其最佳化的裝置型別。生成的編譯模型將包含特定於該裝置的節點。
  • dynamic_shapes (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設情況下,如果模型不需要動態重塑,應將其設定為 False
  • ov_config (Optional[Dict], 預設為 None) — 包含模型編譯相關資訊的字典。
  • compile (bool, 預設為 True) — 當設定為 False 時,在載入步驟中停用模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這有助於避免不必要的編譯。

帶有 XVector 特徵提取頭用於說話人驗證等任務的 Onnx 模型。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

用於 OpenVINO 的 Audio XVector 模型。

前進

< >

( input_values: typing.Optional[torch.Tensor] = None attention_mask: typing.Optional[torch.Tensor] = None **kwargs )

引數

  • input_values (torch.Tensor, 形狀為 (batch_size, sequence_length)) — 輸入原始語音波形浮點值。輸入值可以透過使用 AutoFeatureExtractor 將音訊檔案載入到陣列中獲得。

OVModelForAudioXVector 的 forward 方法,重寫了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

Audio XVector 示例

>>> from transformers import AutoFeatureExtractor
>>> from optimum.intel import OVModelForAudioXVector
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset("hf-internal-testing/librispeech_asr_demo", "clean", split="validation")
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> feature_extractor = AutoFeatureExtractor.from_pretrained("anton-l/wav2vec2-base-superb-sv")
>>> model = OVModelForAudioXVector.from_pretrained("anton-l/wav2vec2-base-superb-sv", export=True)

>>> # audio file is decoded on the fly
>>> inputs = feature_extractor(
...     [d["array"] for d in dataset[:2]["audio"]], sampling_rate=sampling_rate, return_tensors="pt", padding=True
... )
>>>     embeddings = model(**inputs).embeddings

>>> embeddings = torch.nn.functional.normalize(embeddings, dim=-1).cpu()

>>> cosine_sim = torch.nn.CosineSimilarity(dim=-1)
>>> similarity = cosine_sim(embeddings[0], embeddings[1])
>>> threshold = 0.7
>>> if similarity < threshold:
...     print("Speakers are not the same!")
>>> round(similarity.item(), 2)

OVModelForSpeechSeq2Seq

class optimum.intel.OVModelForSpeechSeq2Seq

< >

( 編碼器: 模型 解碼器: 模型 解碼器_with_past: 模型 = 無 配置: PretrainedConfig = 無 裝置: str = 'CPU' 動態形狀: bool = True ov_配置: typing.Optional[typing.Dict[str, str]] = 無 模型_儲存_目錄: typing.Union[str, pathlib.Path, optimum.intel.openvino.utils.TemporaryDirectory, NoneType] = 無 量化_配置: typing.Union[optimum.intel.openvino.configuration.OVWeightQuantizationConfig, typing.Dict] = 無 **kwargs )

引數

  • encoder (openvino.Model) — 與編碼器關聯的 OpenVINO Runtime 模型。
  • decoder (openvino.Model) — 與解碼器關聯的 OpenVINO Runtime 模型。
  • decoder_with_past (openvino.Model) — 與帶過去鍵值的解碼器關聯的 OpenVINO Runtime 模型。
  • config (transformers.PretrainedConfig) — PretrainedConfig 是與模型關聯的配置例項。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。

帶有語言建模頭的語音序列到序列模型,用於 OpenVINO 推理。該類正式支援 whisper、speech_to_text。

前進

< >

( input_features: typing.Optional[torch.FloatTensor] = None attention_mask: typing.Optional[torch.LongTensor] = None decoder_input_ids: typing.Optional[torch.LongTensor] = None decoder_attention_mask: typing.Optional[torch.BoolTensor] = None encoder_outputs: typing.Optional[typing.Tuple[typing.Tuple[torch.Tensor]]] = None past_key_values: typing.Optional[typing.Tuple[typing.Tuple[torch.Tensor]]] = None cache_position: typing.Optional[torch.LongTensor] = None **kwargs )

引數

  • input_features (torch.FloatTensor) — 從原始語音波形中提取的 Mel 特徵。(batch_size, feature_size, encoder_sequence_length)
  • decoder_input_ids (torch.LongTensor) — 解碼器輸入序列令牌在詞彙表中的索引,形狀為 (batch_size, decoder_sequence_length)
  • encoder_outputs (torch.FloatTensor) — 編碼器的 last_hidden_state,形狀為 (batch_size, encoder_sequence_length, hidden_size)
  • past_key_values (tuple(tuple(torch.FloatTensor), *可選*, 預設為 None) — 包含用於加速解碼的注意力塊的預計算鍵值隱藏狀態。元組的長度為 config.n_layers,每個元組包含 2 個形狀為 (batch_size, num_heads, decoder_sequence_length, embed_size_per_head) 的張量和 2 個額外的形狀為 (batch_size, num_heads, encoder_sequence_length, embed_size_per_head) 的張量。

OVModelForSpeechSeq2Seq 的 forward 方法,重寫了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

文字生成示例

>>> from transformers import AutoProcessor
>>> from optimum.intel import OVModelForSpeechSeq2Seq
>>> from datasets import load_dataset

>>> processor = AutoProcessor.from_pretrained("openai/whisper-tiny")
>>> model = OVModelForSpeechSeq2Seq.from_pretrained("openai/whisper-tiny")

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> inputs = processor.feature_extractor(ds[0]["audio"]["array"], return_tensors="pt")

>>> gen_tokens = model.generate(inputs=inputs.input_features)
>>> outputs = processor.tokenizer.batch_decode(gen_tokens)

使用 transformers.pipeline 的示例

>>> from transformers import AutoProcessor, pipeline
>>> from optimum.intel import OVModelForSpeechSeq2Seq
>>> from datasets import load_dataset

>>> processor = AutoProcessor.from_pretrained("openai/whisper-tiny")
>>> model = OVModelForSpeechSeq2Seq.from_pretrained("openai/whisper-tiny")
>>> speech_recognition = pipeline("automatic-speech-recognition", model=model, tokenizer=processor.tokenizer, feature_extractor=processor.feature_extractor)

>>> ds = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
>>> pred = speech_recognition(ds[0]["audio"]["array"])

計算機視覺

以下類可用於以下計算機視覺任務。

OVModelForImageClassification

class optimum.intel.OVModelForImageClassification

< >

( 模型 = 無 配置 = 無 **kwargs )

引數

  • model (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • config (transformers.PretrainedConfig) — PretrainedConfig 是包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。請檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • device (str, 預設為 "CPU") — 模型將為其最佳化的裝置型別。生成的編譯模型將包含特定於該裝置的節點。
  • dynamic_shapes (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設情況下,如果模型不需要動態重塑,應將其設定為 False
  • ov_config (Optional[Dict], 預設為 None) — 包含模型編譯相關資訊的字典。
  • compile (bool, 預設為 True) — 當設定為 False 時,在載入步驟中停用模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這有助於避免不必要的編譯。

OpenVINO 模型,帶有一個 ImageClassifierOutput 用於影像分類任務。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

前進

< >

( pixel_values: typing.Union[torch.Tensor, numpy.ndarray] **kwargs )

引數

  • pixel_values (torch.Tensor) — 與當前批次中影像對應的畫素值。畫素值可以透過使用 AutoFeatureExtractor 從編碼影像中獲得。

OVModelForImageClassification 的 forward 方法,重寫了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

使用 transformers.pipelines 進行影像分類的示例

>>> from transformers import AutoFeatureExtractor, pipeline
>>> from optimum.intel import OVModelForImageClassification

>>> preprocessor = AutoFeatureExtractor.from_pretrained("google/vit-base-patch16-224")
>>> model = OVModelForImageClassification.from_pretrained("google/vit-base-patch16-224", export=True)
>>> model.reshape(batch_size=1, sequence_length=3, height=224, width=224)
>>> pipe = pipeline("image-classification", model=model, feature_extractor=preprocessor)
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> outputs = pipe(url)
此類也可與 timm

HuggingFaceHub 上託管的模型一起使用。示例:

>>> from transformers import pipeline
>>> from optimum.intel.openvino.modeling_timm import TimmImageProcessor
>>> from optimum.intel import OVModelForImageClassification

>>> model_id = "timm/vit_tiny_patch16_224.augreg_in21k"
>>> preprocessor = TimmImageProcessor.from_pretrained(model_id)
>>> model = OVModelForImageClassification.from_pretrained(model_id, export=True)
>>> pipe = pipeline("image-classification", model=model, feature_extractor=preprocessor)
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> outputs = pipe(url)

多模態

以下類可用於以下多模態任務。

OVModelForVision2Seq

class optimum.intel.OVModelForVision2Seq

< >

( encoder: Model decoder: Model decoder_with_past: Model = None config: PretrainedConfig = None **kwargs )

引數

  • encoder (openvino.Model) — 與編碼器關聯的 OpenVINO Runtime 模型。
  • decoder (openvino.Model) — 與解碼器關聯的 OpenVINO Runtime 模型。
  • decoder_with_past (openvino.Model) — 與帶過去鍵值的解碼器關聯的 OpenVINO Runtime 模型。
  • config (transformers.PretrainedConfig) — PretrainedConfig 是與模型關聯的配置例項。使用配置檔案初始化不會載入與模型相關的權重,只加載配置。

帶有語言建模頭的 VisionEncoderDecoder 序列到序列模型,用於 OpenVINO 推理。

前進

< >

( pixel_values: typing.Optional[torch.FloatTensor] = None attention_mask: typing.Optional[torch.LongTensor] = None decoder_input_ids: typing.Optional[torch.LongTensor] = None decoder_attention_mask: typing.Optional[torch.BoolTensor] = None encoder_outputs: typing.Optional[typing.Tuple[typing.Tuple[torch.Tensor]]] = None past_key_values: typing.Optional[typing.Tuple[typing.Tuple[torch.Tensor]]] = None **kwargs )

引數

  • pixel_values (torch.FloatTensor) — 從影像中提取的特徵。此張量應為形狀 (batch_size, num_channels, height, width)
  • decoder_input_ids (torch.LongTensor) — 詞彙表中解碼器輸入序列標記的索引,形狀為 (batch_size, decoder_sequence_length)
  • encoder_outputs (torch.FloatTensor) — 編碼器 last_hidden_state 的形狀為 (batch_size, encoder_sequence_length, hidden_size)
  • past_key_values (tuple(tuple(torch.FloatTensor), *optional*, defaults to None) — 包含用於加速解碼的預計算注意力塊的鍵和值隱藏狀態。元組的長度為 config.n_layers,每個元組包含兩個形狀為 (batch_size, num_heads, decoder_sequence_length, embed_size_per_head) 的張量和兩個形狀為 (batch_size, num_heads, encoder_sequence_length, embed_size_per_head) 的附加張量。

OVModelForVision2Seq 的 forward 方法重寫了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

文字生成示例

>>> from transformers import AutoProcessor, AutoTokenizer
>>> from optimum.intel import OVModelForVision2Seq
>>> from PIL import Image
>>> import requests


>>> processor = AutoProcessor.from_pretrained("microsoft/trocr-small-handwritten")
>>> tokenizer = AutoTokenizer.from_pretrained("microsoft/trocr-small-handwritten")
>>> model = OVModelForVision2Seq.from_pretrained("microsoft/trocr-small-handwritten", export=True)

>>> url = "https://fki.tic.heia-fr.ch/static/img/a01-122-02-00.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)
>>> inputs = processor(image, return_tensors="pt")

>>> gen_tokens = model.generate(**inputs)
>>> outputs = tokenizer.batch_decode(gen_tokens, skip_special_tokens=True)

使用 transformers.pipeline 的示例

>>> from transformers import AutoProcessor, AutoTokenizer, pipeline
>>> from optimum.intel import OVModelForVision2Seq
>>> from PIL import Image
>>> import requests


>>> processor = AutoProcessor.from_pretrained("microsoft/trocr-small-handwritten")
>>> tokenizer = AutoTokenizer.from_pretrained("microsoft/trocr-small-handwritten")
>>> model = OVModelForVision2Seq.from_pretrained("microsoft/trocr-small-handwritten", export=True)

>>> url = "https://fki.tic.heia-fr.ch/static/img/a01-122-02-00.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)

>>> image_to_text = pipeline("image-to-text", model=model, tokenizer=tokenizer, feature_extractor=processor, image_processor=processor)
>>> pred = image_to_text(image)

OVModelForPix2Struct

class optimum.intel.OVModelForPix2Struct

< >

( 編碼器: 模型 解碼器: 模型 解碼器_with_past: 模型 = 無 配置: PretrainedConfig = 無 裝置: str = 'CPU' 動態形狀: bool = True ov_配置: typing.Optional[typing.Dict[str, str]] = 無 模型_儲存_目錄: typing.Union[str, pathlib.Path, optimum.intel.openvino.utils.TemporaryDirectory, NoneType] = 無 量化_配置: typing.Union[optimum.intel.openvino.configuration.OVWeightQuantizationConfig, typing.Dict] = 無 **kwargs )

引數

  • encoder (openvino.Model) — 與編碼器關聯的 OpenVINO Runtime 模型。
  • decoder (openvino.Model) — 與解碼器關聯的 OpenVINO Runtime 模型。
  • decoder_with_past (openvino.Model) — 與帶過去鍵值的解碼器關聯的 OpenVINO Runtime 模型。
  • config (transformers.PretrainedConfig) — PretrainedConfig 是與模型關聯的配置例項。使用配置檔案初始化不會載入與模型關聯的權重,僅載入配置。

用於 OpenVINO 推理的帶語言建模頭的 Pix2Struct 模型。

前進

< >

( flattened_patches: typing.Optional[torch.FloatTensor] = None attention_mask: typing.Optional[torch.LongTensor] = None decoder_input_ids: typing.Optional[torch.LongTensor] = None decoder_attention_mask: typing.Optional[torch.BoolTensor] = None encoder_outputs: typing.Optional[typing.Tuple[typing.Tuple[torch.Tensor]]] = None past_key_values: typing.Optional[typing.Tuple[typing.Tuple[torch.Tensor]]] = None **kwargs )

引數

  • flattened_patches (形狀為 (batch_size, seq_length, hidden_size)torch.FloatTensor) — 展平的畫素塊。hidden_size 由以下公式獲得:hidden_size = num_channels * patch_size * patch_size 畫素塊的展平過程由 Pix2StructProcessor 完成。
  • attention_mask (形狀為 (batch_size, sequence_length)torch.FloatTensor, 可選) — 避免對填充標記索引執行注意力的掩碼。掩碼值選擇在 [0, 1]
  • decoder_input_ids (形狀為 (batch_size, target_sequence_length)torch.LongTensor, 可選) — 解碼器輸入序列標記在詞彙表中的索引。Pix2StructText 使用 pad_token_id 作為 decoder_input_ids 生成的起始標記。如果使用 past_key_values,可以選擇僅輸入最後的 decoder_input_ids(參見 past_key_values)。
  • decoder_attention_mask (形狀為 (batch_size, target_sequence_length)torch.BoolTensor, 可選) — 預設行為:生成一個忽略 decoder_input_ids 中填充標記的張量。預設情況下也將使用因果掩碼。
  • encoder_outputs (tuple(tuple(torch.FloatTensor), 可選) — 元組包含(last_hidden_state, 可選: hidden_states, 可選: attentions)。形狀為 (batch_size, sequence_length, hidden_size)last_hidden_state 是編碼器最後一層輸出的隱藏狀態序列。用於解碼器的交叉注意力。
  • past_key_values (tuple(tuple(torch.FloatTensor), *optional*, defaults to None) — 包含用於加速解碼的預計算注意力塊的鍵和值隱藏狀態。元組的長度為 config.n_layers,每個元組包含兩個形狀為 (batch_size, num_heads, decoder_sequence_length, embed_size_per_head) 的張量和兩個形狀為 (batch_size, num_heads, encoder_sequence_length, embed_size_per_head) 的附加張量。

OVModelForPix2Struct 的 forward 方法重寫了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

pix2struct 示例

>>> from transformers import AutoProcessor
>>> from optimum.intel import OVModelForPix2Struct
>>> from PIL import Image
>>> import requests

>>> processor = AutoProcessor.from_pretrained("google/pix2struct-ai2d-base")
>>> model = OVModelForPix2Struct.from_pretrained("google/pix2struct-ai2d-base", export=True)

>>> url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/ai2d-demo.jpg"
>>> image = Image.open(requests.get(url, stream=True).raw)
>>> question = "What does the label 15 represent? (1) lava (2) core (3) tunnel (4) ash cloud"
>>> inputs = processor(images=image, text=question, return_tensors="pt")

>>> gen_tokens = model.generate(**inputs)
>>> outputs = processor.batch_decode(gen_tokens, skip_special_tokens=True)

自定義任務

OVModelForCustomTasks

class optimum.intel.OVModelForCustomTasks

< >

( model: Model config: PretrainedConfig = None **kwargs )

引數

  • model (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • config (transformers.PretrainedConfig) — PretrainedConfig 是包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型關聯的權重,僅載入配置。檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • device (str, 預設為 "CPU") — 將為模型最佳化的裝置型別。生成的編譯模型將包含特定於此裝置的節點。
  • dynamic_shapes (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設情況下,如果模型不需要動態重塑,則應將其設定為 False
  • ov_config (Optional[Dict], 預設為 None) — 包含與模型編譯相關資訊的字典。
  • compile (bool, 預設為 True) — 當設定為 False 時,停用載入步驟中的模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這可能有助於避免不必要的編譯。

用於自定義任務的 OpenVINO 模型。它可以用於利用任何單檔案 OpenVINO 模型的推理加速,該模型可能使用自定義輸入和輸出。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

前進

< >

( **kwargs )

OVModelForCustomTasks 的 forward 方法重寫了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

自定義任務示例(例如,帶池化頭的 Sentence Transformer)

>>> from transformers import AutoTokenizer
>>> from optimum.intel import OVModelForCustomTasks

>>> tokenizer = AutoTokenizer.from_pretrained("IlyasMoutawwakil/sbert-all-MiniLM-L6-v2-with-pooler")
>>> model = OVModelForCustomTasks.from_pretrained("IlyasMoutawwakil/sbert-all-MiniLM-L6-v2-with-pooler")

>>> inputs = tokenizer("I love burritos!", return_tensors="np")

>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
>>> pooler_output = outputs.pooler_output

OVModelForFeatureExtraction

class optimum.intel.OVModelForFeatureExtraction

< >

( 模型 = 無 配置 = 無 **kwargs )

引數

  • model (openvino.Model) — 是用於執行 OpenVINO Runtime 推理的主要類。
  • config (transformers.PretrainedConfig) — PretrainedConfig 是包含模型所有引數的模型配置類。使用配置檔案初始化不會載入與模型關聯的權重,僅載入配置。檢視 ~intel.openvino.modeling.OVBaseModel.from_pretrained 方法以載入模型權重。
  • device (str, 預設為 "CPU") — 將為模型最佳化的裝置型別。生成的編譯模型將包含特定於此裝置的節點。
  • dynamic_shapes (bool, 預設為 True) — 當設定為 True 時,模型的所有維度都將設定為動態。預設情況下,如果模型不需要動態重塑,則應將其設定為 False
  • ov_config (Optional[Dict], 預設為 None) — 包含與模型編譯相關資訊的字典。
  • compile (bool, 預設為 True) — 當設定為 False 時,停用載入步驟中的模型編譯。在模型需要靜態重塑、裝置修改或啟用 FP16 轉換的情況下,這可能有助於避免不必要的編譯。

用於特徵提取任務的 OpenVINO 模型,帶有一個 BaseModelOutput。

此模型繼承自 optimum.intel.openvino.modeling.OVBaseModel。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)

前進

< >

( 輸入_ids: typing.Union[torch.Tensor, numpy.ndarray] 注意_mask: typing.Union[torch.Tensor, numpy.ndarray] token_type_ids: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = 無 **kwargs )

引數

  • input_ids (torch.Tensor) — 詞彙表中輸入序列標記的索引。索引可以透過 AutoTokenizer 獲得。什麼是輸入 ID?
  • attention_mask (torch.Tensor), 可選) — 避免對填充標記索引執行注意力的掩碼。掩碼值選擇在 [0, 1]
  • token_type_ids (torch.Tensor, 可選) — 分段標記索引,用於指示輸入的第一個和第二個部分。索引選擇在 [0, 1]

OVModelForFeatureExtraction 的 forward 方法重寫了 __call__ 特殊方法。

雖然前向傳播的配方需要在此函式中定義,但在此之後應呼叫 Module 例項,而不是此函式,因為前者負責執行預處理和後處理步驟,而後者則默默地忽略它們。

使用 transformers.pipelines 進行特徵提取的示例

>>> from transformers import AutoTokenizer, pipeline
>>> from optimum.intel import OVModelForFeatureExtraction

>>> tokenizer = AutoTokenizer.from_pretrained("sentence-transformers/all-MiniLM-L6-v2")
>>> model = OVModelForFeatureExtraction.from_pretrained("sentence-transformers/all-MiniLM-L6-v2", export=True)
>>> pipe = pipeline("feature-extraction", model=model, tokenizer=tokenizer)
>>> outputs = pipe("My Name is Peter and I live in New York.")

文字到影像

OVStableDiffusionPipeline

class optimum.intel.OVStableDiffusionPipeline

< >

( scheduler: SchedulerMixin unet: typing.Optional[openvino._ov_api.Model] = None vae_decoder: typing.Optional[openvino._ov_api.Model] = None vae_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder_2: typing.Optional[openvino._ov_api.Model] = None text_encoder_3: typing.Optional[openvino._ov_api.Model] = None transformer: typing.Optional[openvino._ov_api.Model] = None tokenizer: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_2: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_3: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None feature_extractor: typing.Optional[transformers.models.clip.feature_extraction_clip.CLIPFeatureExtractor] = None force_zeros_for_empty_prompt: bool = True requires_aesthetics_score: bool = False add_watermarker: typing.Optional[bool] = None device: str = 'CPU' compile: bool = True compile_only: bool = False dynamic_shapes: bool = True ov_config: typing.Optional[typing.Dict[str, str]] = None model_save_dir: typing.Union[str, pathlib.Path, optimum.intel.openvino.utils.TemporaryDirectory, NoneType] = None quantization_config: typing.Union[optimum.intel.openvino.configuration.OVWeightQuantizationConfig, typing.Dict, NoneType] = None **kwargs )

OpenVINO 支援的 Stable Diffusion 管線,對應於 diffusers.StableDiffusionPipeline

前進

< >

( *args **kwargs )

OVStableDiffusionXLPipeline

class optimum.intel.OVStableDiffusionXLPipeline

< >

( scheduler: SchedulerMixin unet: typing.Optional[openvino._ov_api.Model] = None vae_decoder: typing.Optional[openvino._ov_api.Model] = None vae_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder_2: typing.Optional[openvino._ov_api.Model] = None text_encoder_3: typing.Optional[openvino._ov_api.Model] = None transformer: typing.Optional[openvino._ov_api.Model] = None tokenizer: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_2: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_3: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None feature_extractor: typing.Optional[transformers.models.clip.feature_extraction_clip.CLIPFeatureExtractor] = None force_zeros_for_empty_prompt: bool = True requires_aesthetics_score: bool = False add_watermarker: typing.Optional[bool] = None device: str = 'CPU' compile: bool = True compile_only: bool = False dynamic_shapes: bool = True ov_config: typing.Optional[typing.Dict[str, str]] = None model_save_dir: typing.Union[str, pathlib.Path, optimum.intel.openvino.utils.TemporaryDirectory, NoneType] = None quantization_config: typing.Union[optimum.intel.openvino.configuration.OVWeightQuantizationConfig, typing.Dict, NoneType] = None **kwargs )

OpenVINO 支援的 Stable Diffusion XL 管線,對應於 diffusers.StableDiffusionXLPipeline

前進

< >

( *args **kwargs )

OVLatentConsistencyModelPipeline

class optimum.intel.OVLatentConsistencyModelPipeline

< >

( scheduler: SchedulerMixin unet: typing.Optional[openvino._ov_api.Model] = None vae_decoder: typing.Optional[openvino._ov_api.Model] = None vae_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder_2: typing.Optional[openvino._ov_api.Model] = None text_encoder_3: typing.Optional[openvino._ov_api.Model] = None transformer: typing.Optional[openvino._ov_api.Model] = None tokenizer: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_2: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_3: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None feature_extractor: typing.Optional[transformers.models.clip.feature_extraction_clip.CLIPFeatureExtractor] = None force_zeros_for_empty_prompt: bool = True requires_aesthetics_score: bool = False add_watermarker: typing.Optional[bool] = None device: str = 'CPU' compile: bool = True compile_only: bool = False dynamic_shapes: bool = True ov_config: typing.Optional[typing.Dict[str, str]] = None model_save_dir: typing.Union[str, pathlib.Path, optimum.intel.openvino.utils.TemporaryDirectory, NoneType] = None quantization_config: typing.Union[optimum.intel.openvino.configuration.OVWeightQuantizationConfig, typing.Dict, NoneType] = None **kwargs )

OpenVINO 支援的 Latent Consistency Model 管線,對應於 diffusers.LatentConsistencyModelPipeline

前進

< >

( *args **kwargs )

影像到影像

OVStableDiffusionImg2ImgPipeline

class optimum.intel.OVStableDiffusionImg2ImgPipeline

< >

( scheduler: SchedulerMixin unet: typing.Optional[openvino._ov_api.Model] = None vae_decoder: typing.Optional[openvino._ov_api.Model] = None vae_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder_2: typing.Optional[openvino._ov_api.Model] = None text_encoder_3: typing.Optional[openvino._ov_api.Model] = None transformer: typing.Optional[openvino._ov_api.Model] = None tokenizer: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_2: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_3: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None feature_extractor: typing.Optional[transformers.models.clip.feature_extraction_clip.CLIPFeatureExtractor] = None force_zeros_for_empty_prompt: bool = True requires_aesthetics_score: bool = False add_watermarker: typing.Optional[bool] = None device: str = 'CPU' compile: bool = True compile_only: bool = False dynamic_shapes: bool = True ov_config: typing.Optional[typing.Dict[str, str]] = None model_save_dir: typing.Union[str, pathlib.Path, optimum.intel.openvino.utils.TemporaryDirectory, NoneType] = None quantization_config: typing.Union[optimum.intel.openvino.configuration.OVWeightQuantizationConfig, typing.Dict, NoneType] = None **kwargs )

OpenVINO 支援的穩定擴散管線,對應 diffusers.StableDiffusionImg2ImgPipeline

前進

< >

( *args **kwargs )

OVStableDiffusionXLImg2ImgPipeline

class optimum.intel.OVStableDiffusionXLImg2ImgPipeline

< >

( scheduler: SchedulerMixin unet: typing.Optional[openvino._ov_api.Model] = None vae_decoder: typing.Optional[openvino._ov_api.Model] = None vae_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder_2: typing.Optional[openvino._ov_api.Model] = None text_encoder_3: typing.Optional[openvino._ov_api.Model] = None transformer: typing.Optional[openvino._ov_api.Model] = None tokenizer: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_2: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_3: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None feature_extractor: typing.Optional[transformers.models.clip.feature_extraction_clip.CLIPFeatureExtractor] = None force_zeros_for_empty_prompt: bool = True requires_aesthetics_score: bool = False add_watermarker: typing.Optional[bool] = None device: str = 'CPU' compile: bool = True compile_only: bool = False dynamic_shapes: bool = True ov_config: typing.Optional[typing.Dict[str, str]] = None model_save_dir: typing.Union[str, pathlib.Path, optimum.intel.openvino.utils.TemporaryDirectory, NoneType] = None quantization_config: typing.Union[optimum.intel.openvino.configuration.OVWeightQuantizationConfig, typing.Dict, NoneType] = None **kwargs )

OpenVINO 支援的穩定擴散管線,對應 diffusers.StableDiffusionXLImg2ImgPipeline

前進

< >

( *args **kwargs )

Inpainting

OVStableDiffusionInpaintPipeline

class optimum.intel.OVStableDiffusionInpaintPipeline

< >

( scheduler: SchedulerMixin unet: typing.Optional[openvino._ov_api.Model] = None vae_decoder: typing.Optional[openvino._ov_api.Model] = None vae_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder: typing.Optional[openvino._ov_api.Model] = None text_encoder_2: typing.Optional[openvino._ov_api.Model] = None text_encoder_3: typing.Optional[openvino._ov_api.Model] = None transformer: typing.Optional[openvino._ov_api.Model] = None tokenizer: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_2: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None tokenizer_3: typing.Optional[transformers.models.clip.tokenization_clip.CLIPTokenizer] = None feature_extractor: typing.Optional[transformers.models.clip.feature_extraction_clip.CLIPFeatureExtractor] = None force_zeros_for_empty_prompt: bool = True requires_aesthetics_score: bool = False add_watermarker: typing.Optional[bool] = None device: str = 'CPU' compile: bool = True compile_only: bool = False dynamic_shapes: bool = True ov_config: typing.Optional[typing.Dict[str, str]] = None model_save_dir: typing.Union[str, pathlib.Path, optimum.intel.openvino.utils.TemporaryDirectory, NoneType] = None quantization_config: typing.Union[optimum.intel.openvino.configuration.OVWeightQuantizationConfig, typing.Dict, NoneType] = None **kwargs )

OpenVINO 支援的穩定擴散管線,對應 diffusers.StableDiffusionInpaintPipeline

前進

< >

( *args **kwargs )

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.