Optimum 文件
模型
並獲得增強的文件體驗
開始使用
模型
通用模型類
類 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/。
- 一個字串,即託管在 huggingface.co 模型倉庫中的預訓練模型的模型 ID。有效的模型 ID 可以是根級別的,如
- 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 = 無 )
在模型的層上傳播給定的輸入形狀,修復模型的輸入形狀。
自然語言處理
以下類適用於以下自然語言處理任務。
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]:- 1 表示未掩碼的標記,
- 0 表示已掩碼的標記。什麼是注意力掩碼?
- token_type_ids (
torch.Tensor, 可選) — 分段標記索引,指示輸入的第一個和第二個部分。索引選擇範圍為[0, 1]:- 1 表示句子 A 中的標記,
- 0 表示句子 B 中的標記。什麼是標記型別 ID?
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]:- 1 表示未被掩蓋的標記,
- 0 表示被掩蓋的標記。什麼是注意力掩碼?
- 標記型別 ID (
torch.Tensor, 可選) — 分段標記索引,用於指示輸入的第一個和第二個部分。索引選擇在[0, 1]:- 1 表示句子 A 的標記,
- 0 表示句子 B 的標記。什麼是標記型別 ID?
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]:- 1 表示未被掩蓋的標記,
- 0 表示被掩蓋的標記。什麼是注意力掩碼?
- 標記型別 ID (
torch.Tensor, 可選) — 分段標記索引,用於指示輸入的第一個和第二個部分。索引選擇在[0, 1]:- 1 表示句子 A 的標記,
- 0 表示句子 B 的標記。什麼是標記型別 ID?
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]:- 1 表示未被掩蓋的標記,
- 0 表示被掩蓋的標記。什麼是注意力掩碼?
- 標記型別 ID (
torch.Tensor, 可選) — 分段標記索引,用於指示輸入的第一個和第二個部分。索引選擇在[0, 1]:- 1 表示句子 A 的標記,
- 0 表示句子 B 的標記。什麼是標記型別 ID?
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]:- 1 表示未被掩蓋的標記,
- 0 表示被掩蓋的標記。什麼是注意力掩碼?
- 標記型別 ID (
torch.Tensor, 可選) — 分段標記索引,用於指示輸入的第一個和第二個部分。索引選擇在[0, 1]:- 1 表示句子 A 的標記,
- 0 表示句子 B 的標記。什麼是標記型別 ID?
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
< source >( 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 的音訊幀分類模型。
前進
< source >( 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
< source >( 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 模型。
前進
< source >( 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
< source >( 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 模型。
前進
< source >( 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
< source >( 編碼器: 模型 解碼器: 模型 解碼器_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。
前進
< source >( 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
< source >( 模型 = 無 配置 = 無 **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。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)
前進
< source >( 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)在 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
< source >( 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 推理。
前進
< source >( 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 toNone)— 包含用於加速解碼的預計算注意力塊的鍵和值隱藏狀態。元組的長度為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
< source >( 編碼器: 模型 解碼器: 模型 解碼器_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 模型。
前進
< source >( 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]:- 1 表示未被掩碼的標記,
- 0 表示被掩碼的標記。 什麼是注意力掩碼?
- 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 toNone)— 包含用於加速解碼的預計算注意力塊的鍵和值隱藏狀態。元組的長度為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
< source >( 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。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)
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_outputOVModelForFeatureExtraction
class optimum.intel.OVModelForFeatureExtraction
< source >( 模型 = 無 配置 = 無 **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。請檢視超類文件,瞭解庫為其所有模型實現的通用方法(例如下載或儲存)
前進
< source >( 輸入_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]:- 1 表示未被掩碼的標記,
- 0 表示被掩碼的標記。 什麼是注意力掩碼?
- token_type_ids (
torch.Tensor, 可選) — 分段標記索引,用於指示輸入的第一個和第二個部分。索引選擇在[0, 1]:- 1 表示句子 A 的標記,
- 0 表示句子 B 的標記。 什麼是標記型別 ID?
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
< source >( 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。
OVStableDiffusionXLPipeline
class optimum.intel.OVStableDiffusionXLPipeline
< source >( 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。
OVLatentConsistencyModelPipeline
class optimum.intel.OVLatentConsistencyModelPipeline
< source >( 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。
影像到影像
OVStableDiffusionImg2ImgPipeline
class optimum.intel.OVStableDiffusionImg2ImgPipeline
< source >( 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。
OVStableDiffusionXLImg2ImgPipeline
class optimum.intel.OVStableDiffusionXLImg2ImgPipeline
< source >( 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。
Inpainting
OVStableDiffusionInpaintPipeline
class optimum.intel.OVStableDiffusionInpaintPipeline
< source >( 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。