Transformers 4.37 中文文档(七十六)(4)https://developer.aliyun.com/article/1564179
SeamlessM4TTokenizer
class transformers.SeamlessM4TTokenizer
( vocab_file bos_token = '<s>' eos_token = '</s>' sep_token = '</s>' cls_token = '<s>' unk_token = '<unk>' pad_token = '<pad>' tokenizer_file = None src_lang = 'eng' tgt_lang = 'fra' sp_model_kwargs: Optional = None additional_special_tokens = None **kwargs )
参数
vocab_file
(str
) — 词汇文件的路径。bos_token
(str
, optional, defaults to""
) — 在预训练期间使用的序列开头标记。可用作序列分类器标记。
使用特殊标记构建序列时,这不是用于序列开头的标记。所使用的标记是cls_token
。eos_token
(str
, optional, defaults to"
"
) — 序列结束标记。
使用特殊标记构建序列时,这不是用于序列结尾的标记。所使用的标记是sep_token
。sep_token
(str
, optional, defaults to""
) — 分隔符标记,用于从多个序列构建序列,例如,用于序列分类的两个序列或用于文本和问题的问题回答。它也用作使用特殊标记构建的序列的最后一个标记。cls_token
(str
, optional, defaults to""
) — 用于序列分类时使用的分类器标记(对整个序列进行分类,而不是对每个标记进行分类)。当使用特殊标记构建序列时,它是序列的第一个标记。unk_token
(str
, optional, defaults to""
) — 未知标记。词汇表中不存在的标记无法转换为 ID,而是设置为此标记。pad_token
(str
, optional, defaults to""
) — 用于填充的标记,例如在批处理不同长度的序列时。tokenizer_file
(str
, optional) — 要使用的分词器文件的路径,而不是词汇文件。src_lang
(str
, optional, defaults to"eng"
) — 用作翻译源语言的语言。tgt_lang
(str
, optional, defaults to"fra"
) — 用作翻译目标语言的语言。sp_model_kwargs
(Dict[str, Any]
, optional) — 传递给模型初始化的额外关键字参数。additional_special_tokens
(元组或str
或tokenizers.AddedToken
的列表,optional) — 附加特殊标记的元组或列表。可用于指定将由分词器支持的语言列表。
构建一个 SeamlessM4T 分词器。
改编自 RobertaTokenizer 和 XLNetTokenizer。基于SentencePiece。
源语言文档的标记方法为
,目标语言文档的标记方法为
。
示例:
>>> from transformers import SeamlessM4TTokenizer >>> tokenizer = SeamlessM4TTokenizer.from_pretrained( ... "facebook/hf-seamless-m4t-medium", src_lang="eng", tgt_lang="fra" ... ) >>> example_english_phrase = " UN Chief Says There Is No Military Solution in Syria" >>> expected_translation_french = "Le chef de l'ONU affirme qu'il n'y a pas de solution militaire en Syrie." >>> inputs = tokenizer(example_english_phrase, text_target=expected_translation_french, return_tensors="pt")
__call__
( text: Union = None text_pair: Union = None text_target: Union = None text_pair_target: Union = None padding: Union = True pad_to_multiple_of: Optional = 2 src_lang: Optional = None tgt_lang: Optional = None **kwargs )
参数
text
(str
,List[str]
,List[List[str]]
, optional) — 要编码的序列或批次序列。每个序列可以是字符串或字符串列表(预分词字符串)。如果提供的序列是字符串列表(预分词),必须设置is_split_into_words=True
(以消除与批次序列的歧义)。text_pair
(str
,List[str]
,List[List[str]]
, optional) — 要编码的序列或批次序列。每个序列可以是字符串或字符串列表(预分词字符串)。如果提供的序列是字符串列表(预分词),必须设置is_split_into_words=True
(以消除与批次序列的歧义)。text_target
(str
,List[str]
,List[List[str]]
, optional) — 要编码为目标文本的序列或批次序列。每个序列可以是字符串或字符串列表(预分词字符串)。如果提供的序列是字符串列表(预分词),必须设置is_split_into_words=True
(以消除与批次序列的歧义)。text_pair_target
(str
,List[str]
,List[List[str]]
, optional) — 要编码为目标文本的序列或批次。每个序列可以是一个字符串或一个字符串列表(预先标记化的字符串)。如果序列以字符串列表(预先标记化)的形式提供,则必须设置is_split_into_words=True
(以消除与批次序列的歧义)。padding
(bool
,str
或 PaddingStrategy,可选,默认为True
) — 选择一种策略来填充返回的序列(根据模型的填充方向和填充索引):
True
或'longest'
:填充到批次中最长的序列(如果只提供了单个序列,则不填充)。'max_length'
:填充到指定的最大长度(使用参数max_length
)或填充到模型的最大可接受输入长度(如果未提供该参数)。False
或'do_not_pad'
(默认):无填充(即可以输出长度不同的序列批次)。
pad_to_multiple_of
(int
,可选) — 如果设置,将填充序列到提供的值的倍数。
这对于启用 NVIDIA 硬件上的 Tensor Cores 特别有用,其计算能力为>= 7.5
(Volta)。src_lang
(str
,可选) — 表示源语言的字符串。如果未指定,则将使用上次指定的src_lang
(在初始化时或调用此分词器时)。tgt_lang
(str
,可选) — 表示目标语言的字符串。如果未指定,则将使用上次指定的tgt_lang
(在初始化时或调用此分词器时)。kwargs
(可选) — 传递给 PreTrainedTokenizer.call
()的剩余关键字参数字典。
build_inputs_with_special_tokens
( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
) — 将添加特殊标记的 ID 列表。token_ids_1
(List[int]
, 可选) — 序列对的可选第二个 ID 列表。
返回
List[int]
带有适当特殊标记的 input IDs 列表。
通过连接和添加特殊标记从序列或序列对构建用于序列分类任务的模型输入。NLLB 序列具有以下格式,其中X
表示序列:
input_ids
(用于编码器)X [eos, src_lang_code]
decoder_input_ids
:(用于解码器)X [eos, tgt_lang_code]
BOS 从不使用。序列对不是预期的用例,但它们将在没有分隔符的情况下处理。
get_special_tokens_mask
( token_ids_0: List token_ids_1: Optional = None already_has_special_tokens: bool = False ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
) — ID 列表。token_ids_1
(List[int]
, 可选) — 序列对的可选第二个 ID 列表。already_has_special_tokens
(bool
,可选,默认为False
) — 标记列表是否已经为模型格式化了特殊标记。
返回
List[int]
一个整数列表,范围为[0, 1]:1 表示特殊标记,0 表示序列标记。
从没有添加特殊标记的标记列表中检索序列 ID。在使用分词器prepare_for_model
方法添加特殊标记时调用此方法。
create_token_type_ids_from_sequences
( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]
参数
token_ids_0
(List[int]
) — ID 列表。token_ids_1
(List[int]
, 可选) — 序列对的可选第二个 ID 列表。
返回
List[int]
零的列表。
从传递的两个序列创建一个用于序列对分类任务的掩码。nllb 不使用标记类型 ID,因此返回一个零列表。
save_vocabulary
( save_directory: str filename_prefix: Optional = None )
SeamlessM4TTokenizerFast
class transformers.SeamlessM4TTokenizerFast
( vocab_file = None tokenizer_file = None bos_token = '<s>' eos_token = '</s>' sep_token = '</s>' cls_token = '<s>' unk_token = '<unk>' pad_token = '<pad>' src_lang = 'eng' tgt_lang = 'fra' additional_special_tokens = None **kwargs )
参数
vocab_file
(str
, 可选) — 词汇表文件的路径。tokenizer_file
(str
, 可选) — 要使用的分词器文件的路径,而不是词汇表文件。bos_token
(str
, 可选, 默认为""
) — 在预训练期间使用的序列开头标记。可以用作序列分类器标记。
在使用特殊标记构建序列时,这不是用于序列开头的标记。使用的标记是cls_token
。eos_token
(str
, 可选, 默认为"
"
) — 序列结束标记。
在使用特殊标记构建序列时,这不是用于序列结尾的标记。使用的标记是sep_token
。sep_token
(str
, 可选, 默认为"
"
) — 分隔符标记,在从多个序列构建序列时使用,例如用于序列分类的两个序列或用于文本和问题的问题回答。它还用作使用特殊标记构建的序列的最后一个标记。cls_token
(str
, 可选, 默认为""
) — 在进行序列分类(整个序列而不是每个标记的分类)时使用的分类器标记。当使用特殊标记构建序列时,它是序列的第一个标记。unk_token
(str
, 可选, 默认为""
) — 未知标记。词汇表中不存在的标记无法转换为 ID,而是设置为此标记。pad_token
(str
, 可选, 默认为""
) — 用于填充的标记,例如在批处理不同长度的序列时使用。src_lang
(str
, 可选, 默认为"eng"
) — 用作翻译源语言的语言。tgt_lang
(str
, 可选, 默认为"fra"
) — 用作翻译目标语言的语言。additional_special_tokens
(str
或tokenizers.AddedToken
的元组或列表,可选) — 附加特殊标记的元组或列表。
构建一个“快速” SeamlessM4T 分词器(由 HuggingFace 的 tokenizers 库支持)。基于BPE。
此分词器继承自 PreTrainedTokenizerFast,其中包含大多数主要方法。用户应参考此超类以获取有关这些方法的更多信息。
对于源语言文档,标记方法是 <语言代码> <标记>
,对于目标语言文档,标记方法是 <语言代码> <标记>
。
示例:
>>> from transformers import SeamlessM4TTokenizerFast >>> tokenizer = SeamlessM4TTokenizerFast.from_pretrained( ... "facebook/hf-seamless-m4t-medium", src_lang="eng", tgt_lang="fra" ... ) >>> example_english_phrase = " UN Chief Says There Is No Military Solution in Syria" >>> expected_translation_french = "Le chef de l'ONU affirme qu'il n'y a pas de solution militaire en Syrie." >>> inputs = tokenizer(example_english_phrase, text_target=expected_translation_french, return_tensors="pt")
__call__
( text: Union = None text_pair: Union = None text_target: Union = None text_pair_target: Union = None padding: Union = True pad_to_multiple_of: Optional = 2 src_lang: Optional = None tgt_lang: Optional = None **kwargs )
参数
text
(str
,List[str]
,List[List[str]]
, 可选) — 要编码的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果提供的序列是字符串列表(预分词的),必须设置is_split_into_words=True
(以消除与序列批次的歧义)。text_pair
(str
,List[str]
,List[List[str]]
,可选)— 要编码的序列或批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果将序列提供为字符串列表(预分词),则必须设置is_split_into_words=True
(以消除与批次序列的歧义)。text_target
(str
,List[str]
,List[List[str]]
,可选)— 要编码为目标文本的序列或批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果将序列提供为字符串列表(预分词),则必须设置is_split_into_words=True
(以消除与批次序列的歧义)。text_pair_target
(str
,List[str]
,List[List[str]]
,可选)— 要编码为目标文本的序列或批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果将序列提供为字符串列表(预分词),则必须设置is_split_into_words=True
(以消除与批次序列的歧义)。padding
(bool
,str
或 PaddingStrategy,可选,默认为True
)— 选择一种策略来填充返回的序列(根据模型的填充方向和填充索引),包括:
True
或'longest'
:填充到批次中最长的序列(如果只提供单个序列,则不填充)。'max_length'
: 使用参数max_length
指定的最大长度进行填充,或者如果未提供该参数,则填充到模型可接受的最大输入长度。False
或'do_not_pad'
(默认):不填充(即,可以输出具有不同长度序列的批次)。
pad_to_multiple_of
(int
,可选)— 如果设置,将序列填充到提供的值的倍数。
这对于启用 NVIDIA 硬件上的 Tensor Cores 特别有用,其计算能力为>= 7.5
(Volta)。src_lang
(str
,可选)— 表示源语言的字符串。如果未指定,则将使用上次指定的src_lang
(在初始化期间或在调用此分词器时)。tgt_lang
(str
,可选)— 表示目标语言的字符串。如果未指定,则将使用上次指定的tgt_lang
(在初始化期间或在调用此分词器时)。kwargs
(可选)— 将传递给 PreTrainedTokenizerFast.call
()的剩余关键字参数字典。
SeamlessM4TFeatureExtractor
class transformers.SeamlessM4TFeatureExtractor
( feature_size = 80 sampling_rate = 16000 num_mel_bins = 80 padding_value = 0.0 stride = 2 **kwargs )
参数
feature_size
(int
,可选,默认为 80)— 提取特征的特征维度。sampling_rate
(int
,可选,默认为 16000)— 应数字化音频文件的采样率,以赫兹(Hz)表示。num_mel_bins
(int
,可选,默认为 80)— Mel 频率箱数。padding_value
(float
,可选,默认为 0.0)— 用于填充向量的值。stride
(int
,可选,默认为 2)— 用于将音频从形状(batch_size,num_frames,num_mel_bins)重塑为(batch_size,num_frames//stride,num_mel_bins*stride)的步幅。
构建一个 SeamlessM4T 特征提取器。
此特征提取器继承自 SequenceFeatureExtractor,其中包含大多数主要方法。用户应参考此超类以获取有关这些方法的更多信息。
该类从原始语音中提取 mel 滤波器组特征。
__call__
( raw_speech: Union padding: Union = True pad_to_multiple_of: Optional = 2 max_length: Optional = None truncation: bool = False return_tensors: Union = None sampling_rate: Optional = None return_attention_mask: Optional = None do_normalize_per_mel_bins: Optional = True **kwargs )
参数
raw_speech
(np.ndarray
,torch.Tensor
,List[float]
,List[np.ndarray]
,List[torch.Tensor]
, —List[List[float]],
List[List[List[float]]]
) — 要填充的序列或序列批次。每个序列可以是一个 numpy 数组、一个 torch 张量、一个浮点值列表、一个 numpy 数组列表、一个 torch 张量列表、一个浮点值列表的列表或一个浮点值列表的列表的列表。如果raw_speech
是一维的np.ndarray
、torch.Tensor
或List[float]
,则将raw_speech
视为单声道、单样本声音。在所有其他情况下,无论是来自np.ndarray
、torch.Tensor
还是List[...]
的第一个维度,都对应于批次中的样本数,通道数(即单声道或立体声特征)从其他维度中派生(1D -> 单声道波形批次;2D -> 立体声波形批次)。padding
(bool
,str
或 PaddingStrategy, optional, 默认为True
) — 选择一种策略来填充返回的序列(根据模型的填充方向和填充索引):
True
或'longest'
: 填充到批次中最长的序列(如果只提供了单个序列,则不进行填充)。'max_length'
: 使用参数max_length
指定的最大长度进行填充,或者如果未提供该参数,则填充到模型可接受的最大输入长度。False
或'do_not_pad'
(默认):无填充(即,可以输出长度不同的序列批次)。
pad_to_multiple_of
(int
, optional, 默认为 2) — 如果设置,将序列填充到提供的值的倍数。
这对于启用 NVIDIA 硬件上的 Tensor Cores 特别有用,其计算能力>= 7.5
(Volta),或者对于受益于序列长度为 128 的倍数的 TPU。max_length
(int
, optional) — 返回列表的最大长度和可选填充长度(见上文)。truncation
(bool
) — 激活截断,将输入序列截断为长于 max_length 的部分至 max_length。return_attention_mask
(bool
, optional) — 是否返回注意力掩码。如果保持默认设置,将根据特定 feature_extractor 的默认设置返回注意力掩码。
什么是注意力掩码?
对于 SeamlessM4T 模型,在批量推理时应始终传递attention_mask
,以避免细微错误。return_tensors
(str
或 TensorType, optional) — 如果设置,将返回张量而不是 Python 整数列表。可接受的值为:
'tf'
: 返回 TensorFlowtf.constant
对象。'pt'
: 返回 PyTorchtorch.Tensor
对象。'np'
: 返回 Numpynp.ndarray
对象。
sampling_rate
(int
, optional) —raw_speech
输入的采样率。强烈建议在前向调用时传递sampling_rate
,以防止潜在错误。do_normalize_per_mel_bins
(bool
, optional, 默认为True
) — 是否对每个 mel 通道的输入进行零均值单位方差归一化。kwargs
(optional) — 将传递给分词器或特征提取器的剩余关键字参数字典。
对一个或多个序列进行特征化和准备模型的主要方法。
SeamlessM4TProcessor
class transformers.SeamlessM4TProcessor
( feature_extractor tokenizer )
参数
feature_extractor
(SeamlessM4TFeatureExtractor) — 音频处理器是必需的输入。tokenizer
(SeamlessM4TTokenizerFast) — 必需的输入是 tokenizer。
构建一个 SeamlessM4T 处理器,将 SeamlessM4T 特征提取器和 SeamlessM4T tokenizer 封装成一个单一处理器。
SeamlessM4TProcessor 提供了 SeamlessM4TFeatureExtractor 和 SeamlessM4TTokenizerFast 的所有功能。查看call()和decode()
获取更多信息。
__call__
( text = None audios = None src_lang = None tgt_lang = None **kwargs ) → export const metadata = 'undefined';BatchEncoding
参数
text
(str
,List[str]
,List[List[str]]
) — 要编码的序列或序列批次。每个序列可以是字符串或字符串列表(预分词字符串)。如果将序列提供为字符串列表(预分词),必须设置is_split_into_words=True
(以消除与序列批次的歧义)。audios
(np.ndarray
,torch.Tensor
,List[np.ndarray]
,List[torch.Tensor]
) — 要准备的音频或音频批次。每个音频可以是 NumPy 数组或 PyTorch 张量。对于 NumPy 数组/PyTorch 张量,每个音频的形状应为(C, T),其中 C 是通道数,T 是音频的采样长度。src_lang
(str
, 可选) — 输入文本/音频的语言代码。如果未指定,将使用最后指定的src_lang
。tgt_lang
(str
, 可选) — 目标语言的代码。如果未指定,将使用最后指定的tgt_lang
。kwargs
(可选) — 将传递给特征提取器和/或 tokenizer 的剩余关键字参数字典。
返回
BatchEncoding
一个带有以下字段的 BatchEncoding:
input_ids
— 要输入模型的标记 id 列表。当text
不是None
时返回。attention_mask
— 指定哪些标记应该被模型关注的索引列表(当return_attention_mask=True
或*attention_mask
*在self.model_input_names
中,且text
不是None
时)。input_features
— 要输入模型的音频输入特征。当audios
不是None
时返回。
准备模型的主要方法是准备一个或多个序列和音频。如果text
不是None
,则将text
和kwargs
参数转发给 SeamlessM4TTokenizerFast 的call()来对文本进行编码。要准备音频,如果audios
不是None
,则将audios
和kwrags
参数转发给 SeamlessM4TFeatureExtractor 的call()。更多信息请参考上述两种方法的文档。
SeamlessM4TCodeHifiGan
class transformers.SeamlessM4TCodeHifiGan
( config )
参数
config
(SeamlessM4TConfig) — 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。
根据此存储库中描述的 HiFi-GAN 声码器代码。此模型继承自 PreTrainedModel。查看超类文档以获取库为所有模型实现的通用方法(如下载或保存、调整输入嵌入、修剪头等)。
这个模型也是一个 PyTorch torch.nn.Module子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有内容。
forward
( input_ids: LongTensor spkr_id: Tensor lang_id: Tensor )
参数
input_ids
(torch.LongTensor
,形状为(batch_size, sequence_length)
) — 词汇表中输入序列标记的索引。
可以使用 SeamlessM4TTextToUnitForConditionalGeneration 获取索引。什么是输入 ID?spkr_id
(int
, 可选) — 用于语音合成的说话者 ID。必须小于config.vocoder_num_spkrs
。tgt_lang
(str
, 可选) — 用作翻译目标语言的语言 ID。
SeamlessM4THifiGan
class transformers.SeamlessM4THifiGan
( config: SeamlessM4TConfig )
forward
( input_embeds: FloatTensor ) → export const metadata = 'undefined';torch.FloatTensor
参数
spectrogram
(torch.FloatTensor
) — 包含对数梅尔频谱图的张量。可以是批处理的,形状为(batch_size, sequence_length, model_in_dim)
,也可以是未经批处理的,形状为(sequence_length, model_in_dim)
。请注意,model_in_dim
是config.unit_embed_dim
、config.lang_embed_dim
和config.spkr_embed_dim
的总和。
返回
torch.FloatTensor
包含语音波形的张量。如果输入的频谱图是批处理的,则形状为(batch_size, num_frames,)
。如果未经批处理,则形状为(num_frames,)
。
将对数梅尔频谱图转换为语音波形。传递一批对数梅尔频谱图将返回一批语音波形。传递单个、未经批处理的对数梅尔频谱图将返回单个、未经批处理的语音波形。
SeamlessM4TTextToUnitModel
class transformers.SeamlessM4TTextToUnitModel
( config: SeamlessM4TConfig embed_tokens_decoder: Optional = None )
参数
config
(~SeamlessM4TConfig) — 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。embed_tokens_decoder
(nn.Embedding
, 可选) — 解码器的输入嵌入。
Transformer 裸文本到单元编码器-解码器。编码器是一个没有嵌入的SeamlessM4TEncoder
,解码器是一个SeamlessM4TDecoder
。这个模型是 PyTorch torch.nn.Module子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有事项。
SeamlessM4TTextToUnitForConditionalGeneration
class transformers.SeamlessM4TTextToUnitForConditionalGeneration
( config: SeamlessM4TConfig embed_tokens_decoder: Optional = None )
参数
config
(~SeamlessM4TConfig)- 模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。查看 from_pretrained()方法以加载模型权重。embed_tokens_decoder
(nn.Embedding
,可选)- 解码器的输入嵌入。
带有语言模型头的文本到单元编码器-解码器。基本编码器-解码器模型是SeamlessM4TTextToUnit
。这个模型是 PyTorch torch.nn.Module子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有事项。
forward
( input_ids: LongTensor = None attention_mask: Optional = None decoder_input_ids: Optional = None decoder_attention_mask: Optional = None encoder_outputs: Optional = None past_key_values: Optional = None inputs_embeds: Optional = None decoder_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, sequence_length)
的torch.LongTensor
,可选)- 输入序列标记的索引。
可以使用 SeamlessM4TTokenizer 或 SeamlessM4TProcessor 获取索引。查看 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()获取详细信息。
什么是输入 ID?attention_mask
(形状为(batch_size, sequence_length)
的torch.FloatTensor
,可选)- 避免对填充标记索引执行注意力的掩码。掩码值选在[0, 1]
范围内:
- 1 表示未被
masked
的标记, - 0 表示被
masked
的标记。
- 什么是注意力掩码?
decoder_input_ids
(形状为(batch_size, target_sequence_length)
的torch.LongTensor
,可选)- 词汇表中解码器输入序列标记的索引。
可以使用 AutoTokenizer 获取索引。查看 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call
()获取详细信息。
什么是解码器输入 ID?
Bart 使用eos_token_id
作为decoder_input_ids
生成的起始标记。如果使用past_key_values
,则可以选择仅输入最后的decoder_input_ids
(参见past_key_values
)。
对于翻译和摘要训练,应提供decoder_input_ids
。如果未提供decoder_input_ids
,模型将通过将input_ids
向右移动来创建此张量,以进行去噪预训练,遵循论文。decoder_attention_mask
(形状为(batch_size, target_sequence_length)
的torch.LongTensor
,可选)— 默认行为:生成一个忽略decoder_input_ids
中填充标记的张量。因果掩码也将默认使用。
如果要更改填充行为,您应该阅读modeling_bart._prepare_decoder_attention_mask
并根据需要进行修改。有关默认策略的更多信息,请参阅论文中的图表 1。encoder_outputs
(tuple(tuple(torch.FloatTensor)
,可选)— 元组包含(last_hidden_state
,可选:hidden_states
,可选:attentions
)last_hidden_state
的形状为(batch_size, sequence_length, hidden_size)
,可选)是编码器最后一层输出的隐藏状态序列。用于解码器的交叉注意力。past_key_values
(tuple(tuple(torch.FloatTensor))
,可选,当传递use_cache=True
或config.use_cache=True
时返回)— 元组由长度为config.n_layers
的tuple(torch.FloatTensor)
组成,每个元组有 2 个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)
的张量,以及 2 个额外的形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)
的张量。
包含预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值),可用于加速顺序解码。
如果使用了past_key_values
,用户可以选择仅输入最后的decoder_input_ids
(那些没有将其过去的键值状态提供给此模型的)的形状为(batch_size, 1)
的张量,而不是形状为(batch_size, sequence_length)
的所有decoder_input_ids
。inputs_embeds
(形状为(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
,可选)— 可选择直接传递嵌入表示,而不是传递input_ids
。如果您想要更多控制权来将input_ids
索引转换为相关向量,而不是使用模型的内部嵌入查找矩阵,这将非常有用。decoder_inputs_embeds
(形状为(batch_size, target_sequence_length, hidden_size)
的torch.FloatTensor
,可选)— 可选择直接传递嵌入表示,而不是传递decoder_input_ids
。如果使用了past_key_values
,可以选择仅输入最后的decoder_inputs_embeds
(请参阅past_key_values
)。如果您想要更多控制权来将decoder_input_ids
索引转换为相关向量,而不是使用模型的内部嵌入查找矩阵,这将非常有用。
如果decoder_input_ids
和decoder_inputs_embeds
都未设置,则decoder_inputs_embeds
取inputs_embeds
的值。labels
(形状为(batch_size, sequence_length)
的torch.LongTensor
,可选)— 用于计算掩码语言建模损失的标签。索引应在[-100, 0, ..., config.vocab_size]
范围内(请参阅input_ids
文档字符串)。索引设置为-100
的标记将被忽略(掩码),损失仅计算具有标签在[0, ..., config.vocab_size]
范围内的标记。use_cache
(bool
,可选)— 如果设置为True
,将返回past_key_values
键值状态,并可用于加速解码(请参阅past_key_values
)。output_attentions
(bool
,可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。output_hidden_states
(bool
,可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。return_dict
(bool
,可选)— 是否返回 ModelOutput 而不是普通元组。
SeamlessM4TTextToUnitForConditionalGeneration 的前向方法重写了__call__
特殊方法。
尽管前向传递的配方需要在此函数内定义,但应该在此之后调用Module
实例,而不是这个,因为前者负责运行预处理和后处理步骤,而后者则默默地忽略它们。
, target_sequence_length)的
torch.LongTensor`,可选)- 词汇表中解码器输入序列标记的索引。
可以使用 AutoTokenizer 获取索引。查看 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.`call`()获取详细信息。 什么是解码器输入 ID? Bart 使用`eos_token_id`作为`decoder_input_ids`生成的起始标记。如果使用`past_key_values`,则可以选择仅输入最后的`decoder_input_ids`(参见`past_key_values`)。 对于翻译和摘要训练,应提供`decoder_input_ids`。如果未提供`decoder_input_ids`,模型将通过将`input_ids`向右移动来创建此张量,以进行去噪预训练,遵循论文。
decoder_attention_mask
(形状为(batch_size, target_sequence_length)
的torch.LongTensor
,可选)— 默认行为:生成一个忽略decoder_input_ids
中填充标记的张量。因果掩码也将默认使用。
如果要更改填充行为,您应该阅读modeling_bart._prepare_decoder_attention_mask
并根据需要进行修改。有关默认策略的更多信息,请参阅论文中的图表 1。encoder_outputs
(tuple(tuple(torch.FloatTensor)
,可选)— 元组包含(last_hidden_state
,可选:hidden_states
,可选:attentions
)last_hidden_state
的形状为(batch_size, sequence_length, hidden_size)
,可选)是编码器最后一层输出的隐藏状态序列。用于解码器的交叉注意力。past_key_values
(tuple(tuple(torch.FloatTensor))
,可选,当传递use_cache=True
或config.use_cache=True
时返回)— 元组由长度为config.n_layers
的tuple(torch.FloatTensor)
组成,每个元组有 2 个形状为(batch_size, num_heads, sequence_length, embed_size_per_head)
的张量,以及 2 个额外的形状为(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)
的张量。
包含预先计算的隐藏状态(自注意力块和交叉注意力块中的键和值),可用于加速顺序解码。
如果使用了past_key_values
,用户可以选择仅输入最后的decoder_input_ids
(那些没有将其过去的键值状态提供给此模型的)的形状为(batch_size, 1)
的张量,而不是形状为(batch_size, sequence_length)
的所有decoder_input_ids
。inputs_embeds
(形状为(batch_size, sequence_length, hidden_size)
的torch.FloatTensor
,可选)— 可选择直接传递嵌入表示,而不是传递input_ids
。如果您想要更多控制权来将input_ids
索引转换为相关向量,而不是使用模型的内部嵌入查找矩阵,这将非常有用。decoder_inputs_embeds
(形状为(batch_size, target_sequence_length, hidden_size)
的torch.FloatTensor
,可选)— 可选择直接传递嵌入表示,而不是传递decoder_input_ids
。如果使用了past_key_values
,可以选择仅输入最后的decoder_inputs_embeds
(请参阅past_key_values
)。如果您想要更多控制权来将decoder_input_ids
索引转换为相关向量,而不是使用模型的内部嵌入查找矩阵,这将非常有用。
如果decoder_input_ids
和decoder_inputs_embeds
都未设置,则decoder_inputs_embeds
取inputs_embeds
的值。labels
(形状为(batch_size, sequence_length)
的torch.LongTensor
,可选)— 用于计算掩码语言建模损失的标签。索引应在[-100, 0, ..., config.vocab_size]
范围内(请参阅input_ids
文档字符串)。索引设置为-100
的标记将被忽略(掩码),损失仅计算具有标签在[0, ..., config.vocab_size]
范围内的标记。use_cache
(bool
,可选)— 如果设置为True
,将返回past_key_values
键值状态,并可用于加速解码(请参阅past_key_values
)。output_attentions
(bool
,可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions
。output_hidden_states
(bool
,可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states
。return_dict
(bool
,可选)— 是否返回 ModelOutput 而不是普通元组。
SeamlessM4TTextToUnitForConditionalGeneration 的前向方法重写了__call__
特殊方法。
尽管前向传递的配方需要在此函数内定义,但应该在此之后调用Module
实例,而不是这个,因为前者负责运行预处理和后处理步骤,而后者则默默地忽略它们。