Optimum 文档
模型
并获得增强的文档体验
开始使用
模型
通用模型类
class optimum.intel.openvino.modeling_base.OVBaseModel
< source >( model: Model config: PretrainedConfig = None device: str = 'CPU' 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 )
基础 OVModel 类。
from_pretrained
< source >( model_id: typing.Union[str, pathlib.Path] export: bool = False force_download: bool = False use_auth_token: typing.Union[str, bool, NoneType] = None token: typing.Union[str, bool, NoneType] = None cache_dir: str = '/root/.cache/huggingface/hub' subfolder: str = '' config: typing.Optional[transformers.configuration_utils.PretrainedConfig] = None local_files_only: bool = False trust_remote_code: bool = False revision: 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 允许的任何标识符。
从预训练模型配置实例化预训练模型。
reshape
< source >( batch_size: int sequence_length: int height: int = None width: int = None )
在模型的层上传播给定的输入形状,固定模型的输入形状。
自然语言处理
以下类可用于以下自然语言处理任务。
OVModelForCausalLM
class optimum.intel.OVModelForCausalLM
< source >( model: Model config: PretrainedConfig = None device: str = 'CPU' 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 )
参数
- model (
openvino.runtime.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
。查看超类文档,了解库为其所有模型实现的通用方法(例如下载或保存)
forward
< source >( input_ids: LongTensor attention_mask: typing.Optional[torch.LongTensor] = None past_key_values: typing.Optional[typing.Tuple[typing.Tuple[torch.FloatTensor]]] = None position_ids: typing.Optional[torch.LongTensor] = None token_type_ids: typing.Optional[torch.LongTensor] = None **kwargs )
generate
< source >( inputs: typing.Optional[torch.Tensor] = None generation_config: typing.Optional[transformers.generation.configuration_utils.GenerationConfig] = None logits_processor: typing.Optional[transformers.generation.logits_process.LogitsProcessorList] = None stopping_criteria: typing.Optional[transformers.generation.stopping_criteria.StoppingCriteriaList] = None prefix_allowed_tokens_fn: typing.Optional[typing.Callable[[int, torch.Tensor], typing.List[int]]] = None synced_gpus: typing.Optional[bool] = None assistant_model: typing.Optional[ForwardRef('PreTrainedModel')] = None streamer: typing.Optional[ForwardRef('BaseStreamer')] = None negative_prompt_ids: typing.Optional[torch.Tensor] = None negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None **kwargs )
OVModelForMaskedLM
class optimum.intel.OVModelForMaskedLM
< source >( model = None config = None **kwargs )
参数
- model (
openvino.runtime.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 转换的情况下,这对于避免不必要的编译非常有用。
用于掩码语言建模任务的带有 MaskedLMOutput 的 OpenVINO 模型。
此模型继承自 optimum.intel.openvino.modeling.OVBaseModel
。查看超类文档,了解库为其所有模型实现的通用方法(例如下载或保存)
forward
< source >( input_ids: typing.Union[torch.Tensor, numpy.ndarray] attention_mask: typing.Union[torch.Tensor, numpy.ndarray] token_type_ids: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None **kwargs )
参数
- input_ids (
torch.Tensor
) — 词汇表中输入序列标记的索引。可以使用AutoTokenizer
获取索引。什么是输入 ID? - attention_mask (
torch.Tensor
), 可选) — 用于避免在 padding 标记索引上执行注意力的掩码。在[0, 1]
中选择的掩码值:- 1 表示未掩码的标记,
- 0 表示已掩码的标记。什么是注意力掩码?
- token_type_ids (
torch.Tensor
, 可选) — 用于指示输入的第一部分和第二部分的段标记索引。在[0, 1]
中选择的索引:- 1 表示句子 A 的标记,
- 0 表示句子 B 的标记。什么是标记类型 ID?
OVModelForMaskedLM forward 方法,覆盖了 __call__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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
class optimum.intel.OVModelForSeq2SeqLM
< source >( encoder: Model decoder: Model decoder_with_past: Model = None config: PretrainedConfig = None **kwargs )
参数
- encoder (
openvino.runtime.Model
) — 与编码器关联的 OpenVINO Runtime 模型。 - decoder (
openvino.runtime.Model
) — 与解码器关联的 OpenVINO Runtime 模型。 - decoder_with_past (
openvino.runtime.Model
) — 与具有 past 键值的解码器关联的 OpenVINO Runtime 模型。 - config (
transformers.PretrainedConfig
) — PretrainedConfig 是与模型关联的配置的一个实例。使用配置文件初始化不会加载与模型关联的权重,而只会加载配置。
用于 OpenVINO 推理的、带有语言建模头的序列到序列模型。
forward
< 源代码 >( 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 **kwargs )
参数
- input_ids (
torch.LongTensor
) — 词汇表中输入序列 tokens 的索引,形状为(batch_size, encoder_sequence_length)
。 - attention_mask (
torch.LongTensor
) — 用于避免对 padding token 索引执行 attention 的 Mask,形状为(batch_size, encoder_sequence_length)
。Mask 值在[0, 1]
中选择。 - decoder_input_ids (
torch.LongTensor
) — 词汇表中解码器输入序列 tokens 的索引,形状为(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*)
— 包含用于加速解码的 attention 块的预计算 key 和 value 隐藏状态。该 tuple 的长度为config.n_layers
,其中每个 tuple 具有 2 个形状为(batch_size, num_heads, decoder_sequence_length, embed_size_per_head)
的 tensors 和 2 个额外的形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)
的 tensors。
The OVModelForSeq2SeqLM forward 方法覆盖了 __call__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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
< 源代码 >( model = None config = None **kwargs )
参数
- model (
openvino.runtime.Model
) — 是用于运行 OpenVINO Runtime 推理的主类。 - config (
transformers.PretrainedConfig
) — PretrainedConfig 是模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型关联的权重,而只会加载配置。查看~intel.openvino.modeling.OVBaseModel.from_pretrained
方法以加载模型权重。 - device (
str
, defaults to"CPU"
) — 模型将为其优化的设备类型。结果编译的模型将包含特定于此设备的节点。 - dynamic_shapes (
bool
, defaults toTrue
) — 当设置为 `True` 时,模型的所有维度都将设置为动态。应设置为 `False` 以使模型默认情况下不进行动态 reshape。 - ov_config (
Optional[Dict]
, defaults toNone
) — 包含与模型编译相关信息的字典。 - compile (
bool
, defaults toTrue
) — 当设置为 `False` 时,禁用加载步骤期间的模型编译。在模型需要静态 reshape、设备修改或启用 FP16 转换的情况下,这可能有助于避免不必要的编译。
带有 QuestionAnsweringModelOutput 的 OpenVINO 模型,用于抽取式问答任务。
此模型继承自 optimum.intel.openvino.modeling.OVBaseModel
。查看超类文档,了解库为其所有模型实现的通用方法(例如下载或保存)
forward
< 源代码 >( input_ids: typing.Union[torch.Tensor, numpy.ndarray] attention_mask: typing.Union[torch.Tensor, numpy.ndarray] token_type_ids: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None **kwargs )
参数
- input_ids (
torch.Tensor
) — 词汇表中输入序列 tokens 的索引。可以使用AutoTokenizer
获取索引。什么是输入 IDs? - attention_mask (
torch.Tensor
), optional) — 用于避免对 padding token 索引执行 attention 的 Mask。Mask 值在[0, 1]
中选择:- 1 表示 未被 mask 的 tokens,
- 0 表示 已被 mask 的 tokens。什么是 attention masks?
- token_type_ids (
torch.Tensor
, optional) — 用于指示输入的第一部分和第二部分的 Segment token 索引。索引在[0, 1]
中选择:- 1 表示 句子 A 的 tokens,
- 0 表示 句子 B 的 tokens。什么是 token type IDs?
The OVModelForQuestionAnswering forward 方法覆盖了 __call__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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
< 源代码 >( model = None config = None **kwargs )
参数
- model (
openvino.runtime.Model
) — 是用于运行 OpenVINO Runtime 推理的主类。 - config (
transformers.PretrainedConfig
) — PretrainedConfig 是模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型关联的权重,而只会加载配置。查看~intel.openvino.modeling.OVBaseModel.from_pretrained
方法以加载模型权重。 - device (
str
, defaults to"CPU"
) — 模型将为其优化的设备类型。结果编译的模型将包含特定于此设备的节点。 - dynamic_shapes (
bool
, defaults toTrue
) — 当设置为 `True` 时,模型的所有维度都将设置为动态。应设置为 `False` 以使模型默认情况下不进行动态 reshape。 - ov_config (
Optional[Dict]
, defaults toNone
) — 包含与模型编译相关信息的字典。 - compile (
bool
, defaults toTrue
) — 当设置为False
时,禁用加载步骤中的模型编译。 在需要静态重塑模型、修改设备或启用 FP16 转换的情况下,这可以避免不必要的编译。
用于序列分类任务的 OpenVINO 模型,带有 SequenceClassifierOutput。
此模型继承自 optimum.intel.openvino.modeling.OVBaseModel
。查看超类文档,了解库为其所有模型实现的通用方法(例如下载或保存)
forward
< source >( input_ids: typing.Union[torch.Tensor, numpy.ndarray] attention_mask: typing.Union[torch.Tensor, numpy.ndarray] token_type_ids: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None **kwargs )
参数
- input_ids (
torch.Tensor
) — 词汇表中输入序列 tokens 的索引。 索引可以使用AutoTokenizer
获取。 什么是输入 IDs? - attention_mask (
torch.Tensor
), optional) — 用于避免在 padding token 索引上执行 attention 的掩码。 在[0, 1]
中选择的掩码值:- 1 表示 未被掩码 的 tokens,
- 0 表示 被掩码 的 tokens。 什么是 attention masks?
- token_type_ids (
torch.Tensor
, optional) — 分段 token 索引,用于指示输入的第一个和第二个部分。 索引在[0, 1]
中选择:- 1 表示 句子 A 的 tokens,
- 0 表示 句子 B 的 tokens。 什么是 token type IDs?
OVModelForSequenceClassification forward 方法,覆盖了 __call__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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
< source >( model = None config = None **kwargs )
参数
- model (
openvino.runtime.Model
) — 是用于运行 OpenVINO Runtime 推理的主类。 - config (
transformers.PretrainedConfig
) — PretrainedConfig 是模型配置类,包含模型的所有参数。 使用配置文件初始化不会加载与模型关联的权重,仅加载配置。 查看~intel.openvino.modeling.OVBaseModel.from_pretrained
方法以加载模型权重。 - device (
str
, defaults to"CPU"
) — 模型将为其优化的设备类型。 生成的编译模型将包含特定于此设备的节点。 - dynamic_shapes (
bool
, defaults toTrue
) — 当设置为True
时,模型的所有维度都将设置为动态。 应设置为False
以使模型默认情况下不被动态重塑。 - ov_config (
Optional[Dict]
, defaults toNone
) — 包含与模型编译相关信息的字典。 - compile (
bool
, defaults toTrue
) — 当设置为False
时,禁用加载步骤中的模型编译。 在需要静态重塑模型、修改设备或启用 FP16 转换的情况下,这可以避免不必要的编译。
用于 token 分类任务的 OpenVINO 模型,带有 TokenClassifierOutput。
此模型继承自 optimum.intel.openvino.modeling.OVBaseModel
。查看超类文档,了解库为其所有模型实现的通用方法(例如下载或保存)
forward
< source >( input_ids: typing.Union[torch.Tensor, numpy.ndarray] attention_mask: typing.Union[torch.Tensor, numpy.ndarray] token_type_ids: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None **kwargs )
参数
- input_ids (
torch.Tensor
) — 词汇表中输入序列 tokens 的索引。 索引可以使用AutoTokenizer
获取。 什么是输入 IDs? - attention_mask (
torch.Tensor
), optional) — 用于避免在 padding token 索引上执行 attention 的掩码。 在[0, 1]
中选择的掩码值:- 1 表示 未被掩码 的 tokens,
- 0 表示 被掩码 的 tokens。 什么是 attention masks?
- token_type_ids (
torch.Tensor
, optional) — 分段 token 索引,用于指示输入的第一个和第二个部分。 索引在[0, 1]
中选择:- 1 表示 句子 A 的 tokens,
- 0 表示 句子 B 的 tokens。 什么是 token type IDs?
OVModelForTokenClassification forward 方法,覆盖了 __call__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 Module
实例而不是此函数,因为前者负责处理预处理和后处理步骤,而后者会默默地忽略它们。
使用 transformers.pipelines
进行 token 分类的示例
>>> 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
< source >( model = None config = None **kwargs )
参数
- model (
openvino.runtime.Model
) — 是用于运行 OpenVINO Runtime 推理的主类。 - config (
transformers.PretrainedConfig
) — PretrainedConfig 是模型配置类,包含模型的所有参数。 使用配置文件初始化不会加载与模型关联的权重,仅加载配置。 查看~intel.openvino.modeling.OVBaseModel.from_pretrained
方法以加载模型权重。 - device (
str
, defaults to"CPU"
) — 模型将为其优化的设备类型。 生成的编译模型将包含特定于此设备的节点。 - dynamic_shapes (
bool
, defaults toTrue
) — 当设置为True
时,模型的所有维度都将设置为动态。 应设置为False
以使模型默认情况下不被动态重塑。 - ov_config (
Optional[Dict]
, defaults toNone
) — 包含与模型编译相关信息的字典。 - compile (
bool
, defaults toTrue
) — 当设置为False
时,禁用加载步骤中的模型编译。在需要静态重塑模型、修改设备或启用 FP16 转换的情况下,这对于避免不必要的编译非常有用。
用于音频分类任务的带有 SequenceClassifierOutput 的 OpenVINO 模型。
此模型继承自 optimum.intel.openvino.modeling.OVBaseModel
。查看超类文档,了解库为其所有模型实现的通用方法(例如下载或保存)
forward
< source >( input_values: typing.Union[torch.Tensor, numpy.ndarray] attention_mask: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None **kwargs )
参数
- input_ids (
torch.Tensor
) — 词汇表中输入序列 tokens 的索引。可以使用AutoTokenizer
获取索引。什么是输入 IDs? - attention_mask (
torch.Tensor
), 可选) — 用于避免在 padding token 索引上执行 attention 的掩码。在[0, 1]
中选择掩码值:- 1 表示 未被掩盖 的 token,
- 0 表示 被掩盖 的 token。什么是 attention 掩码?
- token_type_ids (
torch.Tensor
, 可选) — 分段 token 索引,用于指示输入的第一部分和第二部分。在[0, 1]
中选择索引:- 1 表示 句子 A 的 token,
- 0 表示 句子 B 的 token。什么是 token type IDs?
OVModelForAudioClassification 的 forward 方法,覆盖了 __call__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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.runtime.Model
) — 是用于运行 OpenVINO Runtime 推理的主类。 - config (
transformers.PretrainedConfig
) — PretrainedConfig 是模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看~intel.openvino.modeling.OVBaseModel.from_pretrained
方法以加载模型权重。 - device (
str
, defaults to"CPU"
) — 模型将为其优化的设备类型。生成的编译模型将包含特定于此设备的节点。 - dynamic_shapes (
bool
, defaults toTrue
) — 当设置为True
时,模型的所有维度都将设置为动态。应设置为False
以使模型默认情况下不被动态重塑。 - ov_config (
Optional[Dict]
, defaults toNone
) — 包含与模型编译相关信息的字典。 - compile (
bool
, defaults toTrue
) — 当设置为False
时,禁用加载步骤中的模型编译。在需要静态重塑模型、修改设备或启用 FP16 转换的情况下,这对于避免不必要的编译非常有用。
OpenVINO 模型,顶部带有用于诸如说话人分离等任务的帧分类头。
此模型继承自 optimum.intel.openvino.modeling.OVBaseModel
。查看超类文档,了解库为其所有模型实现的通用方法(例如下载或保存)
用于 OpenVINO 的音频帧分类模型。
forward
< 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__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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.runtime.Model
) — 是用于运行 OpenVINO Runtime 推理的主类。 - config (
transformers.PretrainedConfig
) — PretrainedConfig 是模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看~intel.openvino.modeling.OVBaseModel.from_pretrained
方法以加载模型权重。 - device (
str
, defaults to"CPU"
) — 模型将为其优化的设备类型。生成的编译模型将包含特定于此设备的节点。 - dynamic_shapes (
bool
, defaults toTrue
) — 当设置为True
时,模型的所有维度都将设置为动态。应设置为False
以使模型默认情况下不被动态重塑。 - ov_config (
Optional[Dict]
, defaults toNone
) — 包含与模型编译相关信息的字典。 - compile (
bool
, defaults toTrue
) — 当设置为False
时,禁用加载步骤中的模型编译。在需要静态重塑模型、修改设备或启用 FP16 转换的情况下,这对于避免不必要的编译非常有用。
Onnx 模型,顶部带有用于 Connectionist Temporal Classification (CTC) 的语言建模头。
此模型继承自 optimum.intel.openvino.modeling.OVBaseModel
。查看超类文档,了解库为其所有模型实现的通用方法(例如下载或保存)
用于 OpenVINO 的 CTC 模型。
forward
< 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__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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.runtime.Model
) — 是用于运行 OpenVINO Runtime 推理的主要类。 - config (
transformers.PretrainedConfig
) — PretrainedConfig 是模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。请查看~intel.openvino.modeling.OVBaseModel.from_pretrained
方法以加载模型权重。 - device (
str
, defaults to"CPU"
) — 模型将为其优化的设备类型。生成的编译模型将包含特定于此设备的节点。 - dynamic_shapes (
bool
, defaults toTrue
) — 当设置为True
时,模型的所有维度都将设置为动态。如果模型默认情况下不进行动态重塑,则应设置为False
。 - ov_config (
Optional[Dict]
, defaults toNone
) — 包含与模型编译相关信息的字典。 - compile (
bool
, defaults toTrue
) — 当设置为False
时,禁用加载步骤期间的模型编译。在模型需要静态重塑、设备修改或启用 FP16 转换的情况下,这可能有助于避免不必要的编译。
带有 XVector 特征提取头的 Onnx 模型,用于说话人验证等任务。
此模型继承自 optimum.intel.openvino.modeling.OVBaseModel
。查看超类文档,了解库为其所有模型实现的通用方法(例如下载或保存)
用于 OpenVINO 的 Audio XVector 模型。
forward
< source >( input_values: typing.Optional[torch.Tensor] = None attention_mask: typing.Optional[torch.Tensor] = None **kwargs )
参数
- input_values (
torch.Tensor
of shape(batch_size, sequence_length)
) — 原始语音波形的浮点值输入。输入值可以从加载到数组中的音频文件中获得,使用AutoFeatureExtractor
。
OVModelForAudioXVector 的 forward 方法,覆盖了 __call__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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 >( encoder: Model decoder: Model decoder_with_past: Model = None config: PretrainedConfig = None **kwargs )
参数
- encoder (
openvino.runtime.Model
) — 与编码器关联的 OpenVINO Runtime 模型。 - decoder (
openvino.runtime.Model
) — 与解码器关联的 OpenVINO Runtime 模型。 - decoder_with_past (
openvino.runtime.Model
) — 与带有过去键值的解码器关联的 OpenVINO Runtime 模型。 - config (
transformers.PretrainedConfig
) — PretrainedConfig 是与模型关联的配置的实例。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。
用于 OpenVINO 推理的语音序列到序列模型,带有语言建模头。此类正式支持 whisper、speech_to_text。
forward
< 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
) — 形状为(batch_size, encoder_sequence_length, hidden_size)
的编码器last_hidden_state
。 - past_key_values (
tuple(tuple(torch.FloatTensor), *optional*, defaults to
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__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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 >( model = None config = None **kwargs )
参数
- model (
openvino.runtime.Model
) — 是用于运行 OpenVINO Runtime 推理的主要类。 - dynamic_shapes (
bool
, defaults toTrue
) — All the model’s dimension will be set to dynamic when set toTrue
. Should be set toFalse
for the model to not be dynamically reshaped by default. - ov_config (
Optional[Dict]
, defaults toNone
) — The dictionnary containing the informations related to the model compilation. - compile (
bool
, defaults toTrue
) — Disable the model compilation during the loading step when set toFalse
. Can be useful to avoid unnecessary compilation, in the case where the model needs to be statically reshaped, the device modified or if FP16 conversion is enabled.
OpenVINO Model with a ImageClassifierOutput for image classification tasks.
此模型继承自 optimum.intel.openvino.modeling.OVBaseModel
。查看超类文档,了解库为其所有模型实现的通用方法(例如下载或保存)
forward
< source > ( pixel_values: typing.Union[torch.Tensor, numpy.ndarray] **kwargs )
参数
- pixel_values (
torch.Tensor
) — 对应于当前批次中图像的像素值。像素值可以使用AutoFeatureExtractor
从编码图像中获得。
OVModelForImageClassification
前向方法,覆盖了 __call__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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.runtime.Model
) — 与编码器关联的 OpenVINO Runtime 模型。 - decoder (
openvino.runtime.Model
) — 与解码器关联的 OpenVINO Runtime 模型。 - decoder_with_past (
openvino.runtime.Model
) — 与具有过去键值的解码器关联的 OpenVINO Runtime 模型。 - config (
transformers.PretrainedConfig
) — PretrainedConfig 是与模型关联的配置的实例。 使用配置文件初始化不会加载与模型关联的权重,仅加载配置。
用于 OpenVINO 推理的带有语言建模头的 VisionEncoderDecoder 序列到序列模型。
forward
< 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 to
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)
的附加张量。
OVModelForVision2Seq
前向方法,覆盖了 __call__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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 >( encoder: Model decoder: Model decoder_with_past: Model = None config: PretrainedConfig = None **kwargs )
参数
- encoder (
openvino.runtime.Model
) — 与编码器关联的 OpenVINO Runtime 模型。 - decoder (
openvino.runtime.Model
) — 与解码器关联的 OpenVINO Runtime 模型。 - decoder_with_past (
openvino.runtime.Model
) — 与具有过去键值的解码器关联的 OpenVINO Runtime 模型。 - config (
transformers.PretrainedConfig
) — PretrainedConfig 是与模型关联的配置的实例。 使用配置文件初始化不会加载与模型关联的权重,仅加载配置。
用于 OpenVINO 推理的带有语言建模头的 Pix2Struct 模型。
forward
< 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
,可选) — 用于避免对填充标记索引执行注意力的掩码。 - 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
,optional
: hidden_states,optional
: attentions)。形状为(batch_size, sequence_length, hidden_size)
的last_hidden_state
是编码器最后一层输出的隐藏状态序列。在解码器的交叉注意力中使用。 - past_key_values (
tuple(tuple(torch.FloatTensor), *optional*, defaults to
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)
的附加张量。
OVModelForPix2Struct 的 forward 方法,覆盖了 __call__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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.runtime.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__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 Module
实例而不是此函数,因为前者负责处理预处理和后处理步骤,而后者会默默地忽略它们。
自定义任务示例(例如,带有池化器头的句子转换器)
>>> 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
< source >( model = None config = None **kwargs )
参数
- model (
openvino.runtime.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 转换的情况下,这可能有助于避免不必要的编译。
具有 BaseModelOutput 的 OpenVINO 模型,用于特征提取任务。
此模型继承自 optimum.intel.openvino.modeling.OVBaseModel
。查看超类文档,了解库为其所有模型实现的通用方法(例如下载或保存)
forward
< source > ( input_ids: typing.Union[torch.Tensor, numpy.ndarray] attention_mask: typing.Union[torch.Tensor, numpy.ndarray] token_type_ids: typing.Union[torch.Tensor, numpy.ndarray, NoneType] = None **kwargs )
参数
- input_ids (
torch.Tensor
) — 词汇表中输入序列标记的索引。可以使用AutoTokenizer
获取索引。什么是输入 IDs? - attention_mask (
torch.Tensor
), 可选) — 用于避免在填充标记索引上执行注意力的掩码。在[0, 1]
中选择的掩码值:- 1 表示未被掩盖的标记,
- 0 表示被掩盖的标记。什么是注意力掩码?
- token_type_ids (
torch.Tensor
, 可选) — 分段标记索引,用于指示输入的第一部分和第二部分。在[0, 1]
中选择的索引:- 1 表示属于句子 A 的标记,
- 0 表示属于句子 B 的标记。什么是标记类型 IDs?
OVModelForFeatureExtraction 的 forward 方法,覆盖了 __call__
特殊方法。
虽然 forward 传递的配方需要在该函数中定义,但之后应该调用 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 的稳定扩散管线,对应于 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 的稳定扩散管线,对应于 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 的稳定扩散管线,对应于 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。
图像修复
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。