Transformers 4.37 中文文档(八十五)(2)https://developer.aliyun.com/article/1563261
ClvpProcessor
class transformers.ClvpProcessor
( feature_extractor tokenizer )
参数
feature_extractor
(ClvpFeatureExtractor
) — ClvpFeatureExtractor 的一个实例。特征提取器是必需的输入。tokenizer
(ClvpTokenizer
) — ClvpTokenizer 的一个实例。分词器是必需的输入。
构建一个 CLVP 处理器,将 CLVP 特征提取器和 CLVP 分词器封装成一个单一处理器。
ClvpProcessor 提供了 ClvpFeatureExtractor 和 ClvpTokenizer 的所有功能。查看 call()、decode() 和 batch_decode() 获取更多信息。
__call__
( *args **kwargs )
将 audio
和 sampling_rate
参数转发到 call(),将 text
参数转发到 call()。有关更多信息,请参阅上述两种方法的文档字符串。
decode
( *args **kwargs )
此方法将其所有参数转发给 ClvpTokenizer 的 decode()。有关更多信息,请参阅此方法的文档字符串。
batch_decode
( *args **kwargs )
此方法将其所有参数转发给 ClvpTokenizer 的 batch_decode()。有关更多信息,请参阅此方法的文档字符串。
ClvpModelForConditionalGeneration
class transformers.ClvpModelForConditionalGeneration
( config: ClvpConfig )
参数
config
(ClvpConfig)— 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只加载配置。查看 from_pretrained()方法以加载模型权重。
具有文本编码器、语音编码器和语音解码器模型的复合 CLVP 模型。语音解码器模型从文本生成语音 ID,文本编码器和语音编码器一起工作以过滤出最佳的语音 ID。此模型继承自 PreTrainedModel。检查超类文档以获取库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入、修剪头等)。
此模型还是 PyTorch torch.nn.Module子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。
forward
( input_ids: LongTensor = None input_features: FloatTensor = None conditioning_encoder_inputs_embeds: Optional = None text_encoder_inputs_embeds: Optional = None attention_mask: Optional = None return_loss: Optional = None output_hidden_states: Optional = None output_attentions: Optional = False return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.clvp.modeling_clvp.ClvpOutput or tuple(torch.FloatTensor)
参数
input_ids
(形状为(batch_size, sequence_length)
的torch.LongTensor
,可选)— 词汇表中输入序列标记的索引。默认情况下将忽略填充。
可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()。
什么是输入 ID?input_features
(形状为(batch_size, feature_size, time_dim)
的torch.FloatTensor
)— 表示音频返回的 log mel-spectrogram 表示,由 ClvpFeatureExtractor 返回。conditioning_encoder_inputs_embeds
(torch.FloatTensor
,可选)— 用于ClvpConditioningEncoder
的 inputs_embeds。可用于替代input_ids
。text_encoder_inputs_embeds
(torch.FloatTensor
,可选)— 用于文本编码器模型的 inputs_embeds,代替input_ids
。attention_mask
(形状为(batch_size, sequence_length)
的torch.Tensor
,可选)— 避免对填充文本标记索引执行注意力的掩码。选择的掩码值在[0, 1]
中:
- 对于未被“掩码”的标记为 1,
- 对于被“掩码”的标记为 0。
- 什么是注意力掩码?
return_loss
(bool
,可选)— 是否返回对比损失。output_attentions
(bool
,可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
。output_hidden_states
(bool
,可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
。return_dict
(bool
,可选)— 是否返回 ModelOutput 而不是普通元组。
返回
transformers.models.clvp.modeling_clvp.ClvpOutput
或tuple(torch.FloatTensor)
一个transformers.models.clvp.modeling_clvp.ClvpOutput
或一个torch.FloatTensor
元组(如果传递了return_dict=False
或当config.return_dict=False
时),包括根据配置()和输入不同元素。
loss
(torch.FloatTensor
,形状为(1,)
,可选,当return_loss
为True
时返回) — 语音-文本相似性的对比损失。speech_ids
(torch.LongTensor
,可选) — 由ClvpForCausalLM
模型生成的语音 id(或语音候选)。logits_per_speech
(torch.FloatTensor
,形状为(speech_batch_size, text_batch_size)
) —speech_embeds
和text_embeds
之间的缩放点积分数。这代表了语音-文本相似性分数。logits_per_text
(torch.FloatTensor
,形状为(text_batch_size, speech_batch_size)
) —text_embeds
和speech_embeds
之间的缩放点积分数。这代表了文本-语音相似性分数。text_embeds
(torch.FloatTensor
,形状为(batch_size, output_dim
) — 通过将文本编码器模型的汇总输出应用到投影层获得的文本嵌入。speech_embeds
(torch.FloatTensor
,形状为(batch_size, output_dim
) — 通过将语音编码器模型的汇总输出应用到投影层获得的语音嵌入。text_model_output
(BaseModelOutputWithPooling
) — 文本编码器模型的last_hidden_state
的汇总输出。speech_model_output
(BaseModelOutputWithPooling
) — 语音编码器模型的last_hidden_state
的汇总输出。decoder_hidden_states
(torch.FloatTensor
, 可选) — 解码器模型的隐藏状态。text_encoder_hidden_states
(torch.FloatTensor
, 可选) — 文本编码器模型的隐藏状态。speech_encoder_hidden_states
(torch.FloatTensor
, 可选) — 语音编码器模型的隐藏状态。
ClvpModelForConditionalGeneration 的前向方法,覆盖了__call__
特殊方法。
虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module
实例,而不是在此处调用,因为前者会处理运行前后的处理步骤,而后者会默默地忽略它们。
示例:
>>> import datasets >>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration >>> # Define the Text and Load the Audio (We are taking an audio example from HuggingFace Hub using `datasets` library) >>> text = "This is an example text." >>> ds = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation") >>> ds = ds.cast_column("audio", datasets.Audio(sampling_rate=22050)) >>> _, audio, sr = ds.sort("id").select(range(1))[:1]["audio"][0].values() >>> # Define processor and model >>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev") >>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev") >>> # processor outputs and model outputs >>> processor_output = processor(raw_speech=audio, sampling_rate=sr, text=text, return_tensors="pt") >>> outputs = model( ... input_ids=processor_output["input_ids"], ... input_features=processor_output["input_features"], ... return_dict=True, ... )
generate
( input_ids: LongTensor = None input_features: FloatTensor = None attention_mask: Optional = None generation_config: Optional = None pad_to_max_mel_tokens: Optional = None output_hidden_states: Optional = None **kwargs ) → export const metadata = 'undefined';ClvpOutput or tuple
参数
input_ids
(torch.FloatTensor
,形状为(batch_size, sequence_length)
,可选) — 输入文本标记。从 ClvpTokenizer 处理而来。input_features
(torch.FloatTensor
,形状为(batch_size, feature_size, time_dim)
,可选) — 表示音频的 log-melspectrogram 表示,由 ClvpFeatureExtractor 返回。attention_mask
(torch.Tensor
,形状为(batch_size, sequence_length)
,可选) — 用于避免在填充文本标记索引上执行注意力的掩码。掩码值选在[0, 1]
之间:
- 对于未被
masked
的标记为 1。 - 对于被
masked
的标记为 0。
- 什么是注意力掩码?
generation_config
(~generation.GenerationConfig
, optional) — 用作生成调用的基本参数化的生成配置。传递给 generate 的**kwargs
匹配generation_config
的属性将覆盖它们。如果未提供generation_config
,将使用默认值,其加载优先级如下:1)来自generation_config.json
模型文件,如果存在;2)来自模型配置。请注意,未指定的参数将继承 GenerationConfig 的默认值,其文档应该被检查以参数化生成。pad_to_max_mel_tokens
(int
, optional) — 将生成的 speech_ids 填充到指定值。这是为了实现与官方 repo 相同的逻辑,链接:github.com/neonbjb/tortoise-tts/blob/80f89987a5abda5e2b082618cd74f9c7411141dc/tortoise/api.py#L430
并确保对数相同。这不会影响生成质量,因此请不要考虑使用它,因为效率较低。output_hidden_states
(bool
, optional) — 是否返回解码器模型、文本编码器和语音编码器模型的隐藏状态。
返回
ClvpOutput
或 元组
一个ClvpOutput
(如果return_dict_in_generate=True
或当config.return_dict_in_generate=True
时)或一个元组。
ClvpModelForConditionalGeneration
的生成方法,此方法调用ClvpForCausalLM
的generate
方法,然后使用生成的speech_ids
来处理text_embeds
和speech_embeds
,使用ClvpEncoder
。
get_text_features
( input_ids: Optional = None text_encoder_inputs_embeds: Optional = None attention_mask: Optional = None ) → export const metadata = 'undefined';torch.FloatTensor of shape (batch_size, output_dim)
参数
input_ids
(torch.LongTensor
of shape(batch_size, sequence_length)
) — 词汇表中输入序列标记的索引。默认情况下将忽略填充。
什么是输入 ID?text_encoder_inputs_embeds
(torch.FloatTensor
, optional) — 用于文本编码器模型的 inputs_embeds,代替input_ids
。attention_mask
(torch.Tensor
of shape(batch_size, sequence_length)
, optional) — 避免在填充标记索引上执行注意力的掩码。掩码值选择在[0, 1]
之间:
- 1 表示
未被掩码
的标记, - 0 表示
被掩码
的标记。
- 什么是注意力掩码?
返回
torch.FloatTensor
of shape (batch_size, output_dim)
通过将投影层应用于 CLVP 文本模型的池化输出获得的文本嵌入。
此方法可用于从文本中提取 text_embeds。通过将投影层应用于 CLVP 文本编码器模型的池化输出获得的文本嵌入。
示例:
>>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration >>> # Define the Text >>> text = "This is an example text." >>> # Define processor and model >>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev") >>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev") >>> # Generate processor output and text embeds >>> processor_output = processor(text=text, return_tensors="pt") >>> text_embeds = model.get_text_features(input_ids=processor_output["input_ids"])
get_speech_features
( speech_ids: Optional = None input_ids: Optional = None input_features: Optional = None conditioning_encoder_inputs_embeds: Optional = None attention_mask: Optional = None generation_config: Optional = None **kwargs ) → export const metadata = 'undefined';torch.FloatTensor of shape (batch_size, output_dim)
参数
speech_ids
(torch.LongTensor
of shape(batch_size, num_speech_ids)
, optional) — 语音标记。默认情况下将忽略填充。如果提供了 speech_ids,则将自动忽略 input_ids 和 input_features。input_ids
(torch.LongTensor
of shape(batch_size, sequence_length)
, optional) — 输入文本标记。从 ClvpTokenizer 处理。如果未提供 speech_ids,则将使用 input_ids 和 input_features。input_features
(torch.FloatTensor
of shape(batch_size, feature_size, time_dim)
, optional) — 指示音频的 log-melspectrogram 表示,由 ClvpFeatureExtractor 返回。如果未提供 speech_ids,则将使用 input_ids 和 input_features。conditioning_encoder_inputs_embeds
(torch.FloatTensor
,可选)- 用于ClvpConditioningEncoder
的 inputs_embeds。可以代替input_ids
使用。attention_mask
(形状为(batch_size, sequence_length)
的torch.LongTensor
,可选)- 用于避免在填充语音标记索引上执行注意力的掩码。掩码值选在[0, 1]
之间:
- 对于未被
masked
的标记为 1, - 对于被
masked
的标记为 0。
- 什么是注意力掩码?
generation_config
(GenerationConfig
,可选)- 用于控制生成语音 ID 的生成配置,如果它们未提供。
返回
torch.FloatTensor
的形状为(batch_size, output_dim)
通过将投影层应用于 CLVP 语音模型的汇聚输出获得的语音嵌入。
此方法可用于提取语音嵌入。通过将语音模型应用于语音 ID 获得语音嵌入。如果不存在语音 ID,但提供了 input_ids 和 input_features,则解码器模型将首先用于生成语音 ID,然后应用语音模型。
示例:
>>> import datasets >>> from transformers import ClvpProcessor, ClvpModelForConditionalGeneration >>> # Define the Text and Load the Audio (We are taking an audio example from HuggingFace Hub using `datasets` library) >>> text = "This is an example text." >>> ds = datasets.load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation") >>> ds = ds.cast_column("audio", datasets.Audio(sampling_rate=22050)) >>> _, audio, sr = ds.sort("id").select(range(1))[:1]["audio"][0].values() >>> # Define processor and model >>> processor = ClvpProcessor.from_pretrained("susnato/clvp_dev") >>> model = ClvpModelForConditionalGeneration.from_pretrained("susnato/clvp_dev") >>> # Generate processor output and model output >>> processor_output = processor(raw_speech=audio, sampling_rate=sr, text=text, return_tensors="pt") >>> speech_embeds = model.get_speech_features( ... input_ids=processor_output["input_ids"], input_features=processor_output["input_features"] ... )
ClvpForCausalLM
class transformers.ClvpForCausalLM
( config )
参数
config
(ClvpConfig)- 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。
具有语言建模头部的 CLVP 解码器模型。此模型继承自 PreTrainedModel。检查超类文档以获取库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入、修剪头等)。
此模型也是 PyTorch torch.nn.Module子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。
forward
( input_ids: Optional = None past_key_values: Optional = None attention_mask: Optional = None token_type_ids: Optional = None position_ids: Optional = None head_mask: Optional = None inputs_embeds: Optional = None labels: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None )
参数
input_ids
(形状为(batch_size, input_ids_length)
的torch.LongTensor
)- 词汇表中输入序列标记的索引。
可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()。
什么是输入 ID?past_key_values
(长度为config.n_layers
的Tuple[Tuple[torch.Tensor]]
)- 包含由模型计算的预计算隐藏状态(注意力块中的键和值),如下面的past_key_values
输出所示。可用于加速顺序解码。将其过去传递给此模型的input_ids
不应作为input_ids
传递,因为它们已经计算过。attention_mask
(形状为(batch_size, sequence_length)
的torch.FloatTensor
,可选)- 用于避免在填充标记索引上执行注意力的掩码。掩码值选在[0, 1]
之间:
- 对于被
masked
的标记为 1, - 对于被
masked
的标记为 0。
- 如果使用了
past_key_values
,则attention_mask
需要包含用于past_key_values
的掩码策略。换句话说,attention_mask
的长度始终必须为:len(past_key_values) + len(input_ids)
什么是注意力掩码? token_type_ids
(torch.LongTensor
,形状为(batch_size, input_ids_length)
,optional) — 指示输入的第一部分和第二部分的段标记索引。索引选择在[0, 1]
中:
- 0 对应于句子 A标记,
- 1 对应于句子 B标记。
- 什么是标记类型 ID?
position_ids
(torch.LongTensor
,形状为(batch_size, sequence_length)
,optional) — 每个输入序列标记在位置嵌入中的位置索引。在范围[0, config.max_position_embeddings - 1]
中选择。
什么是位置 ID?head_mask
(torch.FloatTensor
,形状为(num_heads,)
或(num_layers, num_heads)
,optional) — 用于使自注意力模块的选定头部失效的掩码。掩码值选择在[0, 1]
中:
- 1 表示头部是
not masked
, - 0 表示头部是
masked
。
inputs_embeds
(torch.FloatTensor
,形状为(batch_size, sequence_length, hidden_size)
,optional) — 可选地,可以直接传递嵌入表示,而不是传递input_ids
。如果您想要更多控制权,以便将input_ids
索引转换为相关向量,而不是模型的内部嵌入查找矩阵。
如果使用past_key_values
,则可选择仅输入最后的inputs_embeds
(参见past_key_values
)。use_cache
(bool
, optional) — 如果设置为True
,则返回past_key_values
键值状态,并可用于加速解码(参见past_key_values
)。output_attentions
(bool
, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。output_hidden_states
(bool
, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。return_dict
(bool
, optional) — 是否返回 ModelOutput 而不是普通元组。labels
(torch.LongTensor
,形状为(batch_size, sequence_length)
,optional) — 用于语言建模的标签。请注意,模型内部的标签已移位,即您可以设置labels = input_ids
。索引在[-100, 0, ..., config.vocab_size]
中选择。所有设置为-100
的标签都被忽略(掩码),损失仅计算标签在[0, ..., config.vocab_size]
中的标签
ClvpForCausalLM 的前向方法,覆盖了__call__
特殊方法。
虽然前向传递的配方需要在此函数内定义,但应该在此之后调用Module
实例,而不是前者,因为前者负责运行前处理和后处理步骤,而后者会默默地忽略它们。
ClvpModel
class transformers.ClvpModel
( config: ClvpDecoderConfig )
参数
config
(ClvpConfig) — 模型的所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。
裸 Clvp 解码器模型输出原始隐藏状态,没有特定的头部。此模型继承自 PreTrainedModel。检查超类文档以了解库为其所有模型实现的通用方法(例如下载或保存、调整输入嵌入、修剪头等)。
此模型也是 PyTorch torch.nn.Module子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。
forward
( input_ids: Optional = None attention_mask: Optional = None token_type_ids: Optional = None position_ids: Optional = None head_mask: Optional = None past_key_values: Optional = None inputs_embeds: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None )
参数
input_ids
(形状为(batch_size, input_ids_length)
的torch.LongTensor
)- 词汇表中输入序列标记的索引。
可以使用 AutoTokenizer 获取索引。有关详细信息,请参见 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()。
什么是输入 ID?past_key_values
(长度为config.n_layers
的Tuple[Tuple[torch.Tensor]]
)- 包含由模型计算的预计算隐藏状态(注意力块中的键和值),可用于加速顺序解码。将其过去的input_ids
不应作为input_ids
传递给此模型,因为它们已经计算过。attention_mask
(形状为(batch_size, sequence_length)
的torch.FloatTensor
,可选)- 用于避免在填充标记索引上执行注意力的掩码。掩码值选择在[0, 1]
中:
- 1 表示未被
屏蔽
的标记, - 0 表示被
屏蔽
的标记。
- 如果使用了
past_key_values
,则attention_mask
需要包含用于past_key_values
的掩码策略。换句话说,attention_mask
的长度始终为:len(past_key_values) + len(input_ids)
什么是注意力掩码? token_type_ids
(形状为(batch_size, input_ids_length)
的torch.LongTensor
,可选)- 段标记索引,指示输入的第一部分和第二部分。索引选择在[0, 1]
中:
- 0 对应于句子 A的标记,
- 1 对应于句子 B的标记。
- 什么是标记类型 ID?
position_ids
(形状为(batch_size, sequence_length)
的torch.LongTensor
,可选)- 每个输入序列标记的位置嵌入的索引。在范围[0, config.max_position_embeddings - 1]
中选择。
什么是位置 ID?head_mask
(形状为(num_heads,)
或(num_layers, num_heads)
的torch.FloatTensor
,可选)- 用于使自注意力模块的选定头部失效的掩码。掩码值选择在[0, 1]
中:
- 1 表示头部是
未屏蔽
, - 0 表示头部是
屏蔽
。
inputs_embeds
(形状为(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
,可选)- 可选择直接传递嵌入表示,而不是传递input_ids
。如果您想要更多控制权来将input_ids
索引转换为相关向量,而不是使用模型的内部嵌入查找矩阵,这将非常有用。
如果使用了past_key_values
,则可选择仅输入最后的inputs_embeds
(参见past_key_values
)。use_cache
(bool
,可选)- 如果设置为True
,则返回past_key_values
键值状态,并可用于加速解码(参见past_key_values
)。output_attentions
(bool
,可选)- 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
。output_hidden_states
(bool
,可选)- 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
。return_dict
(bool
,可选)- 是否返回 ModelOutput 而不是普通元组。
ClvpModel 的前向方法,覆盖了__call__
特殊方法。
尽管前向传递的步骤需要在此函数内定义,但应该在此之后调用Module
实例,而不是在此处调用,因为前者会处理运行前后处理步骤,而后者会默默地忽略它们。
Clvp 编码器
类 transformers.Clvp 编码器
( config: ClvpConfig )
由config.num_hidden_layers
个自注意层组成的 Transformer 编码器。每一层都是一个ClvpEncoderLayer
。
forward
( input_ids: Optional = None inputs_embeds: Optional = None attention_mask: Optional = None position_ids: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None )
参数
input_ids
(形状为(batch_size, input_ids_length)
的torch.LongTensor
,可选)— 词汇表中输入序列标记的索引。
可以使用 AutoTokenizer 获取索引。有关详细信息,请参见 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()。
什么是输入 ID?inputs_embeds
(形状为(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
,可选)— 模型的输入嵌入。这将绕过模型的内部嵌入查找矩阵。attention_mask
(形状为(batch_size, sequence_length)
的torch.LongTensor
,可选)— 避免在填充标记索引上执行注意力的掩码。掩码值选择在[0, 1]
之间:
- 对于
未屏蔽
的标记为 1, - 对于
已屏蔽
的标记为 0。
- 什么是注意力掩码?
position_ids
(torch.LongTensor
,可选)— 表示input_ids
的位置 id。output_attentions
(bool
,可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
。output_hidden_states
(bool
,可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
。return_dict
(bool
,可选)— 是否返回 ModelOutput 而不是普通元组。
Transformers 4.37 中文文档(八十五)(4)https://developer.aliyun.com/article/1563263