Transformers 文档

XLM-RoBERTa

Hugging Face's logo
加入 Hugging Face 社区

并获取增强的文档体验

开始使用

XLM-RoBERTa

Models Spaces

概述

XLM-RoBERTa 模型由 Alexis Conneau、Kartikay Khandelwal、Naman Goyal、Vishrav Chaudhary、Guillaume Wenzek、Francisco Guzmán、Edouard Grave、Myle Ott、Luke Zettlemoyer 和 Veselin Stoyanov 在 Unsupervised Cross-lingual Representation Learning at Scale 中提出。它基于 Facebook 于 2019 年发布的 RoBERTa 模型。它是一个大型多语言语言模型,使用 2.5TB 的过滤 CommonCrawl 数据进行训练。

论文摘要如下:

本文表明,大规模预训练多语言语言模型可以为各种跨语言迁移任务带来显著的性能提升。我们使用超过 2TB 的过滤 CommonCrawl 数据,在一百种语言上训练了一个基于 Transformer 的掩码语言模型。我们的模型,称为 XLM-R,在各种跨语言基准测试中显著优于多语言 BERT (mBERT),包括 XNLI 的平均准确率 +13.8%,MLQA 的平均 F1 分数 +12.3%,以及 NER 的平均 F1 分数 +2.1%。XLM-R 在低资源语言上表现尤为出色,在 XNLI 准确率方面,斯瓦希里语提高了 11.8%,乌尔都语比之前的 XLM 模型提高了 9.2%。我们还详细评估了实现这些增益所需的关键因素,包括 (1) 正向迁移和容量稀释之间的权衡,以及 (2) 大规模高资源和低资源语言的性能。最后,我们首次展示了在不牺牲每种语言性能的情况下进行多语言建模的可能性;在 GLUE 和 XNLI 基准测试中,XLM-R 与强大的单语言模型相比非常有竞争力。我们将公开 XLM-R 代码、数据和模型。

此模型由 stefan-it 贡献。原始代码可以在这里找到。

使用技巧

  • XLM-RoBERTa 是一个在 100 种不同语言上训练的多语言模型。与某些 XLM 多语言模型不同,它不需要 lang 张量来理解正在使用的语言,并且应该能够从输入 ID 中确定正确的语言。
  • 在 XLM 方法上使用 RoBERTa 技巧,但不使用翻译语言建模目标。它仅对来自一种语言的句子使用掩码语言建模。

资源

以下是 Hugging Face 官方和社区 (以 🌎 符号标示) 资源列表,可帮助您开始使用 XLM-RoBERTa。如果您有兴趣提交资源并将其包含在此处,请随时开启 Pull Request,我们将进行审核!理想情况下,资源应展示一些新内容,而不是重复现有资源。

文本分类
Token 分类
文本生成
填充 Mask
问题回答

多项选择

🚀 部署

此实现与 RoBERTa 相同。有关用法示例以及与输入和输出相关的信息,请参阅 RoBERTa 的文档

XLMRobertaConfig

class transformers.XLMRobertaConfig

< >

( vocab_size = 30522 hidden_size = 768 num_hidden_layers = 12 num_attention_heads = 12 intermediate_size = 3072 hidden_act = 'gelu' hidden_dropout_prob = 0.1 attention_probs_dropout_prob = 0.1 max_position_embeddings = 512 type_vocab_size = 2 initializer_range = 0.02 layer_norm_eps = 1e-12 pad_token_id = 1 bos_token_id = 0 eos_token_id = 2 position_embedding_type = 'absolute' use_cache = True classifier_dropout = None **kwargs )

参数

  • vocab_size (int, 可选, 默认为 30522) — XLM-RoBERTa 模型的词汇表大小。定义了在调用 XLMRobertaModelTFXLMRobertaModel 时可以通过 inputs_ids 传递的不同 token 的数量。
  • hidden_size (int, 可选, 默认为 768) — 编码器层和池化层的维度。
  • num_hidden_layers (int, 可选, 默认为 12) — Transformer 编码器中隐藏层的数量。
  • num_attention_heads (int, 可选, 默认为 12) — Transformer 编码器中每个注意力层的注意力头数。
  • intermediate_size (int, 可选, 默认为 3072) — Transformer 编码器中“中间”(通常称为前馈)层的维度。
  • hidden_act (strCallable, 可选, 默认为 "gelu") — 编码器和池化器中的非线性激活函数(函数或字符串)。如果为字符串,则支持 "gelu""relu""silu""gelu_new"
  • hidden_dropout_prob (float, 可选, 默认为 0.1) — 嵌入层、编码器和池化器中所有全连接层的 dropout 概率。
  • attention_probs_dropout_prob (float, 可选, 默认为 0.1) — 注意力概率的 dropout 比率。
  • max_position_embeddings (int, 可选, 默认为 512) — 此模型可能使用的最大序列长度。通常将其设置为较大的值以防万一(例如,512 或 1024 或 2048)。
  • type_vocab_size (int, 可选, 默认为 2) — 调用 XLMRobertaModelTFXLMRobertaModel 时传递的 token_type_ids 的词汇表大小。
  • initializer_range (float, 可选, 默认为 0.02) — 用于初始化所有权重矩阵的 truncated_normal_initializer 的标准差。
  • layer_norm_eps (float, 可选, 默认为 1e-12) — 层归一化层使用的 epsilon 值。
  • position_embedding_type (str, 可选, 默认为 "absolute") — 位置嵌入的类型。选择 "absolute""relative_key""relative_key_query" 之一。对于位置嵌入,请使用 "absolute"。有关 "relative_key" 的更多信息,请参阅 Self-Attention with Relative Position Representations (Shaw et al.)。有关 "relative_key_query" 的更多信息,请参阅 Improve Transformer Models with Better Relative Position Embeddings (Huang et al.) 中的方法 4
  • is_decoder (bool, 可选, 默认为 False) — 模型是否用作解码器。如果为 False,则模型用作编码器。
  • use_cache (bool, 可选, 默认为 True) — 模型是否应返回上次的键/值注意力(并非所有模型都使用)。仅当 config.is_decoder=True 时相关。
  • classifier_dropout (float, 可选) — 分类头的 dropout 比率。

这是用于存储 XLMRobertaModelTFXLMRobertaModel 配置的配置类。它用于根据指定的参数实例化 XLM-RoBERTa 模型,从而定义模型架构。使用默认值实例化配置将产生与 XLMRoBERTa FacebookAI/xlm-roberta-base 架构类似的配置。

配置对象继承自 PretrainedConfig,可用于控制模型输出。请阅读 PretrainedConfig 中的文档以获取更多信息。

示例

>>> from transformers import XLMRobertaConfig, XLMRobertaModel

>>> # Initializing a XLM-RoBERTa FacebookAI/xlm-roberta-base style configuration
>>> configuration = XLMRobertaConfig()

>>> # Initializing a model (with random weights) from the FacebookAI/xlm-roberta-base style configuration
>>> model = XLMRobertaModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

XLMRobertaTokenizer

class transformers.XLMRobertaTokenizer

< >

( vocab_file bos_token = '<s>' eos_token = '</s>' sep_token = '</s>' cls_token = '<s>' unk_token = '<unk>' pad_token = '<pad>' mask_token = '<mask>' sp_model_kwargs: Optional = None **kwargs )

参数

  • vocab_file (str) — 词汇表文件的路径。
  • bos_token (str, optional, defaults to "<s>") — 序列的起始标记,在预训练期间使用。可以用作序列分类器标记。

    当使用特殊标记构建序列时,这不是用于序列开始的标记。使用的标记是 cls_token

  • eos_token (str, optional, defaults to "</s>") — 序列的结束标记。

    当使用特殊标记构建序列时,这不是用于序列结束的标记。使用的标记是 sep_token

  • sep_token (str, optional, defaults to "</s>") — 分隔符标记,用于从多个序列构建序列时,例如用于序列分类的两个序列,或者用于问答的文本和问题。它也用作使用特殊标记构建的序列的最后一个标记。
  • cls_token (str, optional, defaults to "<s>") — 分类器标记,用于进行序列分类(对整个序列而不是逐 token 分类)。当使用特殊标记构建序列时,它是序列的第一个标记。
  • unk_token (str, optional, defaults to "<unk>") — 未知标记。词汇表中不存在的 token 无法转换为 ID,并将设置为此标记。
  • pad_token (str, optional, defaults to "<pad>") — 用于填充的标记,例如在批量处理不同长度的序列时。
  • mask_token (str, optional, defaults to "<mask>") — 用于掩盖值的标记。这是使用掩码语言建模训练此模型时使用的标记。这是模型将尝试预测的标记。
  • sp_model_kwargs (dict, optional) — 将会传递给 SentencePieceProcessor.__init__() 方法。SentencePiece 的 Python 封装器 可以用于设置以下内容(以及其他内容):

    • enable_sampling: 启用子词正则化。

    • nbest_size: unigram 的采样参数。对 BPE-Dropout 无效。

      • nbest_size = {0,1}: 不执行采样。
      • nbest_size > 1: 从 nbest_size 结果中采样。
      • nbest_size < 0: 假设 nbest_size 是无限的,并使用前向过滤和后向采样算法从所有假设(lattice)中采样。
    • alpha: unigram 采样的平滑参数,以及 BPE-dropout 的合并操作的 dropout 概率。

  • sp_model (SentencePieceProcessor) — 用于每次转换(字符串、tokens 和 IDs)的 SentencePiece 处理器。

改编自 RobertaTokenizerXLNetTokenizer。基于 SentencePiece

此分词器继承自 PreTrainedTokenizer,后者包含大多数主要方法。用户应参考此超类以获取有关这些方法的更多信息。

build_inputs_with_special_tokens

< >

( token_ids_0: List token_ids_1: Optional = None ) List[int]

参数

  • token_ids_0 (List[int]) — 将向其添加特殊标记的 ID 列表。
  • token_ids_1 (List[int], optional) — 序列对的可选的第二个 ID 列表。

返回值

List[int]

包含适当特殊标记的 输入 IDs 列表。

通过连接和添加特殊标记,从序列或序列对构建模型输入,以用于序列分类任务。 XLM-RoBERTa 序列具有以下格式

  • 单个序列: <s> X </s>
  • 序列对: <s> A </s></s> B </s>

get_special_tokens_mask

< >

( token_ids_0: List token_ids_1: Optional = None already_has_special_tokens: bool = False ) List[int]

参数

  • token_ids_0 (List[int]) — ID 列表。
  • token_ids_1 (List[int], optional) — 序列对的可选的第二个 ID 列表。
  • already_has_special_tokens (bool, optional, defaults to False) — 指示 token 列表是否已使用模型的特殊标记进行格式化。

返回值

List[int]

一个整数列表,范围为 [0, 1]:1 表示特殊标记,0 表示序列标记。

从没有添加特殊标记的 token 列表中检索序列 ID。当使用分词器的 prepare_for_model 方法添加特殊标记时,将调用此方法。

create_token_type_ids_from_sequences

< >

( token_ids_0: List token_ids_1: Optional = None ) List[int]

参数

  • token_ids_0 (List[int]) — ID 列表。
  • token_ids_1 (List[int], optional) — 序列对的可选的第二个 ID 列表。

返回值

List[int]

零列表。

从传递的两个序列创建一个掩码,用于序列对分类任务。 XLM-RoBERTa 不使用 token 类型 ID,因此返回零列表。

save_vocabulary

< >

( save_directory: str filename_prefix: Optional = None )

XLMRobertaTokenizerFast

class transformers.XLMRobertaTokenizerFast

  • vocab_file (str) — Path to the vocabulary file.
  • bos_token (str, optional, defaults to "<s>") — The beginning of sequence token that was used during pretraining. Can be used a sequence classifier token.

    When building a sequence using special tokens, this is not the token that is used for the beginning of sequence. The token used is the cls_token.

  • eos_token (str, 可选, 默认为 "</s>") — 序列结束符。

    当使用特殊 token 构建序列时,这不是用于序列结束的 token。使用的 token 是 sep_token

  • sep_token (str, 可选, 默认为 "</s>") — 分隔符 token,用于从多个序列构建一个序列,例如用于序列分类的两个序列,或用于问答的文本和问题。它也用作使用特殊 token 构建的序列的最后一个 token。
  • cls_token (str, 可选, 默认为 "<s>") — 分类器 token,用于进行序列分类(对整个序列而不是每个 token 进行分类)。当使用特殊 token 构建序列时,它是序列的第一个 token。
  • unk_token (str, 可选, 默认为 "<unk>") — 未知 token。词汇表中不存在的 token 无法转换为 ID,而是设置为此 token。
  • pad_token (str, 可选, 默认为 "<pad>") — 用于填充的 token,例如当对不同长度的序列进行批处理时。
  • mask_token (str, 可选, 默认为 "<mask>") — 用于掩码值的 token。这是使用掩码语言建模训练此模型时使用的 token。这是模型将尝试预测的 token。
  • additional_special_tokens (List[str], 可选, 默认为 ["<s>NOTUSED", "</s>NOTUSED"]) — 分词器使用的其他特殊 token。

构建一个“快速” XLM-RoBERTa 分词器(由 HuggingFace 的 tokenizers 库支持)。改编自 RobertaTokenizerXLNetTokenizer。基于 BPE

此分词器继承自 PreTrainedTokenizerFast,其中包含大多数主要方法。用户应参考此超类以获取有关这些方法的更多信息。

build_inputs_with_special_tokens

< >

( token_ids_0: List token_ids_1: Optional = None ) List[int]

参数

  • token_ids_0 (List[int]) — 将向其添加特殊 token 的 ID 列表。
  • token_ids_1 (List[int], 可选) — 序列对的可选第二个 ID 列表。

返回值

List[int]

包含适当特殊标记的 输入 IDs 列表。

通过连接和添加特殊标记,从序列或序列对构建模型输入,以用于序列分类任务。 XLM-RoBERTa 序列具有以下格式

  • 单个序列: <s> X </s>
  • 序列对: <s> A </s></s> B </s>

create_token_type_ids_from_sequences

< >

( token_ids_0: List token_ids_1: Optional = None ) List[int]

参数

  • token_ids_0 (List[int]) — ID 列表。
  • token_ids_1 (List[int], 可选) — 序列对的可选第二个 ID 列表。

返回值

List[int]

零列表。

从传递的两个序列创建一个掩码,用于序列对分类任务。 XLM-RoBERTa 不使用 token 类型 ID,因此返回零列表。

Pytorch
隐藏 Pytorch 内容

XLMRobertaModel

class transformers.XLMRobertaModel

< >

( config add_pooling_layer = True )

参数

  • config (XLMRobertaConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

裸 XLM-RoBERTa 模型 Transformer 输出原始隐藏状态,顶部没有任何特定的 head。

此模型继承自 PreTrainedModel。查看超类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 PyTorch torch.nn.Module 子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以了解与常规用法和行为相关的所有事项。

该模型可以充当编码器(仅具有自注意力),也可以充当解码器,在后一种情况下,在自注意力层之间添加交叉注意力层,遵循 Ashish Vaswani、Noam Shazeer、Niki Parmar、Jakob Uszkoreit、Llion Jones、Aidan N. Gomez、Lukasz Kaiser 和 Illia Polosukhin 在 Attention is all you need 中描述的架构。

要充当解码器,模型需要使用配置的 is_decoder 参数设置为 True 进行初始化。要在 Seq2Seq 模型中使用,模型需要同时使用 is_decoder 参数和 add_cross_attention 设置为 True 进行初始化;然后期望 encoder_hidden_states 作为前向传递的输入。

forward

< >

( input_ids: Optional = None attention_mask: Optional = None token_type_ids: Optional = None position_ids: Optional = None head_mask: Optional = None inputs_embeds: Optional = None encoder_hidden_states: Optional = None encoder_attention_mask: Optional = None past_key_values: Optional = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentionstuple(torch.FloatTensor)

参数

  • input_ids (torch.LongTensor,形状为 (batch_size, sequence_length)) — 词汇表中输入序列 token 的索引。

    可以使用 AutoTokenizer 获取索引。有关详细信息,请参见 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 ID?

  • attention_mask (torch.FloatTensor,形状为 (batch_size, sequence_length), 可选) — 掩码,用于避免在 padding token 索引上执行注意力机制。Mask 值在 [0, 1] 中选择:

    • 1 表示 未被掩码 的 token,
    • 0 表示 已被掩码 的 token。

    什么是注意力掩码?

  • token_type_ids (torch.LongTensor,形状为 (batch_size, sequence_length), 可选) — 分段 token 索引,用于指示输入的第一部分和第二部分。索引在 [0, 1] 中选择:

    • 0 对应于 句子 A token,
    • 1 对应于 句子 B token。

    什么是 token 类型 ID?

  • position_ids (torch.LongTensor,形状为 (batch_size, sequence_length), 可选) — 位置嵌入中每个输入序列 token 的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。

    什么是位置 ID?

  • head_mask (torch.FloatTensor,形状为 (num_heads,)(num_layers, num_heads), 可选) — 掩码,用于使自注意力模块的选定 head 失效。Mask 值在 [0, 1] 中选择:

    • 1 表示 head 未被掩码
    • 0 表示 head 已被掩码
  • inputs_embeds (torch.FloatTensor,形状为 (batch_size, sequence_length, hidden_size), 可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您希望比模型的内部嵌入查找矩阵更精细地控制如何将 input_ids 索引转换为关联的向量,这将非常有用。
  • output_attentions (bool, 可选) — 是否返回所有注意力层的注意力张量。 有关更多详细信息,请参见返回张量下的 attentions
  • output_hidden_states (bool, 可选) — 是否返回所有层的隐藏状态。 有关更多详细信息,请参见返回张量下的 hidden_states
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是纯元组。
  • encoder_hidden_states (torch.FloatTensor,形状为 (batch_size, sequence_length, hidden_size), 可选) — 编码器最后一层输出的隐藏状态序列。如果在模型配置为解码器时,则在交叉注意力中使用。
  • encoder_attention_mask (torch.FloatTensor,形状为 (batch_size, sequence_length)(batch_size, sequence_length, target_length)可选) — 用于避免对编码器输入的 padding 标记索引执行注意力机制的掩码。如果模型配置为解码器,则此掩码用于交叉注意力。掩码值在 [0, 1] 中选择:

    • 1 表示标记未被掩码
    • 0 表示标记被掩码
  • past_key_values (tuple(tuple(torch.FloatTensor)),长度为 config.n_layers,每个元组包含 4 个形状为 (batch_size, num_heads, sequence_length - 1, embed_size_per_head) 的张量) — 包含注意力模块的预计算的键和值隐藏状态。可用于加速解码。

    如果使用 past_key_values,则用户可以选择仅输入最后的 decoder_input_ids (那些没有将其过去的键值状态提供给此模型的) ,形状为 (batch_size, 1),而不是所有形状为 (batch_size, sequence_length)decoder_input_ids

  • use_cache (bool可选) — 如果设置为 True,则返回 past_key_values 键值状态,并可用于加速解码 (参见 past_key_values)。

返回值

transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentionstuple(torch.FloatTensor)

一个 transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions 或一个 torch.FloatTensor 元组 (如果传递了 return_dict=False 或当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • last_hidden_state (torch.FloatTensor,形状为 (batch_size, sequence_length, hidden_size)) — 模型最后一层的输出处的隐藏状态序列。

  • pooler_output (torch.FloatTensor,形状为 (batch_size, hidden_size)) — 序列的第一个标记 (分类标记) 的最后一层隐藏状态,在通过用于辅助预训练任务的层进一步处理之后。例如,对于 BERT 系列模型,这返回通过线性层和 tanh 激活函数处理后的分类标记。线性层权重是从预训练期间的下一句预测 (分类) 目标训练的。

  • hidden_states (tuple(torch.FloatTensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组 (如果模型具有嵌入层,则为嵌入的输出 + 每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每层输出以及可选的初始嵌入输出处的隐藏状态。

  • attentions (tuple(torch.FloatTensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

  • cross_attentions (tuple(torch.FloatTensor)可选,当传递 output_attentions=Trueconfig.add_cross_attention=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    解码器的交叉注意力层的注意力权重,在注意力 softmax 之后,用于计算交叉注意力头中的加权平均值。

  • past_key_values (tuple(tuple(torch.FloatTensor))可选,当传递 use_cache=True 或当 config.use_cache=True 时返回) — tuple(torch.FloatTensor) 的元组,长度为 config.n_layers,每个元组包含 2 个形状为 (batch_size, num_heads, sequence_length, embed_size_per_head) 的张量,并且如果 config.is_encoder_decoder=True,则可选地包含 2 个形状为 (batch_size, num_heads, encoder_sequence_length, embed_size_per_head) 的附加张量。

    包含预计算的隐藏状态 (自注意力模块中的键和值,以及如果 config.is_encoder_decoder=True,则在交叉注意力模块中),这些状态可以用于 (参见 past_key_values 输入) 加速顺序解码。

XLMRobertaModel forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, XLMRobertaModel
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = XLMRobertaModel.from_pretrained("FacebookAI/xlm-roberta-base")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs)

>>> last_hidden_states = outputs.last_hidden_state

XLMRobertaForCausalLM

class transformers.XLMRobertaForCausalLM

< >

( config )

参数

  • config (XLMRobertaConfig) — 模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

XLM-RoBERTa 模型,顶部带有用于 CLM 微调的 language modeling 头。

此模型继承自 PreTrainedModel。查看超类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 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 inputs_embeds: Optional = None encoder_hidden_states: Optional = None encoder_attention_mask: Optional = None labels: Optional = None past_key_values: Tuple = None use_cache: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) transformers.modeling_outputs.CausalLMOutputWithCrossAttentionstuple(torch.FloatTensor)

参数

  • input_ids (torch.LongTensor,形状为 (batch_size, sequence_length)) — 词汇表中输入序列标记的索引。

    索引可以使用 AutoTokenizer 获得。有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 IDs?

  • attention_mask (torch.FloatTensor,形状为 (batch_size, sequence_length)可选) — 用于避免对 padding 标记索引执行注意力机制的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示标记未被掩码
    • 0 表示标记被掩码

    什么是注意力掩码?

  • token_type_ids (torch.LongTensor,形状为 (batch_size, sequence_length)可选) — 分段标记索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

    • 0 对应于 sentence A 标记,
    • 1 对应于 sentence B 标记。

    什么是标记类型 IDs?

  • position_ids (torch.LongTensor,形状为 (batch_size, sequence_length)可选) — 位置嵌入中每个输入序列标记的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。

    什么是位置 IDs?

  • head_mask (torch.FloatTensor,形状为 (num_heads,)(num_layers, num_heads)可选) — 用于使自注意力模块的选定头无效的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示头未被掩码
    • 0 表示头被掩码
  • inputs_embeds (torch.FloatTensor,形状为 (batch_size, sequence_length, hidden_size)可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您希望比模型的内部嵌入查找矩阵更好地控制如何将 input_ids 索引转换为关联的向量,这将非常有用。
  • output_attentions (bool可选) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的 attentions
  • output_hidden_states (bool可选) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的 hidden_states
  • return_dict (bool可选) — 是否返回 ModelOutput 而不是普通元组。
  • encoder_hidden_states (torch.FloatTensor,形状为 (batch_size, sequence_length, hidden_size)可选) — 编码器最后一层的输出处的隐藏状态序列。如果模型配置为解码器,则在交叉注意力中使用。
  • encoder_attention_mask (torch.FloatTensor,形状为 (batch_size, sequence_length)可选) — 用于避免对编码器输入的 padding 标记索引执行注意力机制的掩码。如果模型配置为解码器,则此掩码用于交叉注意力。掩码值在 [0, 1] 中选择:

    • 1 表示标记未被掩码
    • 0 表示标记被掩码
  • labels (torch.LongTensor,形状为 (batch_size, sequence_length)可选) — 用于计算从左到右语言建模损失 (下一个词预测) 的标签。索引应在 [-100, 0, ..., config.vocab_size] 中 (参见 input_ids 文档字符串)。索引设置为 -100 的标记将被忽略 (掩码),损失仅针对标签在 [0, ..., config.vocab_size] 中的标记计算。
  • past_key_values (tuple(tuple(torch.FloatTensor)),长度为 config.n_layers,每个元组包含 4 个形状为 (batch_size, num_heads, sequence_length - 1, embed_size_per_head) 的张量) — 包含注意力模块的预计算的键和值隐藏状态。可用于加速解码。

    如果使用 past_key_values,则用户可以选择仅输入最后的 decoder_input_ids (那些没有将其过去的键值状态提供给此模型的) ,形状为 (batch_size, 1),而不是所有形状为 (batch_size, sequence_length)decoder_input_ids

  • use_cache (bool可选) — 如果设置为 True,则返回 past_key_values 键值状态,并可用于加速解码 (参见 past_key_values)。

返回值

transformers.modeling_outputs.CausalLMOutputWithCrossAttentionstuple(torch.FloatTensor)

一个 transformers.modeling_outputs.CausalLMOutputWithCrossAttentions 或一个 torch.FloatTensor 元组 (如果传递了 return_dict=False 或当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • loss (torch.FloatTensor,形状为 (1,)可选,当提供 labels 时返回) — 语言建模损失 (用于下一个标记预测)。

  • logits (torch.FloatTensor,形状为 (batch_size, sequence_length, config.vocab_size)) — 语言建模头的预测分数 (SoftMax 之前的每个词汇表标记的分数)。

  • hidden_states (tuple(torch.FloatTensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组 (如果模型具有嵌入层,则为嵌入的输出 + 每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每层输出以及可选的初始嵌入输出处的隐藏状态。

  • attentions (tuple(torch.FloatTensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

  • cross_attentions (tuple(torch.FloatTensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    交叉注意力 softmax 之后的注意力权重,用于计算交叉注意力头中的加权平均值。

  • past_key_values (tuple(tuple(torch.FloatTensor))可选,当传递 use_cache=True 或当 config.use_cache=True 时返回) — torch.FloatTensor 元组的元组,长度为 config.n_layers,每个元组包含自注意力的缓存键值状态,以及如果模型在编码器-解码器设置中使用,则包含交叉注意力的缓存键值状态。仅当 config.is_decoder = True 时相关。

    包含预计算的隐藏状态 (注意力模块中的键和值),这些状态可以用于 (参见 past_key_values 输入) 加速顺序解码。

XLMRobertaForCausalLM forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, XLMRobertaForCausalLM, AutoConfig
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/roberta-base")
>>> config = AutoConfig.from_pretrained("FacebookAI/roberta-base")
>>> config.is_decoder = True
>>> model = XLMRobertaForCausalLM.from_pretrained("FacebookAI/roberta-base", config=config)

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs)

>>> prediction_logits = outputs.logits

XLMRobertaForMaskedLM

class transformers.XLMRobertaForMaskedLM

< >

( config )

参数

  • config (XLMRobertaConfig) — 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

XLM-RoBERTa 模型,顶部带有 language modeling 头。

此模型继承自 PreTrainedModel。查看超类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 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 inputs_embeds: Optional = None encoder_hidden_states: Optional = None encoder_attention_mask: Optional = None labels: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) transformers.modeling_outputs.MaskedLMOutput or tuple(torch.FloatTensor)

参数

  • input_ids (torch.LongTensor,形状为 (batch_size, sequence_length)) — 词汇表中输入序列标记的索引。

    可以使用 AutoTokenizer 获取索引。 有关详细信息,请参见 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 ID?

  • attention_mask (torch.FloatTensor,形状为 (batch_size, sequence_length)可选) — 掩码,以避免在 padding 标记索引上执行注意力机制。掩码值在 [0, 1] 中选择:

    • 1 表示标记未被掩盖
    • 0 表示标记被掩盖

    什么是注意力掩码?

  • token_type_ids (torch.LongTensor,形状为 (batch_size, sequence_length)可选) — 段落标记索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

    • 0 对应于 句子 A 标记,
    • 1 对应于 句子 B 标记。

    什么是标记类型 ID?

  • position_ids (torch.LongTensor,形状为 (batch_size, sequence_length)可选) — 每个输入序列标记在位置嵌入中的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。

    什么是位置 ID?

  • head_mask (torch.FloatTensor,形状为 (num_heads,)(num_layers, num_heads)可选) — 掩码,用于 nullify self-attention 模块的选定头。掩码值在 [0, 1] 中选择:

    • 1 表示头未被掩盖
    • 0 表示头被掩盖
  • inputs_embeds (torch.FloatTensor,形状为 (batch_size, sequence_length, hidden_size)可选) — (可选)您可以选择直接传递嵌入表示,而不是传递 input_ids。 如果您希望比模型的内部嵌入查找矩阵更精确地控制如何将 input_ids 索引转换为关联的向量,这将非常有用。
  • output_attentions (bool可选) — 是否返回所有注意力层的注意力张量。 有关更多详细信息,请参见返回的张量下的 attentions
  • output_hidden_states (bool可选) — 是否返回所有层的隐藏状态。 有关更多详细信息,请参见返回的张量下的 hidden_states
  • return_dict (bool可选) — 是否返回 ModelOutput 而不是普通元组。
  • labels (torch.LongTensor,形状为 (batch_size, sequence_length)可选) — 用于计算掩码语言建模损失的标签。 索引应在 [-100, 0, ..., config.vocab_size] 中(请参阅 input_ids 文档字符串) 索引设置为 -100 的标记将被忽略(掩盖),损失仅针对标签在 [0, ..., config.vocab_size] 中的标记进行计算
  • kwargs (Dict[str, any]可选,默认为 {}) — 用于隐藏已弃用的旧版参数。

返回值

transformers.modeling_outputs.MaskedLMOutputtuple(torch.FloatTensor)

一个 transformers.modeling_outputs.MaskedLMOutputtorch.FloatTensor 元组(如果传递 return_dict=False 或当 config.return_dict=False 时),其中包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • loss (torch.FloatTensor,形状为 (1,)可选,当提供 labels 时返回) — 掩码语言建模 (MLM) 损失。

  • logits (torch.FloatTensor,形状为 (batch_size, sequence_length, config.vocab_size)) — 语言建模头的预测分数 (SoftMax 之前的每个词汇表标记的分数)。

  • hidden_states (tuple(torch.FloatTensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组 (如果模型具有嵌入层,则为嵌入的输出 + 每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每层输出以及可选的初始嵌入输出处的隐藏状态。

  • attentions (tuple(torch.FloatTensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

XLMRobertaForMaskedLM forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, XLMRobertaForMaskedLM
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = XLMRobertaForMaskedLM.from_pretrained("FacebookAI/xlm-roberta-base")

>>> inputs = tokenizer("The capital of France is <mask>.", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> # retrieve index of <mask>
>>> mask_token_index = (inputs.input_ids == tokenizer.mask_token_id)[0].nonzero(as_tuple=True)[0]

>>> predicted_token_id = logits[0, mask_token_index].argmax(axis=-1)
>>> tokenizer.decode(predicted_token_id)
' Paris'

>>> labels = tokenizer("The capital of France is Paris.", return_tensors="pt")["input_ids"]
>>> # mask labels of non-<mask> tokens
>>> labels = torch.where(inputs.input_ids == tokenizer.mask_token_id, labels, -100)

>>> outputs = model(**inputs, labels=labels)
>>> round(outputs.loss.item(), 2)
0.1

XLMRobertaForSequenceClassification

class transformers.XLMRobertaForSequenceClassification

< >

( config )

参数

  • config (XLMRobertaConfig) — 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

XLM-RoBERTa 模型转换器,顶部带有序列分类/回归头(池化输出顶部的线性层),例如用于 GLUE 任务。

此模型继承自 PreTrainedModel。查看超类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 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 inputs_embeds: Optional = None labels: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) transformers.modeling_outputs.SequenceClassifierOutputtuple(torch.FloatTensor)

参数

  • input_ids (torch.LongTensor,形状为 (batch_size, sequence_length)) — 词汇表中输入序列标记的索引。

    可以使用 AutoTokenizer 获取索引。 有关详细信息,请参见 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 ID?

  • attention_mask (torch.FloatTensor,形状为 (batch_size, sequence_length)可选) — 掩码,以避免在 padding 标记索引上执行注意力机制。掩码值在 [0, 1] 中选择:

    • 1 表示标记未被掩盖
    • 0 表示标记被掩盖

    什么是注意力掩码?

  • token_type_ids (torch.LongTensor,形状为 (batch_size, sequence_length)可选) — 段落标记索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

    • 0 对应于 句子 A 标记,
    • 1 对应于 句子 B 标记。

    什么是标记类型 ID?

  • position_ids (torch.LongTensor,形状为 (batch_size, sequence_length)可选) — 每个输入序列标记在位置嵌入中的位置索引。在范围 [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 索引转换为关联的向量,这将非常有用。
  • output_attentions (bool可选) — 是否返回所有注意力层的注意力张量。 有关更多详细信息,请参阅返回张量下的 attentions
  • output_hidden_states (bool可选) — 是否返回所有层的隐藏状态。 有关更多详细信息,请参阅返回张量下的 hidden_states
  • return_dict (bool可选) — 是否返回 ModelOutput 而不是纯元组。
  • labels (形状为 (batch_size,)torch.LongTensor可选) — 用于计算序列分类/回归损失的标签。 索引应在 [0, ..., config.num_labels - 1] 中。 如果 config.num_labels == 1,则计算回归损失(均方损失),如果 config.num_labels > 1,则计算分类损失(交叉熵)。

返回值

transformers.modeling_outputs.SequenceClassifierOutputtuple(torch.FloatTensor)

一个 transformers.modeling_outputs.SequenceClassifierOutputtorch.FloatTensor 的元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),其中包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • loss (形状为 (1,)torch.FloatTensor可选,当提供 labels 时返回) — 分类(如果 config.num_labels==1,则为回归)损失。

  • logits (形状为 (batch_size, config.num_labels)torch.FloatTensor) — 分类(如果 config.num_labels==1,则为回归)得分(在 SoftMax 之前)。

  • hidden_states (tuple(torch.FloatTensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组 (如果模型具有嵌入层,则为嵌入的输出 + 每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每层输出以及可选的初始嵌入输出处的隐藏状态。

  • attentions (tuple(torch.FloatTensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

XLMRobertaForSequenceClassification 前向方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

单标签分类示例

>>> import torch
>>> from transformers import AutoTokenizer, XLMRobertaForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("cardiffnlp/twitter-roberta-base-emotion")
>>> model = XLMRobertaForSequenceClassification.from_pretrained("cardiffnlp/twitter-roberta-base-emotion")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
'optimism'

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = XLMRobertaForSequenceClassification.from_pretrained("cardiffnlp/twitter-roberta-base-emotion", num_labels=num_labels)

>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
0.08

多标签分类示例

>>> import torch
>>> from transformers import AutoTokenizer, XLMRobertaForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("cardiffnlp/twitter-roberta-base-emotion")
>>> model = XLMRobertaForSequenceClassification.from_pretrained("cardiffnlp/twitter-roberta-base-emotion", problem_type="multi_label_classification")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = XLMRobertaForSequenceClassification.from_pretrained(
...     "cardiffnlp/twitter-roberta-base-emotion", num_labels=num_labels, problem_type="multi_label_classification"
... )

>>> labels = torch.sum(
...     torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).loss

XLMRobertaForMultipleChoice

class transformers.XLMRobertaForMultipleChoice

< >

( config )

参数

  • config (XLMRobertaConfig) — 带有模型所有参数的模型配置类。 使用配置文件初始化不会加载与模型关联的权重,仅加载配置。 查看 from_pretrained() 方法以加载模型权重。

XLM-RoBERTa 模型,顶部带有多项选择分类头(池化输出顶部的线性层和 softmax),例如用于 RocStories/SWAG 任务。

此模型继承自 PreTrainedModel。查看超类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 PyTorch torch.nn.Module 子类。将其用作常规 PyTorch 模块,并参考 PyTorch 文档以了解与常规用法和行为相关的所有事项。

forward

< >

( input_ids: Optional = None token_type_ids: Optional = None attention_mask: Optional = None labels: Optional = None position_ids: Optional = None head_mask: Optional = None inputs_embeds: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) transformers.modeling_outputs.MultipleChoiceModelOutputtuple(torch.FloatTensor)

参数

  • input_ids (形状为 (batch_size, num_choices, sequence_length)torch.LongTensor) — 词汇表中输入序列标记的索引。

    可以使用 AutoTokenizer 获取索引。 有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 ID?

  • attention_mask (形状为 (batch_size, num_choices, sequence_length)torch.FloatTensor可选) — 掩码,用于避免对填充标记索引执行注意力机制。 掩码值在 [0, 1] 中选择:

    • 1 表示标记未被屏蔽
    • 0 表示标记被屏蔽

    什么是注意力掩码?

  • token_type_ids (形状为 (batch_size, num_choices, sequence_length)torch.LongTensor可选) — 分段标记索引,用于指示输入的第一个和第二个部分。 索引在 [0, 1] 中选择:

    • 0 对应于句子 A 标记,
    • 1 对应于句子 B 标记。

    什么是标记类型 ID?

  • position_ids (形状为 (batch_size, num_choices, 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, num_choices, sequence_length, hidden_size)torch.FloatTensor可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您希望比模型的内部嵌入查找矩阵更精细地控制如何将 input_ids 索引转换为关联的向量,这将非常有用。
  • output_attentions (bool可选) — 是否返回所有注意力层的注意力张量。 有关更多详细信息,请参阅返回张量下的 attentions
  • output_hidden_states (bool可选) — 是否返回所有层的隐藏状态。 有关更多详细信息,请参阅返回张量下的 hidden_states
  • return_dict (bool可选) — 是否返回 ModelOutput 而不是纯元组。
  • labels (形状为 (batch_size,)torch.LongTensor可选) — 用于计算多项选择分类损失的标签。 索引应在 [0, ..., num_choices-1] 中,其中 num_choices 是输入张量的第二个维度的大小。 (请参阅上面的 input_ids

返回值

transformers.modeling_outputs.MultipleChoiceModelOutputtuple(torch.FloatTensor)

一个 transformers.modeling_outputs.MultipleChoiceModelOutputtorch.FloatTensor 的元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),其中包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • loss (形状为 (1,)torch.FloatTensor可选,当提供 labels 时返回) — 分类损失。

  • logits (形状为 (batch_size, num_choices)torch.FloatTensor) — num_choices 是输入张量的第二个维度。 (请参阅上面的 input_ids)。

    分类得分(在 SoftMax 之前)。

  • hidden_states (tuple(torch.FloatTensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组 (如果模型具有嵌入层,则为嵌入的输出 + 每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每层输出以及可选的初始嵌入输出处的隐藏状态。

  • attentions (tuple(torch.FloatTensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

XLMRobertaForMultipleChoice 前向方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, XLMRobertaForMultipleChoice
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = XLMRobertaForMultipleChoice.from_pretrained("FacebookAI/xlm-roberta-base")

>>> prompt = "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced."
>>> choice0 = "It is eaten with a fork and a knife."
>>> choice1 = "It is eaten while held in the hand."
>>> labels = torch.tensor(0).unsqueeze(0)  # choice0 is correct (according to Wikipedia ;)), batch size 1

>>> encoding = tokenizer([prompt, prompt], [choice0, choice1], return_tensors="pt", padding=True)
>>> outputs = model(**{k: v.unsqueeze(0) for k, v in encoding.items()}, labels=labels)  # batch size is 1

>>> # the linear classifier still needs to be trained
>>> loss = outputs.loss
>>> logits = outputs.logits

XLMRobertaForTokenClassification

class transformers.XLMRobertaForTokenClassification

< >

( config )

参数

  • config (XLMRobertaConfig) — 带有模型所有参数的模型配置类。 使用配置文件初始化不会加载与模型关联的权重,仅加载配置。 查看 from_pretrained() 方法以加载模型权重。

XLM-RoBERTa 模型,顶部带有标记分类头(隐藏状态输出顶部的线性层),例如用于命名实体识别 (NER) 任务。

此模型继承自 PreTrainedModel。查看超类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 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 inputs_embeds: Optional = None labels: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) transformers.modeling_outputs.TokenClassifierOutput or tuple(torch.FloatTensor)

参数

  • input_ids (torch.LongTensor, 形状为 (batch_size, sequence_length)) — 词汇表中输入序列 tokens 的索引。

    索引可以使用 AutoTokenizer 获得。有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是 input IDs?

  • attention_mask (torch.FloatTensor, 形状为 (batch_size, sequence_length), 可选) — 用于避免在 padding token 索引上执行 attention 的 Mask。 Mask 值在 [0, 1] 中选择:

    • 1 表示 未被 Mask 的 tokens,
    • 0 表示 已被 Mask 的 tokens。

    什么是 attention masks?

  • token_type_ids (torch.LongTensor, 形状为 (batch_size, sequence_length), 可选) — 段 token 索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

    • 0 对应于 *句子 A* token,
    • 1 对应于 *句子 B* token。

    什么是 token type IDs?

  • position_ids (torch.LongTensor, 形状为 (batch_size, sequence_length), 可选) — 位置 embeddings 中每个输入序列 token 的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。

    什么是 position IDs?

  • head_mask (torch.FloatTensor, 形状为 (num_heads,)(num_layers, num_heads), 可选) — 用于使 self-attention 模块中选定的 head 失效的 Mask。 Mask 值在 [0, 1] 中选择:

    • 1 表示 head 未被 Mask
    • 0 表示 head 已被 Mask
  • inputs_embeds (torch.FloatTensor, 形状为 (batch_size, sequence_length, hidden_size), 可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您希望更好地控制如何将 input_ids 索引转换为关联的向量(而不是模型的内部嵌入查找矩阵),这将非常有用。
  • output_attentions (bool, 可选) — 是否返回所有 attention 层的 attentions tensors。 有关更多详细信息,请参见返回 tensors 下的 attentions
  • output_hidden_states (bool, 可选) — 是否返回所有层的 hidden states。 有关更多详细信息,请参见返回 tensors 下的 hidden_states
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是普通 tuple。
  • labels (torch.LongTensor, 形状为 (batch_size, sequence_length), 可选) — 用于计算 token 分类损失的标签。索引应为 [0, ..., config.num_labels - 1]

返回值

transformers.modeling_outputs.TokenClassifierOutputtuple(torch.FloatTensor)

一个 transformers.modeling_outputs.TokenClassifierOutput 或一个 torch.FloatTensor 的 tuple (如果传递 return_dict=False 或当 config.return_dict=False 时),包含取决于配置 (XLMRobertaConfig) 和输入的各种元素。

  • loss (torch.FloatTensor, 形状为 (1,), 可选, 当提供 labels 时返回) — 分类损失。

  • logits (torch.FloatTensor, 形状为 (batch_size, sequence_length, config.num_labels)) — 分类得分 (SoftMax 之前)。

  • hidden_states (tuple(torch.FloatTensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组 (如果模型具有嵌入层,则为嵌入的输出 + 每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每层输出以及可选的初始嵌入输出处的隐藏状态。

  • attentions (tuple(torch.FloatTensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

XLMRobertaForTokenClassification forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, XLMRobertaForTokenClassification
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("Jean-Baptiste/roberta-large-ner-english")
>>> model = XLMRobertaForTokenClassification.from_pretrained("Jean-Baptiste/roberta-large-ner-english")

>>> inputs = tokenizer(
...     "HuggingFace is a company based in Paris and New York", add_special_tokens=False, return_tensors="pt"
... )

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_token_class_ids = logits.argmax(-1)

>>> # Note that tokens are classified rather then input words which means that
>>> # there might be more predicted token classes than words.
>>> # Multiple token classes might account for the same word
>>> predicted_tokens_classes = [model.config.id2label[t.item()] for t in predicted_token_class_ids[0]]
>>> predicted_tokens_classes
['O', 'ORG', 'ORG', 'O', 'O', 'O', 'O', 'O', 'LOC', 'O', 'LOC', 'LOC']

>>> labels = predicted_token_class_ids
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
0.01

XLMRobertaForQuestionAnswering

class transformers.XLMRobertaForQuestionAnswering

< >

( config )

参数

  • config (XLMRobertaConfig) — 包含模型所有参数的模型配置类。 使用配置文件初始化不会加载与模型关联的权重,仅加载配置。 查看 from_pretrained() 方法以加载模型权重。

XLM-RoBERTa 模型,顶部带有一个 span 分类头,用于抽取式问答任务,如 SQuAD(在 hidden-states 输出之上有一个线性层,用于计算 span start logitsspan end logits)。

此模型继承自 PreTrainedModel。查看超类文档,了解库为所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 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 inputs_embeds: Optional = None start_positions: Optional = None end_positions: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) transformers.modeling_outputs.QuestionAnsweringModelOutputtuple(torch.FloatTensor)

参数

  • input_ids (torch.LongTensor, 形状为 (batch_size, sequence_length)) — 词汇表中输入序列 tokens 的索引。

    索引可以使用 AutoTokenizer 获得。有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是 input IDs?

  • attention_mask (torch.FloatTensor, 形状为 (batch_size, sequence_length), 可选) — 用于避免在 padding token 索引上执行 attention 的 Mask。 Mask 值在 [0, 1] 中选择:

    • 1 表示 未被 Mask 的 tokens,
    • 0 表示 已被 Mask 的 tokens。

    什么是 attention masks?

  • token_type_ids (torch.LongTensor, 形状为 (batch_size, sequence_length), 可选) — 段 token 索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

    • 0 对应于 *句子 A* token,
    • 1 对应于 *句子 B* token。

    什么是 token type IDs?

  • position_ids (torch.LongTensor, 形状为 (batch_size, sequence_length), 可选) — 位置 embeddings 中每个输入序列 token 的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。

    什么是 position IDs?

  • head_mask (torch.FloatTensor, 形状为 (num_heads,)(num_layers, num_heads), 可选) — 用于使 self-attention 模块中选定的 head 失效的 Mask。 Mask 值在 [0, 1] 中选择:

    • 1 表示 head 未被 Mask
    • 0 表示 head 已被 Mask
  • inputs_embeds (torch.FloatTensor, 形状为 (batch_size, sequence_length, hidden_size), 可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您希望更好地控制如何将 input_ids 索引转换为关联的向量(而不是模型的内部嵌入查找矩阵),这将非常有用。
  • output_attentions (bool, 可选) — 是否返回所有 attention 层的 attentions tensors。 有关更多详细信息,请参见返回 tensors 下的 attentions
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。 更多细节请查看返回张量下的 hidden_states
  • return_dict (bool, optional) — 是否返回一个 ModelOutput 而不是一个普通的元组。
  • start_positions (torch.LongTensor of shape (batch_size,), optional) — 用于计算 token 分类损失的标签,表示标注跨度的起始位置(索引)。 位置被限制在序列的长度 (sequence_length) 内。 序列之外的位置不被考虑用于计算损失。
  • end_positions (torch.LongTensor of shape (batch_size,), optional) — 用于计算 token 分类损失的标签,表示标注跨度的结束位置(索引)。 位置被限制在序列的长度 (sequence_length) 内。 序列之外的位置不被考虑用于计算损失。

返回值

transformers.modeling_outputs.QuestionAnsweringModelOutputtuple(torch.FloatTensor)

一个 transformers.modeling_outputs.QuestionAnsweringModelOutput 或者一个 torch.FloatTensor 元组 (如果传递了 return_dict=False 或者当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • loss (torch.FloatTensor of shape (1,), optional, 当提供 labels 时返回) — 总跨度提取损失是起始位置和结束位置交叉熵损失之和。

  • start_logits (torch.FloatTensor of shape (batch_size, sequence_length)) — 跨度起始得分 (SoftMax 之前)。

  • end_logits (torch.FloatTensor of shape (batch_size, sequence_length)) — 跨度结束得分 (SoftMax 之前)。

  • hidden_states (tuple(torch.FloatTensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — torch.FloatTensor 的元组 (如果模型具有嵌入层,则为嵌入的输出 + 每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每层输出以及可选的初始嵌入输出处的隐藏状态。

  • attentions (tuple(torch.FloatTensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — torch.FloatTensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

XLMRobertaForQuestionAnswering 的 forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, XLMRobertaForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("deepset/roberta-base-squad2")
>>> model = XLMRobertaForQuestionAnswering.from_pretrained("deepset/roberta-base-squad2")

>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"

>>> inputs = tokenizer(question, text, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> answer_start_index = outputs.start_logits.argmax()
>>> answer_end_index = outputs.end_logits.argmax()

>>> predict_answer_tokens = inputs.input_ids[0, answer_start_index : answer_end_index + 1]
>>> tokenizer.decode(predict_answer_tokens, skip_special_tokens=True)
' puppet'

>>> # target is "nice puppet"
>>> target_start_index = torch.tensor([14])
>>> target_end_index = torch.tensor([15])

>>> outputs = model(**inputs, start_positions=target_start_index, end_positions=target_end_index)
>>> loss = outputs.loss
>>> round(loss.item(), 2)
0.86
TensorFlow
隐藏 TensorFlow 内容

TFXLMRobertaModel

class transformers.TFXLMRobertaModel

< >

( config *inputs **kwargs )

参数

  • config (XLMRobertaConfig) — 带有模型所有参数的模型配置类。 使用配置文件初始化不会加载与模型关联的权重,仅加载配置。 查看 from_pretrained() 方法来加载模型权重。

裸 XLM RoBERTa 模型转换器输出原始隐藏状态,顶部没有任何特定的 head。

此模型继承自 TFPreTrainedModel。 查看超类文档以获取库为其所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 keras.Model 子类。 将其用作常规 TF 2.0 Keras 模型,并参阅 TF 2.0 文档以了解与常规用法和行为相关的所有事项。

transformers 中的 TensorFlow 模型和层接受两种格式作为输入

  • 将所有输入作为关键字参数(如 PyTorch 模型),或
  • 将所有输入作为第一个位置参数中的列表、元组或字典。

支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。 由于这种支持,当使用诸如 model.fit() 之类的方法时,对于您来说,事情应该“正常工作” - 只需以 model.fit() 支持的任何格式传递您的输入和标签即可! 但是,如果您想在 Keras 方法(如 fit()predict())之外使用第二种格式,例如在使用 Keras Functional API 创建您自己的层或模型时,您可以使用以下三种可能性来收集第一个位置参数中的所有输入张量

  • 仅使用 input_ids 的单个张量,而没有其他内容:model(input_ids)
  • 具有一个或多个输入张量的可变长度列表,顺序与文档字符串中给出的顺序相同:model([input_ids, attention_mask])model([input_ids, attention_mask, token_type_ids])
  • 一个字典,其中一个或多个输入张量与文档字符串中给出的输入名称相关联:model({"input_ids": input_ids, "token_type_ids": token_type_ids})

请注意,当使用 子类化 创建模型和层时,您无需担心任何这些问题,因为您可以像对待任何其他 Python 函数一样传递输入!

call

< >

( input_ids: TFModelInputType | None = None attention_mask: np.ndarray | tf.Tensor | None = None token_type_ids: np.ndarray | tf.Tensor | None = None position_ids: np.ndarray | tf.Tensor | None = None head_mask: np.ndarray | tf.Tensor | None = None inputs_embeds: np.ndarray | tf.Tensor | None = None encoder_hidden_states: np.ndarray | tf.Tensor | None = None encoder_attention_mask: np.ndarray | tf.Tensor | None = None past_key_values: Optional[Tuple[Tuple[Union[np.ndarray, tf.Tensor]]]] = None use_cache: Optional[bool] = None output_attentions: Optional[bool] = None output_hidden_states: Optional[bool] = None return_dict: Optional[bool] = None training: Optional[bool] = False ) transformers.modeling_tf_outputs.TFBaseModelOutputWithPoolingAndCrossAttentionstuple(tf.Tensor)

参数

  • input_ids (Numpy arraytf.Tensor of shape (batch_size, sequence_length)) — 词汇表中输入序列 tokens 的索引。 索引可以使用 AutoTokenizer 获得。 有关详细信息,请参阅 PreTrainedTokenizer.call()PreTrainedTokenizer.encode()什么是输入 IDs?
  • attention_mask (Numpy arraytf.Tensor of shape (batch_size, sequence_length), optional) — 掩码,用于避免在 padding token 索引上执行 attention。 掩码值在 [0, 1] 中选择:

  • token_type_ids (Numpy arraytf.Tensor of shape (batch_size, sequence_length), optional) — 分段 token 索引,用于指示输入的第一部分和第二部分。 索引在 [0, 1] 中选择:

  • position_ids (Numpy arraytf.Tensor of shape (batch_size, sequence_length), optional) — 每个输入序列 token 在位置嵌入中的位置索引。 在范围 [0, config.max_position_embeddings - 1] 中选择。 什么是位置 IDs?
  • head_mask (Numpy arraytf.Tensor of shape (num_heads,)(num_layers, num_heads), optional) — 用于使 self-attention 模块的选定 head 无效的掩码。 掩码值在 [0, 1] 中选择:

    • 1 表示 head 未被掩盖
    • 0 表示 head 被掩盖
  • inputs_embeds (tf.Tensor of shape (batch_size, sequence_length, hidden_size), optional) — (可选)您可以选择直接传递嵌入表示,而不是传递 input_ids。 如果您希望比模型的内部嵌入查找矩阵更精细地控制如何将 input_ids 索引转换为关联的向量,这将非常有用。
  • output_attentions (bool, optional) — 是否返回所有 attention 层的 attention 张量。 更多细节请查看返回张量下的 attentions。 此参数只能在即时模式下使用,在图模式下将使用配置中的值。
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。 更多细节请查看返回张量下的 hidden_states。 此参数只能在即时模式下使用,在图模式下将使用配置中的值。
  • return_dict (bool, optional) — 是否返回一个 ModelOutput 而不是一个普通的元组。 此参数可以在即时模式下使用,在图模式下该值将始终设置为 True。
  • training (bool, optional, defaults to False) — 是否在训练模式下使用模型(某些模块,如 dropout 模块,在训练和评估之间具有不同的行为)。
  • encoder_hidden_states (tf.Tensor of shape (batch_size, sequence_length, hidden_size), optional) — 编码器最后一层输出的隐藏状态序列。 如果模型配置为解码器,则在 cross-attention 中使用。
  • encoder_attention_mask (tf.Tensor of shape (batch_size, sequence_length), optional) — 掩码,用于避免对编码器输入的 padding token 索引执行 attention。 如果模型配置为解码器,则此掩码在 cross-attention 中使用。 掩码值在 [0, 1] 中选择:

    • 1 表示 tokens 未被掩盖
    • 0 表示 tokens 被掩盖
  • past_key_values (长度为 config.n_layersTuple[Tuple[tf.Tensor]]) — 包含 attention 模块的预计算的键和值 hidden states。可用于加速解码。如果使用了 past_key_values,用户可以选择仅输入最后一次的 decoder_input_ids (那些没有将其 past key value states 提供给此模型的) ,形状为 (batch_size, 1),而不是形状为 (batch_size, sequence_length) 的所有 decoder_input_ids
  • use_cache (bool, 可选, 默认为 True) — 如果设置为 True,则返回 past_key_values 键值状态,并可用于加速解码 (参见 past_key_values)。训练期间设置为 False,生成期间设置为 True

返回值

transformers.modeling_tf_outputs.TFBaseModelOutputWithPoolingAndCrossAttentionstuple(tf.Tensor)

一个 transformers.modeling_tf_outputs.TFBaseModelOutputWithPoolingAndCrossAttentionstf.Tensor 的元组 (如果传递了 return_dict=False 或者当 config.return_dict=False 时),包含取决于配置 (XLMRobertaConfig) 和输入的各种元素。

  • last_hidden_state (形状为 (batch_size, sequence_length, hidden_size)tf.Tensor) — 模型最后一层的输出处的 hidden-states 序列。

  • pooler_output (形状为 (batch_size, hidden_size)tf.Tensor) — 序列的第一个 token (分类 token) 的最后一层 hidden-state,通过 Linear 层和 Tanh 激活函数进一步处理。Linear 层的权重在预训练期间从下一句预测 (分类) 目标中训练而来。

    此输出通常不是输入语义内容的良好摘要,通常最好对整个输入序列的 hidden-states 序列进行平均或池化。

  • past_key_values (List[tf.Tensor]可选,当传递 use_cache=True 或当 config.use_cache=True 时返回) — 长度为 config.n_layerstf.Tensor 列表,每个 tensor 的形状为 (2, batch_size, num_heads, sequence_length, embed_size_per_head))。

    包含预计算的隐藏状态 (注意力模块中的键和值),这些状态可以用于 (参见 past_key_values 输入) 加速顺序解码。

  • hidden_states (tuple(tf.Tensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — tf.Tensor 的元组 (embeddings 的输出一个,每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(tf.Tensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — tf.Tensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

  • cross_attentions (tuple(tf.Tensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — tf.Tensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    解码器的交叉注意力层的注意力权重,在注意力 softmax 之后,用于计算交叉注意力头中的加权平均值。

TFXLMRobertaModel forward 方法,重写了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, TFXLMRobertaModel
>>> import tensorflow as tf

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = TFXLMRobertaModel.from_pretrained("FacebookAI/xlm-roberta-base")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="tf")
>>> outputs = model(inputs)

>>> last_hidden_states = outputs.last_hidden_state

TFXLMRobertaForCausalLM

class transformers.TFXLMRobertaForCausalLM

< >

( config: XLMRobertaConfig *inputs **kwargs )

参数

  • config (XLMRobertaConfig) — 具有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,而只会加载配置。查看 from_pretrained() 方法以加载模型权重。

XLM-RoBERTa 模型,顶部带有用于 CLM 微调的 language modeling 头。

此模型继承自 TFPreTrainedModel。 查看超类文档以获取库为其所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 keras.Model 子类。 将其用作常规 TF 2.0 Keras 模型,并参阅 TF 2.0 文档以了解与常规用法和行为相关的所有事项。

transformers 中的 TensorFlow 模型和层接受两种格式作为输入

  • 将所有输入作为关键字参数(如 PyTorch 模型),或
  • 将所有输入作为第一个位置参数中的列表、元组或字典。

支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。 由于这种支持,当使用诸如 model.fit() 之类的方法时,对于您来说,事情应该“正常工作” - 只需以 model.fit() 支持的任何格式传递您的输入和标签即可! 但是,如果您想在 Keras 方法(如 fit()predict())之外使用第二种格式,例如在使用 Keras Functional API 创建您自己的层或模型时,您可以使用以下三种可能性来收集第一个位置参数中的所有输入张量

  • 仅使用 input_ids 的单个张量,而没有其他内容:model(input_ids)
  • 具有一个或多个输入张量的可变长度列表,顺序与文档字符串中给出的顺序相同:model([input_ids, attention_mask])model([input_ids, attention_mask, token_type_ids])
  • 一个字典,其中一个或多个输入张量与文档字符串中给出的输入名称相关联:model({"input_ids": input_ids, "token_type_ids": token_type_ids})

请注意,当使用 子类化 创建模型和层时,您无需担心任何这些问题,因为您可以像对待任何其他 Python 函数一样传递输入!

call

< >

( input_ids: TFModelInputType | None = None attention_mask: np.ndarray | tf.Tensor | None = None token_type_ids: np.ndarray | tf.Tensor | None = None position_ids: np.ndarray | tf.Tensor | None = None head_mask: np.ndarray | tf.Tensor | None = None inputs_embeds: np.ndarray | tf.Tensor | None = None encoder_hidden_states: np.ndarray | tf.Tensor | None = None encoder_attention_mask: np.ndarray | tf.Tensor | None = None past_key_values: Optional[Tuple[Tuple[Union[np.ndarray, tf.Tensor]]]] = None use_cache: Optional[bool] = None output_attentions: Optional[bool] = None output_hidden_states: Optional[bool] = None return_dict: Optional[bool] = None labels: np.ndarray | tf.Tensor | None = None training: Optional[bool] = False ) transformers.modeling_tf_outputs.TFCausalLMOutputWithCrossAttentionstuple(tf.Tensor)

参数

  • input_ids (形状为 (batch_size, sequence_length)Numpy arraytf.Tensor) — 输入序列 token 在词汇表中的索引。可以使用 AutoTokenizer 获取索引。 有关详细信息,请参见 PreTrainedTokenizer.call()PreTrainedTokenizer.encode()什么是 input IDs?
  • attention_mask (形状为 (batch_size, sequence_length)Numpy arraytf.Tensor, 可选) — 用于避免在 padding token 索引上执行 attention 的 Mask。Mask 值在 [0, 1] 中选择:

  • token_type_ids (形状为 (batch_size, sequence_length)Numpy arraytf.Tensor, 可选) — Segment token 索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

  • position_ids (形状为 (batch_size, sequence_length)Numpy arraytf.Tensor, 可选) — 每个输入序列 token 在 position embeddings 中的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。 什么是 position IDs?
  • head_mask (形状为 (num_heads,)(num_layers, num_heads)Numpy arraytf.Tensor, 可选) — 用于 nullify self-attention 模块的选定 head 的 Mask。Mask 值在 [0, 1] 中选择:

    • 1 表示 head 未被 mask
    • 0 表示 head 已被 mask
  • inputs_embeds (形状为 (batch_size, sequence_length, hidden_size)tf.Tensor, 可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您想比模型的内部 embedding 查找矩阵更好地控制如何将 input_ids 索引转换为关联向量,这将非常有用。
  • output_attentions (bool, 可选) — 是否返回所有 attention 层的 attentions tensors。 有关更多详细信息,请参见返回的 tensors 下的 attentions。此参数只能在即时模式下使用,在图模式下将使用 config 中的值。
  • output_hidden_states (bool, 可选) — 是否返回所有层的 hidden states。 有关更多详细信息,请参见返回的 tensors 下的 hidden_states。此参数只能在即时模式下使用,在图模式下将使用 config 中的值。
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是普通元组。此参数可以在即时模式下使用,在图模式下该值将始终设置为 True。
  • training (bool, 可选, 默认为 False) — 是否在训练模式下使用模型 (dropout 模块等某些模块在训练和评估之间具有不同的行为)。
  • encoder_hidden_states (形状为 (batch_size, sequence_length, hidden_size)tf.Tensor, 可选) — encoder 最后一层输出处的 hidden-states 序列。如果在模型配置为 decoder 时,则在 cross-attention 中使用。
  • encoder_attention_mask (形状为 (batch_size, sequence_length)tf.Tensor, 可选) — Mask,用于避免对 encoder 输入的 padding token 索引执行 attention。如果模型配置为 decoder,则此 mask 在 cross-attention 中使用。Mask 值在 [0, 1] 中选择:

    • 1 表示 token 未被 mask
    • 0 表示 token 已被 mask
  • past_key_values (长度为 config.n_layersTuple[Tuple[tf.Tensor]]) — 包含 attention 模块的预计算的键和值 hidden states。可用于加速解码。如果使用了 past_key_values,用户可以选择仅输入最后一次的 decoder_input_ids (那些没有将其 past key value states 提供给此模型的) ,形状为 (batch_size, 1),而不是形状为 (batch_size, sequence_length) 的所有 decoder_input_ids
  • use_cache (bool, 可选, 默认为 True) — 如果设置为 True,则返回 past_key_values 键值状态,并可用于加速解码 (参见 past_key_values)。训练期间设置为 False,生成期间设置为 True
  • labels (tf.Tensornp.ndarray,形状为 (batch_size, sequence_length)可选) — 用于计算交叉熵分类损失的标签。索引应在 [0, ..., config.vocab_size - 1] 范围内。

返回值

transformers.modeling_tf_outputs.TFCausalLMOutputWithCrossAttentionstuple(tf.Tensor)

一个 transformers.modeling_tf_outputs.TFCausalLMOutputWithCrossAttentions 或一个 tf.Tensor 元组(如果传递了 return_dict=False 或者当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • loss (tf.Tensor,形状为 (n,)可选,当提供 labels 时返回,其中 n 是非掩码标签的数量) — 语言建模损失(用于预测下一个词元)。

  • logits (tf.Tensor,形状为 (batch_size, sequence_length, config.vocab_size)) — 语言建模头的预测分数(SoftMax 之前每个词汇表词元的分数)。

  • hidden_states (tuple(tf.Tensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — tf.Tensor 的元组 (embeddings 的输出一个,每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(tf.Tensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — tf.Tensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

  • cross_attentions (tuple(tf.Tensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — tf.Tensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    解码器的交叉注意力层的注意力权重,在注意力 softmax 之后,用于计算交叉注意力头中的加权平均值。

  • past_key_values (List[tf.Tensor]可选,当传递 use_cache=True 或当 config.use_cache=True 时返回) — 长度为 config.n_layerstf.Tensor 列表,每个 tensor 的形状为 (2, batch_size, num_heads, sequence_length, embed_size_per_head))。

    包含预计算的隐藏状态 (注意力模块中的键和值),这些状态可以用于 (参见 past_key_values 输入) 加速顺序解码。

TFXLMRobertaForCausalLM 的 forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, TFXLMRobertaForCausalLM
>>> import tensorflow as tf

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = TFXLMRobertaForCausalLM.from_pretrained("FacebookAI/xlm-roberta-base")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="tf")
>>> outputs = model(inputs)
>>> logits = outputs.logits

TFXLMRobertaForMaskedLM

class transformers.TFXLMRobertaForMaskedLM

< >

( config *inputs **kwargs )

参数

  • config (XLMRobertaConfig) — 带有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

带有 language modeling 头的 XLM RoBERTa 模型。

此模型继承自 TFPreTrainedModel。 查看超类文档以获取库为其所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 keras.Model 子类。 将其用作常规 TF 2.0 Keras 模型,并参阅 TF 2.0 文档以了解与常规用法和行为相关的所有事项。

transformers 中的 TensorFlow 模型和层接受两种格式作为输入

  • 将所有输入作为关键字参数(如 PyTorch 模型),或
  • 将所有输入作为第一个位置参数中的列表、元组或字典。

支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。 由于这种支持,当使用诸如 model.fit() 之类的方法时,对于您来说,事情应该“正常工作” - 只需以 model.fit() 支持的任何格式传递您的输入和标签即可! 但是,如果您想在 Keras 方法(如 fit()predict())之外使用第二种格式,例如在使用 Keras Functional API 创建您自己的层或模型时,您可以使用以下三种可能性来收集第一个位置参数中的所有输入张量

  • 仅使用 input_ids 的单个张量,而没有其他内容:model(input_ids)
  • 具有一个或多个输入张量的可变长度列表,顺序与文档字符串中给出的顺序相同:model([input_ids, attention_mask])model([input_ids, attention_mask, token_type_ids])
  • 一个字典,其中一个或多个输入张量与文档字符串中给出的输入名称相关联:model({"input_ids": input_ids, "token_type_ids": token_type_ids})

请注意,当使用 子类化 创建模型和层时,您无需担心任何这些问题,因为您可以像对待任何其他 Python 函数一样传递输入!

call

< >

( input_ids: TFModelInputType | None = None attention_mask: np.ndarray | tf.Tensor | None = None token_type_ids: np.ndarray | tf.Tensor | None = None position_ids: np.ndarray | tf.Tensor | None = None head_mask: np.ndarray | tf.Tensor | None = None inputs_embeds: np.ndarray | tf.Tensor | None = None output_attentions: Optional[bool] = None output_hidden_states: Optional[bool] = None return_dict: Optional[bool] = None labels: np.ndarray | tf.Tensor | None = None training: Optional[bool] = False ) transformers.modeling_tf_outputs.TFMaskedLMOutputtuple(tf.Tensor)

参数

  • input_ids (形状为 (batch_size, sequence_length)Numpy arraytf.Tensor) — 词汇表中输入序列词元的索引。可以使用 AutoTokenizer 获得索引。 有关详细信息,请参阅 PreTrainedTokenizer.call()PreTrainedTokenizer.encode()什么是输入 ID?
  • attention_mask (形状为 (batch_size, sequence_length)Numpy arraytf.Tensor可选) — 用于避免在填充词元索引上执行注意力的掩码。掩码值在 [0, 1] 中选择:

  • token_type_ids (形状为 (batch_size, sequence_length)Numpy arraytf.Tensor可选) — 分段词元索引,用于指示输入的第一部分和第二部分。索引在 [0, 1] 中选择:

  • position_ids (形状为 (batch_size, sequence_length)Numpy arraytf.Tensor可选) — 每个输入序列词元在位置嵌入中的位置索引。在 [0, config.max_position_embeddings - 1] 范围内选择。 什么是位置 ID?
  • head_mask (形状为 (num_heads,)(num_layers, num_heads)Numpy arraytf.Tensor可选) — 用于使自注意力模块的选定头无效的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示头未被掩码
    • 0 表示头被掩码
  • inputs_embeds (形状为 (batch_size, sequence_length, hidden_size)tf.Tensor可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您希望比模型的内部嵌入查找矩阵更精细地控制如何将 input_ids 索引转换为关联的向量,这将非常有用。
  • output_attentions (bool可选) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的 attentions。此参数只能在 eager 模式下使用,在 graph 模式下将使用配置中的值。
  • output_hidden_states (bool可选) — 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的 hidden_states。此参数只能在 eager 模式下使用,在 graph 模式下将使用配置中的值。
  • return_dict (bool可选) — 是否返回 ModelOutput 而不是普通元组。此参数可以在 eager 模式下使用,在 graph 模式下,该值将始终设置为 True。
  • training (bool可选,默认为 False) — 是否在训练模式下使用模型(某些模块(如 dropout 模块)在训练和评估之间具有不同的行为)。
  • labels (tf.Tensor,形状为 (batch_size, sequence_length)可选) — 用于计算掩码语言建模损失的标签。索引应在 [-100, 0, ..., config.vocab_size] 范围内(请参阅 input_ids 文档字符串)。索引设置为 -100 的词元将被忽略(掩码),损失仅针对标签在 [0, ..., config.vocab_size] 范围内的词元计算。

返回值

transformers.modeling_tf_outputs.TFMaskedLMOutputtuple(tf.Tensor)

一个 transformers.modeling_tf_outputs.TFMaskedLMOutput 或一个 tf.Tensor 元组(如果传递了 return_dict=False 或者当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • loss (tf.Tensor,形状为 (n,)可选,当提供 labels 时返回,其中 n 是非掩码标签的数量) — 掩码语言建模 (MLM) 损失。

  • logits (tf.Tensor,形状为 (batch_size, sequence_length, config.vocab_size)) — 语言建模头的预测分数(SoftMax 之前每个词汇表词元的分数)。

  • hidden_states (tuple(tf.Tensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — tf.Tensor 的元组 (embeddings 的输出一个,每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(tf.Tensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — tf.Tensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

TFXLMRobertaForMaskedLM 的 forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, TFXLMRobertaForMaskedLM
>>> import tensorflow as tf

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = TFXLMRobertaForMaskedLM.from_pretrained("FacebookAI/xlm-roberta-base")

>>> inputs = tokenizer("The capital of France is <mask>.", return_tensors="tf")
>>> logits = model(**inputs).logits

>>> # retrieve index of <mask>
>>> mask_token_index = tf.where((inputs.input_ids == tokenizer.mask_token_id)[0])
>>> selected_logits = tf.gather_nd(logits[0], indices=mask_token_index)

>>> predicted_token_id = tf.math.argmax(selected_logits, axis=-1)
>>> tokenizer.decode(predicted_token_id)
' Paris'
>>> labels = tokenizer("The capital of France is Paris.", return_tensors="tf")["input_ids"]
>>> # mask labels of non-<mask> tokens
>>> labels = tf.where(inputs.input_ids == tokenizer.mask_token_id, labels, -100)

>>> outputs = model(**inputs, labels=labels)
>>> round(float(outputs.loss), 2)
0.1

TFXLMRobertaForSequenceClassification

class transformers.TFXLMRobertaForSequenceClassification

< >

( config *inputs **kwargs )

参数

  • config (XLMRobertaConfig) — 带有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

带有序列分类/回归头的 XLM RoBERTa 模型转换器(池化输出顶部的线性层),例如用于 GLUE 任务。

此模型继承自 TFPreTrainedModel。 查看超类文档以获取库为其所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 keras.Model 子类。 将其用作常规 TF 2.0 Keras 模型,并参阅 TF 2.0 文档以了解与常规用法和行为相关的所有事项。

transformers 中的 TensorFlow 模型和层接受两种格式作为输入

  • 将所有输入作为关键字参数(如 PyTorch 模型),或
  • 将所有输入作为第一个位置参数中的列表、元组或字典。

支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。 由于这种支持,当使用诸如 model.fit() 之类的方法时,对于您来说,事情应该“正常工作” - 只需以 model.fit() 支持的任何格式传递您的输入和标签即可! 但是,如果您想在 Keras 方法(如 fit()predict())之外使用第二种格式,例如在使用 Keras Functional API 创建您自己的层或模型时,您可以使用以下三种可能性来收集第一个位置参数中的所有输入张量

  • 仅使用 input_ids 的单个张量,而没有其他内容:model(input_ids)
  • 具有一个或多个输入张量的可变长度列表,顺序与文档字符串中给出的顺序相同:model([input_ids, attention_mask])model([input_ids, attention_mask, token_type_ids])
  • 一个字典,其中一个或多个输入张量与文档字符串中给出的输入名称相关联:model({"input_ids": input_ids, "token_type_ids": token_type_ids})

请注意,当使用 子类化 创建模型和层时,您无需担心任何这些问题,因为您可以像对待任何其他 Python 函数一样传递输入!

call

< >

( input_ids: TFModelInputType | None = None attention_mask: np.ndarray | tf.Tensor | None = None token_type_ids: np.ndarray | tf.Tensor | None = None position_ids: np.ndarray | tf.Tensor | None = None head_mask: np.ndarray | tf.Tensor | None = None inputs_embeds: np.ndarray | tf.Tensor | None = None output_attentions: Optional[bool] = None output_hidden_states: Optional[bool] = None return_dict: Optional[bool] = None labels: np.ndarray | tf.Tensor | None = None training: Optional[bool] = False ) transformers.modeling_tf_outputs.TFSequenceClassifierOutput or tuple(tf.Tensor)

参数

  • input_ids (Numpy arraytf.Tensor,形状为 (batch_size, sequence_length)) — 词汇表中输入序列 tokens 的索引。索引可以使用 AutoTokenizer 获得。 参见 PreTrainedTokenizer.call()PreTrainedTokenizer.encode() 以了解详情。 什么是输入 IDs?
  • attention_mask (Numpy arraytf.Tensor,形状为 (batch_size, sequence_length)可选) — 用于避免在 padding token 索引上执行 attention 的掩码。 Mask values 在 [0, 1] 中选择:

  • token_type_ids (Numpy arraytf.Tensor,形状为 (batch_size, sequence_length)可选) — Segment token 索引,用于指示输入的第一部分和第二部分。索引在 [0, 1] 中选择:

  • position_ids (Numpy arraytf.Tensor,形状为 (batch_size, sequence_length)可选) — 每个输入序列 token 在 position embeddings 中的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。 什么是 position IDs?
  • head_mask (Numpy arraytf.Tensor,形状为 (num_heads,)(num_layers, num_heads)可选) — 用于 nullify self-attention 模块中选定的 heads 的掩码。 Mask values 在 [0, 1] 中选择:

    • 1 表示 head 未被掩码
    • 0 表示 head 已被掩码
  • inputs_embeds (tf.Tensor,形状为 (batch_size, sequence_length, hidden_size)可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。 如果您想要比模型的内部嵌入查找矩阵更精细地控制如何将 input_ids 索引转换为关联的向量,这将非常有用。
  • output_attentions (bool, 可选) — 是否返回所有 attention 层的 attentions tensors。 有关更多详细信息,请参见返回的 tensors 下的 attentions。 此参数只能在 eager 模式下使用,在 graph 模式下将使用 config 中的值。
  • output_hidden_states (bool, 可选) — 是否返回所有层的 hidden states。 有关更多详细信息,请参见返回的 tensors 下的 hidden_states。 此参数只能在 eager 模式下使用,在 graph 模式下将使用 config 中的值。
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是 plain tuple。 此参数可以在 eager 模式下使用,在 graph 模式下该值将始终设置为 True。
  • training (bool, 可选, 默认为 False) — 是否在训练模式下使用模型(某些模块,如 dropout 模块,在训练和评估之间具有不同的行为)。
  • labels (tf.Tensor,形状为 (batch_size,)可选) — 用于计算序列分类/回归损失的标签。 索引应在 [0, ..., config.num_labels - 1] 中。 如果 config.num_labels == 1,则计算回归损失(均方误差损失),如果 config.num_labels > 1,则计算分类损失(交叉熵损失)。

返回值

transformers.modeling_tf_outputs.TFSequenceClassifierOutputtuple(tf.Tensor)

transformers.modeling_tf_outputs.TFSequenceClassifierOutputtf.Tensor 的 tuple (如果传递了 return_dict=False 或当 config.return_dict=False 时),其中包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • loss (tf.Tensor,形状为 (batch_size, )可选,当提供 labels 时返回) — 分类(或回归,如果 config.num_labels==1)损失。

  • logits (tf.Tensor,形状为 (batch_size, config.num_labels)) — 分类(或回归,如果 config.num_labels==1)得分(在 SoftMax 之前)。

  • hidden_states (tuple(tf.Tensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — tf.Tensor 的元组 (embeddings 的输出一个,每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(tf.Tensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — tf.Tensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

TFXLMRobertaForSequenceClassification forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, TFXLMRobertaForSequenceClassification
>>> import tensorflow as tf

>>> tokenizer = AutoTokenizer.from_pretrained("cardiffnlp/twitter-roberta-base-emotion")
>>> model = TFXLMRobertaForSequenceClassification.from_pretrained("cardiffnlp/twitter-roberta-base-emotion")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="tf")

>>> logits = model(**inputs).logits

>>> predicted_class_id = int(tf.math.argmax(logits, axis=-1)[0])
>>> model.config.id2label[predicted_class_id]
'optimism'
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = TFXLMRobertaForSequenceClassification.from_pretrained("cardiffnlp/twitter-roberta-base-emotion", num_labels=num_labels)

>>> labels = tf.constant(1)
>>> loss = model(**inputs, labels=labels).loss
>>> round(float(loss), 2)
0.08

TFXLMRobertaForMultipleChoice

class transformers.TFXLMRobertaForMultipleChoice

< >

( config *inputs **kwargs )

参数

  • config (XLMRobertaConfig) — 带有模型所有参数的模型配置类。 使用配置文件初始化不会加载与模型关联的权重,而只会加载配置。 查看 from_pretrained() 方法以加载模型权重。

XLM Roberta 模型,顶部带有多项选择分类头(池化输出顶部的一个线性层和一个 softmax),例如用于 RocStories/SWAG 任务。

此模型继承自 TFPreTrainedModel。 查看超类文档以获取库为其所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 keras.Model 子类。 将其用作常规 TF 2.0 Keras 模型,并参阅 TF 2.0 文档以了解与常规用法和行为相关的所有事项。

transformers 中的 TensorFlow 模型和层接受两种格式作为输入

  • 将所有输入作为关键字参数(如 PyTorch 模型),或
  • 将所有输入作为第一个位置参数中的列表、元组或字典。

支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。 由于这种支持,当使用诸如 model.fit() 之类的方法时,对于您来说,事情应该“正常工作” - 只需以 model.fit() 支持的任何格式传递您的输入和标签即可! 但是,如果您想在 Keras 方法(如 fit()predict())之外使用第二种格式,例如在使用 Keras Functional API 创建您自己的层或模型时,您可以使用以下三种可能性来收集第一个位置参数中的所有输入张量

  • 仅使用 input_ids 的单个张量,而没有其他内容:model(input_ids)
  • 具有一个或多个输入张量的可变长度列表,顺序与文档字符串中给出的顺序相同:model([input_ids, attention_mask])model([input_ids, attention_mask, token_type_ids])
  • 一个字典,其中一个或多个输入张量与文档字符串中给出的输入名称相关联:model({"input_ids": input_ids, "token_type_ids": token_type_ids})

请注意,当使用 子类化 创建模型和层时,您无需担心任何这些问题,因为您可以像对待任何其他 Python 函数一样传递输入!

call

< >

( input_ids: TFModelInputType | None = None attention_mask: np.ndarray | tf.Tensor | None = None token_type_ids: np.ndarray | tf.Tensor | None = None position_ids: np.ndarray | tf.Tensor | None = None head_mask: np.ndarray | tf.Tensor | None = None inputs_embeds: np.ndarray | tf.Tensor | None = None output_attentions: Optional[bool] = None output_hidden_states: Optional[bool] = None return_dict: Optional[bool] = None labels: np.ndarray | tf.Tensor | None = None training: Optional[bool] = False ) transformers.modeling_tf_outputs.TFMultipleChoiceModelOutputtuple(tf.Tensor)

参数

  • input_ids (Numpy arraytf.Tensor,形状为 (batch_size, num_choices, sequence_length)) — 词汇表中输入序列 tokens 的索引。索引可以使用 AutoTokenizer 获得。 参见 PreTrainedTokenizer.call()PreTrainedTokenizer.encode() 以了解详情。 什么是输入 IDs?
  • attention_mask (Numpy arraytf.Tensor,形状为 (batch_size, num_choices, sequence_length)可选) — 用于避免在 padding token 索引上执行 attention 的掩码。 Mask values 在 [0, 1] 中选择:

  • token_type_ids (Numpy arraytf.Tensor,形状为 (batch_size, num_choices, sequence_length)可选) — Segment token 索引,用于指示输入的第一部分和第二部分。索引在 [0, 1] 中选择:

  • position_ids (Numpy arraytf.Tensor,形状为 (batch_size, num_choices, sequence_length)可选) — 每个输入序列 token 在 position embeddings 中的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。 什么是 position IDs?
  • head_mask (Numpy arraytf.Tensor,形状为 (num_heads,)(num_layers, num_heads)可选) — 用于 nullify self-attention 模块中选定的 heads 的掩码。 Mask values 在 [0, 1] 中选择:

    • 1 表示 head 未被掩码
    • 0 表示 head 已被掩码
  • inputs_embeds (tf.Tensor,形状为 (batch_size, num_choices, sequence_length, hidden_size)可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。 如果您想要比模型的内部嵌入查找矩阵更精细地控制如何将 input_ids 索引转换为关联的向量,这将非常有用。
  • output_attentions (bool, 可选) — 是否返回所有 attention 层的 attentions tensors。 有关更多详细信息,请参见返回的 tensors 下的 attentions。 此参数只能在 eager 模式下使用,在 graph 模式下将使用 config 中的值。
  • output_hidden_states (bool, 可选) — 是否返回所有层的 hidden states。 有关更多详细信息,请参见返回的 tensors 下的 hidden_states。 此参数只能在 eager 模式下使用,在 graph 模式下将使用 config 中的值。
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是 plain tuple。 此参数可以在 eager 模式下使用,在 graph 模式下该值将始终设置为 True。
  • training (bool, optional, defaults to False) — 是否在训练模式下使用模型(dropout 模块等某些模块在训练和评估之间具有不同的行为)。
  • labels (tf.Tensor of shape (batch_size,), optional) — 用于计算多项选择分类损失的标签。索引应在 [0, ..., num_choices] 中,其中 num_choices 是输入张量第二个维度的大小。(参见上面的 input_ids

返回值

transformers.modeling_tf_outputs.TFMultipleChoiceModelOutputtuple(tf.Tensor)

一个 transformers.modeling_tf_outputs.TFMultipleChoiceModelOutput 或一个 tf.Tensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • loss (tf.Tensor of shape (batch_size, ), optional, 当提供 labels 时返回) — 分类损失。

  • logits (tf.Tensor of shape (batch_size, num_choices)) — num_choices 是输入张量的第二个维度。(参见上面的 input_ids)。

    分类得分(在 SoftMax 之前)。

  • hidden_states (tuple(tf.Tensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — tf.Tensor 的元组 (embeddings 的输出一个,每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(tf.Tensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — tf.Tensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

TFXLMRobertaForMultipleChoice 前向传播方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, TFXLMRobertaForMultipleChoice
>>> import tensorflow as tf

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = TFXLMRobertaForMultipleChoice.from_pretrained("FacebookAI/xlm-roberta-base")

>>> prompt = "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced."
>>> choice0 = "It is eaten with a fork and a knife."
>>> choice1 = "It is eaten while held in the hand."

>>> encoding = tokenizer([prompt, prompt], [choice0, choice1], return_tensors="tf", padding=True)
>>> inputs = {k: tf.expand_dims(v, 0) for k, v in encoding.items()}
>>> outputs = model(inputs)  # batch size is 1

>>> # the linear classifier still needs to be trained
>>> logits = outputs.logits

TFXLMRobertaForTokenClassification

class transformers.TFXLMRobertaForTokenClassification

< >

( config *inputs **kwargs )

参数

  • config (XLMRobertaConfig) — 带有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看 from_pretrained() 方法来加载模型权重。

XLM RoBERTa 模型,顶部带有一个 token 分类头(隐藏状态输出顶部的线性层),例如用于命名实体识别 (NER) 任务。

此模型继承自 TFPreTrainedModel。 查看超类文档以获取库为其所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 keras.Model 子类。 将其用作常规 TF 2.0 Keras 模型,并参阅 TF 2.0 文档以了解与常规用法和行为相关的所有事项。

transformers 中的 TensorFlow 模型和层接受两种格式作为输入

  • 将所有输入作为关键字参数(如 PyTorch 模型),或
  • 将所有输入作为第一个位置参数中的列表、元组或字典。

支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。 由于这种支持,当使用诸如 model.fit() 之类的方法时,对于您来说,事情应该“正常工作” - 只需以 model.fit() 支持的任何格式传递您的输入和标签即可! 但是,如果您想在 Keras 方法(如 fit()predict())之外使用第二种格式,例如在使用 Keras Functional API 创建您自己的层或模型时,您可以使用以下三种可能性来收集第一个位置参数中的所有输入张量

  • 仅使用 input_ids 的单个张量,而没有其他内容:model(input_ids)
  • 具有一个或多个输入张量的可变长度列表,顺序与文档字符串中给出的顺序相同:model([input_ids, attention_mask])model([input_ids, attention_mask, token_type_ids])
  • 一个字典,其中一个或多个输入张量与文档字符串中给出的输入名称相关联:model({"input_ids": input_ids, "token_type_ids": token_type_ids})

请注意,当使用 子类化 创建模型和层时,您无需担心任何这些问题,因为您可以像对待任何其他 Python 函数一样传递输入!

call

< >

( input_ids: TFModelInputType | None = None attention_mask: np.ndarray | tf.Tensor | None = None token_type_ids: np.ndarray | tf.Tensor | None = None position_ids: np.ndarray | tf.Tensor | None = None head_mask: np.ndarray | tf.Tensor | None = None inputs_embeds: np.ndarray | tf.Tensor | None = None output_attentions: Optional[bool] = None output_hidden_states: Optional[bool] = None return_dict: Optional[bool] = None labels: np.ndarray | tf.Tensor | None = None training: Optional[bool] = False ) transformers.modeling_tf_outputs.TFTokenClassifierOutputtuple(tf.Tensor)

参数

  • input_ids (Numpy arraytf.Tensor of shape (batch_size, sequence_length)) — 词汇表中输入序列 token 的索引。可以使用 AutoTokenizer 获取索引。 有关详细信息,请参见 PreTrainedTokenizer.call()PreTrainedTokenizer.encode()什么是输入 IDs?
  • attention_mask (Numpy arraytf.Tensor of shape (batch_size, sequence_length), optional) — 掩码,用于避免对 padding token 索引执行 attention。Mask values selected in [0, 1]:

  • token_type_ids (Numpy arraytf.Tensor of shape (batch_size, sequence_length), optional) — 分段 token 索引,用于指示输入的第一部分和第二部分。索引在 [0, 1] 中选择:

  • position_ids (Numpy arraytf.Tensor of shape (batch_size, sequence_length), optional) — 每个输入序列 token 在位置嵌入中的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。什么是 position IDs?
  • head_mask (Numpy arraytf.Tensor of shape (num_heads,) or (num_layers, num_heads), optional) — 用于置空自注意力模块的选定 head 的掩码。Mask values selected in [0, 1]:

    • 1 表示 head 未被掩码
    • 0 表示 head 已被掩码
  • inputs_embeds (tf.Tensor of shape (batch_size, sequence_length, hidden_size), optional) — (可选)您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您希望比模型的内部嵌入查找矩阵更精细地控制如何将 input_ids 索引转换为关联的向量,这将非常有用。
  • output_attentions (bool, optional) — 是否返回所有 attention 层的 attentions 张量。 有关更多详细信息,请参见返回张量下的 attentions。此参数只能在即时模式下使用,在图模式下将使用配置中的值。
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。 有关更多详细信息,请参见返回张量下的 hidden_states。此参数只能在即时模式下使用,在图模式下将使用配置中的值。
  • return_dict (bool, optional) — 是否返回 ModelOutput 而不是普通元组。此参数可以在即时模式下使用,在图模式下该值将始终设置为 True。
  • training (bool, optional, defaults to False) — 是否在训练模式下使用模型(dropout 模块等某些模块在训练和评估之间具有不同的行为)。
  • labels (tf.Tensor of shape (batch_size, sequence_length), optional) — 用于计算 token 分类损失的标签。索引应在 [0, ..., config.num_labels - 1] 中。

返回值

transformers.modeling_tf_outputs.TFTokenClassifierOutputtuple(tf.Tensor)

一个 transformers.modeling_tf_outputs.TFTokenClassifierOutput 或一个 tf.Tensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • loss (tf.Tensor of shape (n,), optional, 其中 n 是未掩码标签的数量,当提供 labels 时返回) — 分类损失。

  • logits (tf.Tensor of shape (batch_size, sequence_length, config.num_labels)) — 分类得分(在 SoftMax 之前)。

  • hidden_states (tuple(tf.Tensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — tf.Tensor 的元组 (embeddings 的输出一个,每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(tf.Tensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — tf.Tensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

TFXLMRobertaForTokenClassification 前向传播方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, TFXLMRobertaForTokenClassification
>>> import tensorflow as tf

>>> tokenizer = AutoTokenizer.from_pretrained("ydshieh/roberta-large-ner-english")
>>> model = TFXLMRobertaForTokenClassification.from_pretrained("ydshieh/roberta-large-ner-english")

>>> inputs = tokenizer(
...     "HuggingFace is a company based in Paris and New York", add_special_tokens=False, return_tensors="tf"
... )

>>> logits = model(**inputs).logits
>>> predicted_token_class_ids = tf.math.argmax(logits, axis=-1)

>>> # Note that tokens are classified rather then input words which means that
>>> # there might be more predicted token classes than words.
>>> # Multiple token classes might account for the same word
>>> predicted_tokens_classes = [model.config.id2label[t] for t in predicted_token_class_ids[0].numpy().tolist()]
>>> predicted_tokens_classes
['O', 'ORG', 'ORG', 'O', 'O', 'O', 'O', 'O', 'LOC', 'O', 'LOC', 'LOC']
>>> labels = predicted_token_class_ids
>>> loss = tf.math.reduce_mean(model(**inputs, labels=labels).loss)
>>> round(float(loss), 2)
0.01

TFXLMRobertaForQuestionAnswering

class transformers.TFXLMRobertaForQuestionAnswering

< >

( config *inputs **kwargs )

参数

  • config (XLMRobertaConfig) — 带有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看 from_pretrained() 方法来加载模型权重。

XLM RoBERTa 模型,顶部带有一个 span 分类头,用于抽取式问答任务,如 SQuAD(隐藏状态输出顶部的线性层,用于计算 span start logitsspan end logits)。

此模型继承自 TFPreTrainedModel。 查看超类文档以获取库为其所有模型实现的通用方法(例如下载或保存、调整输入嵌入大小、剪枝 head 等)。

此模型也是 keras.Model 子类。 将其用作常规 TF 2.0 Keras 模型,并参阅 TF 2.0 文档以了解与常规用法和行为相关的所有事项。

transformers 中的 TensorFlow 模型和层接受两种格式作为输入

  • 将所有输入作为关键字参数(如 PyTorch 模型),或
  • 将所有输入作为第一个位置参数中的列表、元组或字典。

支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。 由于这种支持,当使用诸如 model.fit() 之类的方法时,对于您来说,事情应该“正常工作” - 只需以 model.fit() 支持的任何格式传递您的输入和标签即可! 但是,如果您想在 Keras 方法(如 fit()predict())之外使用第二种格式,例如在使用 Keras Functional API 创建您自己的层或模型时,您可以使用以下三种可能性来收集第一个位置参数中的所有输入张量

  • 仅使用 input_ids 的单个张量,而没有其他内容:model(input_ids)
  • 具有一个或多个输入张量的可变长度列表,顺序与文档字符串中给出的顺序相同:model([input_ids, attention_mask])model([input_ids, attention_mask, token_type_ids])
  • 一个字典,其中一个或多个输入张量与文档字符串中给出的输入名称相关联:model({"input_ids": input_ids, "token_type_ids": token_type_ids})

请注意,当使用 子类化 创建模型和层时,您无需担心任何这些问题,因为您可以像对待任何其他 Python 函数一样传递输入!

call

< >

( input_ids: TFModelInputType | None = None attention_mask: np.ndarray | tf.Tensor | None = None token_type_ids: np.ndarray | tf.Tensor | None = None position_ids: np.ndarray | tf.Tensor | None = None head_mask: np.ndarray | tf.Tensor | None = None inputs_embeds: np.ndarray | tf.Tensor | None = None output_attentions: Optional[bool] = None output_hidden_states: Optional[bool] = None return_dict: Optional[bool] = None start_positions: np.ndarray | tf.Tensor | None = None end_positions: np.ndarray | tf.Tensor | None = None training: Optional[bool] = False ) transformers.modeling_tf_outputs.TFQuestionAnsweringModelOutputtuple(tf.Tensor)

参数

  • input_ids (Numpy arraytf.Tensor of shape (batch_size, sequence_length)) — 词汇表中输入序列 token 的索引。可以使用 AutoTokenizer 获取索引。 有关详细信息,请参见 PreTrainedTokenizer.call()PreTrainedTokenizer.encode()什么是输入 IDs?
  • attention_mask (Numpy arraytf.Tensor,形状为 (batch_size, sequence_length), 可选) — 用于避免在 padding 标记索引上执行 attention 的掩码。掩码值在 [0, 1] 中选择:

  • token_type_ids (Numpy arraytf.Tensor,形状为 (batch_size, sequence_length), 可选) — 片段标记索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

  • position_ids (Numpy arraytf.Tensor,形状为 (batch_size, sequence_length), 可选) — 每个输入序列标记在位置嵌入中的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。 什么是 position IDs?
  • head_mask (Numpy arraytf.Tensor,形状为 (num_heads,)(num_layers, num_heads), 可选) — 用于置空自注意力模块中选定 head 的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示 head 未被掩盖
    • 0 表示 head 已被掩盖
  • inputs_embeds (tf.Tensor,形状为 (batch_size, sequence_length, hidden_size), 可选) — (可选)您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您希望比模型的内部嵌入查找矩阵更精细地控制如何将 input_ids 索引转换为关联向量,这将非常有用。
  • output_attentions (bool, 可选) — 是否返回所有 attention 层的 attention 张量。有关更多详细信息,请参阅返回张量下的 attentions。此参数只能在 eager 模式下使用,在 graph 模式下将使用 config 中的值。
  • output_hidden_states (bool, 可选) — 是否返回所有层的 hidden state。有关更多详细信息,请参阅返回张量下的 hidden_states。此参数只能在 eager 模式下使用,在 graph 模式下将使用 config 中的值。
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是纯元组。此参数可以在 eager 模式下使用,在 graph 模式下该值将始终设置为 True。
  • training (bool, 可选, 默认为 False) — 是否在训练模式下使用模型(某些模块(如 dropout 模块)在训练和评估之间具有不同的行为)。
  • start_positions (tf.Tensor,形状为 (batch_size,), 可选) — 用于计算标记分类损失的带标签跨度开始位置(索引)的标签。位置被限制在序列的长度 (sequence_length) 内。序列之外的位置不计入损失计算。
  • end_positions (tf.Tensor,形状为 (batch_size,), 可选) — 用于计算标记分类损失的带标签跨度结束位置(索引)的标签。位置被限制在序列的长度 (sequence_length) 内。序列之外的位置不计入损失计算。

返回值

transformers.modeling_tf_outputs.TFQuestionAnsweringModelOutputtuple(tf.Tensor)

一个 transformers.modeling_tf_outputs.TFQuestionAnsweringModelOutputtf.Tensor 的元组(如果传递 return_dict=False 或当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • loss (tf.Tensor,形状为 (batch_size, ), 可选, 当提供 start_positionsend_positions 时返回) — 总跨度提取损失是开始和结束位置的交叉熵之和。

  • start_logits (tf.Tensor,形状为 (batch_size, sequence_length)) — 跨度开始得分(在 SoftMax 之前)。

  • end_logits (tf.Tensor,形状为 (batch_size, sequence_length)) — 跨度结束得分(在 SoftMax 之前)。

  • hidden_states (tuple(tf.Tensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — tf.Tensor 的元组 (embeddings 的输出一个,每层输出一个),形状为 (batch_size, sequence_length, hidden_size)

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(tf.Tensor)可选,当传递 output_attentions=True 或当 config.output_attentions=True 时返回) — tf.Tensor 的元组 (每层一个),形状为 (batch_size, num_heads, sequence_length, sequence_length)

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

TFXLMRobertaForQuestionAnswering 前向方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, TFXLMRobertaForQuestionAnswering
>>> import tensorflow as tf

>>> tokenizer = AutoTokenizer.from_pretrained("ydshieh/roberta-base-squad2")
>>> model = TFXLMRobertaForQuestionAnswering.from_pretrained("ydshieh/roberta-base-squad2")

>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"

>>> inputs = tokenizer(question, text, return_tensors="tf")
>>> outputs = model(**inputs)

>>> answer_start_index = int(tf.math.argmax(outputs.start_logits, axis=-1)[0])
>>> answer_end_index = int(tf.math.argmax(outputs.end_logits, axis=-1)[0])

>>> predict_answer_tokens = inputs.input_ids[0, answer_start_index : answer_end_index + 1]
>>> tokenizer.decode(predict_answer_tokens)
' puppet'
>>> # target is "nice puppet"
>>> target_start_index = tf.constant([14])
>>> target_end_index = tf.constant([15])

>>> outputs = model(**inputs, start_positions=target_start_index, end_positions=target_end_index)
>>> loss = tf.math.reduce_mean(outputs.loss)
>>> round(float(loss), 2)
0.86
JAX
隐藏 JAX 内容

FlaxXLMRobertaModel

class transformers.FlaxXLMRobertaModel

< >

( config: XLMRobertaConfig input_shape: Tuple = (1, 1) seed: int = 0 dtype: dtype = <class 'jax.numpy.float32'> _do_init: bool = True gradient_checkpointing: bool = False **kwargs )

参数

  • config (XLMRobertaConfig) — 模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看 from_pretrained() 方法以加载模型权重。

裸 XLM RoBERTa 模型转换器输出原始隐藏状态,顶部没有任何特定的 head。

此模型继承自 FlaxPreTrainedModel。查看超类文档,了解库为其所有模型实现的通用方法(例如,从 PyTorch 模型下载、保存和转换权重)

此模型也是 flax.linen.Module 子类。将其用作常规 Flax linen Module,并参阅 Flax 文档,了解与常规用法和行为相关的所有事项。

最后,此模型支持固有的 JAX 功能,例如

__call__

< >

( input_ids attention_mask = None token_type_ids = None position_ids = None head_mask = None encoder_hidden_states = None encoder_attention_mask = None params: dict = None dropout_rng: PRNGKey = None train: bool = False output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None past_key_values: dict = None ) transformers.modeling_flax_outputs.FlaxBaseModelOutputWithPoolingtuple(torch.FloatTensor)

参数

  • input_ids (形状为 (batch_size, sequence_length)numpy.ndarray) — 词汇表中输入序列标记的索引。

    索引可以使用 AutoTokenizer 获得。有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是 input IDs?

  • attention_mask (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) — 用于避免在 padding 标记索引上执行 attention 的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示标记未被掩盖
    • 0 表示标记已被掩盖

    什么是 attention mask?

  • token_type_ids (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) — 片段标记索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

    • 0 对应于 句子 A 标记,
    • 1 对应于 句子 B 标记。

    什么是 token type IDs?

  • position_ids (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) — 每个输入序列标记在位置嵌入中的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。
  • head_mask (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) -- 用于置空 attention 模块中选定 head 的掩码。掩码值在 [0, 1]` 中选择:

    • 1 表示 head 未被掩盖
    • 0 表示 head 已被掩盖
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是一个普通的元组。

返回值

transformers.modeling_flax_outputs.FlaxBaseModelOutputWithPooling or tuple(torch.FloatTensor)

一个 transformers.modeling_flax_outputs.FlaxBaseModelOutputWithPooling 或一个 torch.FloatTensor 元组 (如果传递了 return_dict=False 或者当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • last_hidden_state (形状为 (batch_size, sequence_length, hidden_size)jnp.ndarray) — 模型最后一层的输出端的隐藏状态序列。

  • pooler_output (形状为 (batch_size, hidden_size)jnp.ndarray) — 序列的第一个 token (分类 token) 的最后一层隐藏状态,通过线性层和 Tanh 激活函数进一步处理。线性层权重通过预训练期间的下一句预测 (分类) 目标进行训练。

  • hidden_states (tuple(jnp.ndarray), 可选, 当传递了 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — 形状为 (batch_size, sequence_length, hidden_size)jnp.ndarray 元组 (一个用于 embeddings 的输出 + 每个层的输出各一个)。

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(jnp.ndarray), 可选, 当传递了 output_attentions=True 或当 config.output_attentions=True 时返回) — 形状为 (batch_size, num_heads, sequence_length, sequence_length)jnp.ndarray 元组 (每层一个)。

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

FlaxXLMRobertaPreTrainedModel 的 forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, FlaxXLMRobertaModel

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = FlaxXLMRobertaModel.from_pretrained("FacebookAI/xlm-roberta-base")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="jax")
>>> outputs = model(**inputs)

>>> last_hidden_states = outputs.last_hidden_state

FlaxXLMRobertaForCausalLM

class transformers.FlaxXLMRobertaForCausalLM

< >

( config: XLMRobertaConfig input_shape: Tuple = (1, 1) seed: int = 0 dtype: dtype = <class 'jax.numpy.float32'> _do_init: bool = True gradient_checkpointing: bool = False **kwargs )

参数

  • config (XLMRobertaConfig) — 模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看 from_pretrained() 方法来加载模型权重。

XLM Roberta 模型,顶部带有一个语言建模头 (位于隐藏状态输出顶部的线性层),例如用于自回归任务。

此模型继承自 FlaxPreTrainedModel。查看超类文档,了解库为其所有模型实现的通用方法(例如,从 PyTorch 模型下载、保存和转换权重)

此模型也是 flax.linen.Module 子类。将其用作常规 Flax linen Module,并参阅 Flax 文档,了解与常规用法和行为相关的所有事项。

最后,此模型支持固有的 JAX 功能,例如

__call__

< >

( input_ids attention_mask = None token_type_ids = None position_ids = None head_mask = None encoder_hidden_states = None encoder_attention_mask = None params: dict = None dropout_rng: PRNGKey = None train: bool = False output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None past_key_values: dict = None ) transformers.modeling_flax_outputs.FlaxCausalLMOutputWithCrossAttentions or tuple(torch.FloatTensor)

参数

  • input_ids (形状为 (batch_size, sequence_length)numpy.ndarray) — 词汇表中输入序列 token 的索引。

    索引可以使用 AutoTokenizer 获得。 有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 IDs?

  • attention_mask (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) — 用于避免对 padding token 索引执行 attention 的 Mask。Mask 值在 [0, 1] 中选择:

    • 1 表示 token 未被 Mask
    • 0 表示 token 已被 Mask

    什么是 attention masks?

  • token_type_ids (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) — 分段 token 索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

    • 0 对应于 sentence A token,
    • 1 对应于 sentence B token。

    什么是 token type IDs?

  • position_ids (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) — 每个输入序列 token 在位置 embeddings 中的位置索引。在 [0, config.max_position_embeddings - 1] 范围内选择。
  • head_mask (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) -- 用于 nullify attention 模块的选定 head 的 Mask。Mask 值在 [0, 1] 中选择:

    • 1 表示 head 未被 Mask
    • 0 表示 head 已被 Mask
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是一个普通的元组。

返回值

transformers.modeling_flax_outputs.FlaxCausalLMOutputWithCrossAttentions or tuple(torch.FloatTensor)

一个 transformers.modeling_flax_outputs.FlaxCausalLMOutputWithCrossAttentions 或一个 torch.FloatTensor 元组 (如果传递了 return_dict=False 或者当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • logits (形状为 (batch_size, sequence_length, config.vocab_size)jnp.ndarray) — 语言建模头的预测分数 (每个词汇 token 在 SoftMax 之前的分数)。

  • hidden_states (tuple(jnp.ndarray), 可选, 当传递了 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — 形状为 (batch_size, sequence_length, hidden_size)jnp.ndarray 元组 (一个用于 embeddings 的输出 + 每个层的输出各一个)。

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(jnp.ndarray), 可选, 当传递了 output_attentions=True 或当 config.output_attentions=True 时返回) — 形状为 (batch_size, num_heads, sequence_length, sequence_length)jnp.ndarray 元组 (每层一个)。

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

  • cross_attentions (tuple(jnp.ndarray), 可选, 当传递了 output_attentions=True 或当 config.output_attentions=True 时返回) — 形状为 (batch_size, num_heads, sequence_length, sequence_length)jnp.ndarray 元组 (每层一个)。

    交叉注意力 softmax 之后的注意力权重,用于计算交叉注意力头中的加权平均值。

  • past_key_values (tuple(tuple(jnp.ndarray)), 可选, 当传递了 use_cache=True 或当 config.use_cache=True 时返回) — 长度为 config.n_layersjnp.ndarray 元组的元组,如果模型在 encoder-decoder 设置中使用,则每个元组包含 self-attention 和 cross-attention 层的缓存 key、value 状态。仅当 config.is_decoder = True 时相关。

    包含预计算的隐藏状态 (注意力模块中的键和值),这些状态可以用于 (参见 past_key_values 输入) 加速顺序解码。

FlaxXLMRobertaPreTrainedModel 的 forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, FlaxXLMRobertaForCausalLM

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = FlaxXLMRobertaForCausalLM.from_pretrained("FacebookAI/xlm-roberta-base")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="np")
>>> outputs = model(**inputs)

>>> # retrieve logts for next token
>>> next_token_logits = outputs.logits[:, -1]

FlaxXLMRobertaForMaskedLM

class transformers.FlaxXLMRobertaForMaskedLM

< >

( config: XLMRobertaConfig input_shape: Tuple = (1, 1) seed: int = 0 dtype: dtype = <class 'jax.numpy.float32'> _do_init: bool = True gradient_checkpointing: bool = False **kwargs )

参数

  • config (XLMRobertaConfig) — 模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型关联的权重,仅加载配置。查看 from_pretrained() 方法来加载模型权重。

带有 language modeling 头的 XLM RoBERTa 模型。

此模型继承自 FlaxPreTrainedModel。查看超类文档,了解库为其所有模型实现的通用方法(例如,从 PyTorch 模型下载、保存和转换权重)

此模型也是 flax.linen.Module 子类。将其用作常规 Flax linen Module,并参阅 Flax 文档,了解与常规用法和行为相关的所有事项。

最后,此模型支持固有的 JAX 功能,例如

__call__

< >

( input_ids attention_mask = None token_type_ids = None position_ids = None head_mask = None encoder_hidden_states = None encoder_attention_mask = None params: dict = None dropout_rng: PRNGKey = None train: bool = False output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None past_key_values: dict = None ) transformers.modeling_flax_outputs.FlaxBaseModelOutputWithPoolingtuple(torch.FloatTensor)

参数

  • input_ids (形状为 (batch_size, sequence_length)numpy.ndarray) — 词汇表中输入序列 token 的索引。

    索引可以使用 AutoTokenizer 获得。 有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 IDs?

  • attention_mask (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) — 用于避免对 padding token 索引执行 attention 的 Mask。Mask 值在 [0, 1] 中选择:

    • 1 表示 token 未被 Mask
    • 0 表示 token 已被 Mask

    什么是 attention masks?

  • token_type_ids (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) — 分段 token 索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

    • 0 对应于 sentence A token,
    • 1 对应于 sentence B token。

    什么是 token type IDs?

  • position_ids (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) — 每个输入序列 token 在位置 embeddings 中的位置索引。在 [0, config.max_position_embeddings - 1] 范围内选择。
  • head_mask (形状为 (batch_size, sequence_length)numpy.ndarray, 可选) -- 用于 nullify attention 模块的选定 head 的 Mask。Mask 值在 [0, 1] 中选择:

    • 1 表示 head 未被 Mask
    • 0 表示 head 已被 Mask
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是一个普通的元组。

返回值

transformers.modeling_flax_outputs.FlaxBaseModelOutputWithPooling or tuple(torch.FloatTensor)

一个 transformers.modeling_flax_outputs.FlaxBaseModelOutputWithPooling 或一个 torch.FloatTensor 元组 (如果传递了 return_dict=False 或者当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • last_hidden_state (形状为 (batch_size, sequence_length, hidden_size)jnp.ndarray) — 模型最后一层的输出端的隐藏状态序列。

  • pooler_output (形状为 (batch_size, hidden_size)jnp.ndarray) — 序列的第一个 token (分类 token) 的最后一层隐藏状态,通过线性层和 Tanh 激活函数进一步处理。线性层权重通过预训练期间的下一句预测 (分类) 目标进行训练。

  • hidden_states (tuple(jnp.ndarray), 可选, 当传递了 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — 形状为 (batch_size, sequence_length, hidden_size)jnp.ndarray 元组 (一个用于 embeddings 的输出 + 每个层的输出各一个)。

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(jnp.ndarray), 可选, 当传递了 output_attentions=True 或当 config.output_attentions=True 时返回) — 形状为 (batch_size, num_heads, sequence_length, sequence_length)jnp.ndarray 元组 (每层一个)。

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

FlaxXLMRobertaPreTrainedModel 的 forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, FlaxXLMRobertaForMaskedLM

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = FlaxXLMRobertaForMaskedLM.from_pretrained("FacebookAI/xlm-roberta-base")

>>> inputs = tokenizer("The capital of France is [MASK].", return_tensors="jax")

>>> outputs = model(**inputs)
>>> logits = outputs.logits

FlaxXLMRobertaForSequenceClassification

transformers.FlaxXLMRobertaForSequenceClassification

< >

( config: XLMRobertaConfig input_shape: Tuple = (1, 1) seed: int = 0 dtype: dtype = <class 'jax.numpy.float32'> _do_init: bool = True gradient_checkpointing: bool = False **kwargs )

参数

  • config (XLMRobertaConfig) — 带有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,仅加载配置。请查看 from_pretrained() 方法来加载模型权重。

XLM Roberta 模型转换器,顶部带有一个序列分类/回归头(池化输出顶部的线性层),例如用于 GLUE 任务。

此模型继承自 FlaxPreTrainedModel。查看超类文档,了解库为其所有模型实现的通用方法(例如,从 PyTorch 模型下载、保存和转换权重)

此模型也是 flax.linen.Module 子类。将其用作常规 Flax linen Module,并参阅 Flax 文档,了解与常规用法和行为相关的所有事项。

最后,此模型支持固有的 JAX 功能,例如

__call__

< >

( input_ids attention_mask = None token_type_ids = None position_ids = None head_mask = None encoder_hidden_states = None encoder_attention_mask = None params: dict = None dropout_rng: PRNGKey = None train: bool = False output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None past_key_values: dict = None ) transformers.modeling_flax_outputs.FlaxSequenceClassifierOutputtuple(torch.FloatTensor)

参数

  • input_ids (numpy.ndarray,形状为 (batch_size, sequence_length)) — 词汇表中输入序列 tokens 的索引。

    索引可以使用 AutoTokenizer 获得。 有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 IDs?

  • attention_mask (numpy.ndarray,形状为 (batch_size, sequence_length), 可选) — 避免在 padding token 索引上执行 attention 的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示 tokens 未被掩盖
    • 0 表示 tokens 已被掩盖

    什么是 attention 掩码?

  • token_type_ids (numpy.ndarray,形状为 (batch_size, sequence_length), 可选) — 分段 token 索引,用于指示输入的第一部分和第二部分。索引在 [0, 1] 中选择:

    • 0 对应于 句子 A token,
    • 1 对应于 句子 B token。

    什么是 token 类型 IDs?

  • position_ids (numpy.ndarray,形状为 (batch_size, sequence_length), 可选) — 每个输入序列 token 在位置嵌入中的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。
  • head_mask (numpy.ndarray,形状为 (batch_size, sequence_length), 可选) -- 用于 nullify attention 模块中选定 head 的掩码。掩码值在 [0, 1]` 中选择:

    • 1 表示 head 未被掩盖
    • 0 表示 head 已被掩盖
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是普通的 tuple。

返回值

transformers.modeling_flax_outputs.FlaxSequenceClassifierOutputtuple(torch.FloatTensor)

一个 transformers.modeling_flax_outputs.FlaxSequenceClassifierOutput 或一个 torch.FloatTensor 的 tuple (如果传递了 return_dict=False 或当 config.return_dict=False 时),其中包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • logits (jnp.ndarray,形状为 (batch_size, config.num_labels)) — 分类(或回归,如果 config.num_labels==1)分数(在 SoftMax 之前)。

  • hidden_states (tuple(jnp.ndarray), 可选, 当传递了 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — 形状为 (batch_size, sequence_length, hidden_size)jnp.ndarray 元组 (一个用于 embeddings 的输出 + 每个层的输出各一个)。

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(jnp.ndarray), 可选, 当传递了 output_attentions=True 或当 config.output_attentions=True 时返回) — 形状为 (batch_size, num_heads, sequence_length, sequence_length)jnp.ndarray 元组 (每层一个)。

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

FlaxXLMRobertaPreTrainedModel 的 forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, FlaxXLMRobertaForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = FlaxXLMRobertaForSequenceClassification.from_pretrained("FacebookAI/xlm-roberta-base")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="jax")

>>> outputs = model(**inputs)
>>> logits = outputs.logits

FlaxXLMRobertaForMultipleChoice

transformers.FlaxXLMRobertaForMultipleChoice

< >

( config: XLMRobertaConfig input_shape: Tuple = (1, 1) seed: int = 0 dtype: dtype = <class 'jax.numpy.float32'> _do_init: bool = True gradient_checkpointing: bool = False **kwargs )

参数

  • config (XLMRobertaConfig) — 带有模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重,仅加载配置。请查看 from_pretrained() 方法来加载模型权重。

XLM Roberta 模型,顶部带有多项选择分类头(池化输出顶部的一个线性层和一个 softmax),例如用于 RocStories/SWAG 任务。

此模型继承自 FlaxPreTrainedModel。查看超类文档,了解库为其所有模型实现的通用方法(例如,从 PyTorch 模型下载、保存和转换权重)

此模型也是 flax.linen.Module 子类。将其用作常规 Flax linen Module,并参阅 Flax 文档,了解与常规用法和行为相关的所有事项。

最后,此模型支持固有的 JAX 功能,例如

__call__

< >

( input_ids attention_mask = None token_type_ids = None position_ids = None head_mask = None encoder_hidden_states = None encoder_attention_mask = None params: dict = None dropout_rng: PRNGKey = None train: bool = False output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None past_key_values: dict = None ) transformers.modeling_flax_outputs.FlaxMultipleChoiceModelOutputtuple(torch.FloatTensor)

参数

  • input_ids (numpy.ndarray,形状为 (batch_size, num_choices, sequence_length)) — 词汇表中输入序列 tokens 的索引。

    索引可以使用 AutoTokenizer 获得。 有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 IDs?

  • attention_mask (numpy.ndarray,形状为 (batch_size, num_choices, sequence_length), 可选) — 避免在 padding token 索引上执行 attention 的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示 tokens 未被掩盖
    • 0 表示 tokens 已被掩盖

    什么是 attention 掩码?

  • token_type_ids (numpy.ndarray,形状为 (batch_size, num_choices, sequence_length), 可选) — 分段 token 索引,用于指示输入的第一部分和第二部分。索引在 [0, 1] 中选择:

    • 0 对应于 句子 A token,
    • 1 对应于 句子 B token。

    什么是 token 类型 IDs?

  • position_ids (numpy.ndarray,形状为 (batch_size, num_choices, sequence_length), 可选) — 每个输入序列 token 在位置嵌入中的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。
  • head_mask (numpy.ndarray,形状为 (batch_size, num_choices, sequence_length), 可选) -- 用于 nullify attention 模块中选定 head 的掩码。掩码值在 [0, 1]` 中选择:

    • 1 表示 head 未被掩盖
    • 0 表示 head 已被掩盖
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是普通的 tuple。

返回值

transformers.modeling_flax_outputs.FlaxMultipleChoiceModelOutputtuple(torch.FloatTensor)

一个 transformers.modeling_flax_outputs.FlaxMultipleChoiceModelOutput 或一个 torch.FloatTensor 的 tuple (如果传递了 return_dict=False 或当 config.return_dict=False 时),其中包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • logits (jnp.ndarray,形状为 (batch_size, num_choices)) — num_choices 是输入张量的第二个维度。(参见上面的 input_ids)。

    分类得分(在 SoftMax 之前)。

  • hidden_states (tuple(jnp.ndarray), 可选, 当传递了 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — 形状为 (batch_size, sequence_length, hidden_size)jnp.ndarray 元组 (一个用于 embeddings 的输出 + 每个层的输出各一个)。

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(jnp.ndarray), 可选, 当传递了 output_attentions=True 或当 config.output_attentions=True 时返回) — 形状为 (batch_size, num_heads, sequence_length, sequence_length)jnp.ndarray 元组 (每层一个)。

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

FlaxXLMRobertaPreTrainedModel 的 forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, FlaxXLMRobertaForMultipleChoice

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = FlaxXLMRobertaForMultipleChoice.from_pretrained("FacebookAI/xlm-roberta-base")

>>> prompt = "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced."
>>> choice0 = "It is eaten with a fork and a knife."
>>> choice1 = "It is eaten while held in the hand."

>>> encoding = tokenizer([prompt, prompt], [choice0, choice1], return_tensors="jax", padding=True)
>>> outputs = model(**{k: v[None, :] for k, v in encoding.items()})

>>> logits = outputs.logits

FlaxXLMRobertaForTokenClassification

transformers.FlaxXLMRobertaForTokenClassification

< >

( config: XLMRobertaConfig input_shape: Tuple = (1, 1) seed: int = 0 dtype: dtype = <class 'jax.numpy.float32'> _do_init: bool = True gradient_checkpointing: bool = False **kwargs )

参数

  • 配置 (XLMRobertaConfig) — 模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。请查看 from_pretrained() 方法来加载模型权重。

XLM Roberta 模型,顶部带有一个 token 分类头(隐藏状态输出顶部的线性层),例如用于命名实体识别 (NER) 任务。

此模型继承自 FlaxPreTrainedModel。查看超类文档,了解库为其所有模型实现的通用方法(例如,从 PyTorch 模型下载、保存和转换权重)

此模型也是 flax.linen.Module 子类。将其用作常规 Flax linen Module,并参阅 Flax 文档,了解与常规用法和行为相关的所有事项。

最后,此模型支持固有的 JAX 功能,例如

__call__

< >

( input_ids attention_mask = None token_type_ids = None position_ids = None head_mask = None encoder_hidden_states = None encoder_attention_mask = None params: dict = None dropout_rng: PRNGKey = None train: bool = False output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None past_key_values: dict = None ) transformers.modeling_flax_outputs.FlaxTokenClassifierOutputtuple(torch.FloatTensor)

参数

  • input_ids (形状为 (batch_size, sequence_length)numpy.ndarray) — 词汇表中输入序列 tokens 的索引。

    索引可以使用 AutoTokenizer 获得。有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 IDs?

  • attention_mask (形状为 (batch_size, sequence_length)numpy.ndarray, optional) — 用于避免在 padding token 索引上执行 attention 的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示 tokens 未被掩盖
    • 0 表示 tokens 被掩盖

    什么是 attention masks?

  • token_type_ids (形状为 (batch_size, sequence_length)numpy.ndarray, optional) — 分段 token 索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

    • 0 对应于 sentence A token,
    • 1 对应于 sentence B token。

    什么是 token type IDs?

  • position_ids (形状为 (batch_size, sequence_length)numpy.ndarray, optional) — 每个输入序列 token 在位置嵌入中的位置索引。在 [0, config.max_position_embeddings - 1] 范围内选择。
  • head_mask (形状为 (batch_size, sequence_length)numpy.ndarray, optional) -- 用于使 attention 模块的选定 head 无效的掩码。掩码值在 [0, 1]` 中选择:

    • 1 表示 head 未被掩盖
    • 0 表示 head 被掩盖
  • return_dict (bool, optional) — 是否返回 ModelOutput 而不是普通 tuple。

返回值

transformers.modeling_flax_outputs.FlaxTokenClassifierOutputtuple(torch.FloatTensor)

一个 transformers.modeling_flax_outputs.FlaxTokenClassifierOutput 或一个 torch.FloatTensor 的 tuple(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • logits (形状为 (batch_size, sequence_length, config.num_labels)jnp.ndarray) — 分类得分(SoftMax 之前)。

  • hidden_states (tuple(jnp.ndarray), 可选, 当传递了 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — 形状为 (batch_size, sequence_length, hidden_size)jnp.ndarray 元组 (一个用于 embeddings 的输出 + 每个层的输出各一个)。

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(jnp.ndarray), 可选, 当传递了 output_attentions=True 或当 config.output_attentions=True 时返回) — 形状为 (batch_size, num_heads, sequence_length, sequence_length)jnp.ndarray 元组 (每层一个)。

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

FlaxXLMRobertaPreTrainedModel 的 forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, FlaxXLMRobertaForTokenClassification

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = FlaxXLMRobertaForTokenClassification.from_pretrained("FacebookAI/xlm-roberta-base")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="jax")

>>> outputs = model(**inputs)
>>> logits = outputs.logits

FlaxXLMRobertaForQuestionAnswering

transformers.FlaxXLMRobertaForQuestionAnswering

< >

( config: XLMRobertaConfig input_shape: Tuple = (1, 1) seed: int = 0 dtype: dtype = <class 'jax.numpy.float32'> _do_init: bool = True gradient_checkpointing: bool = False **kwargs )

参数

  • 配置 (XLMRobertaConfig) — 模型配置类,包含模型的所有参数。使用配置文件初始化不会加载与模型相关的权重,只会加载配置。请查看 from_pretrained() 方法来加载模型权重。

XLM Roberta 模型,顶部带有一个 span 分类头,用于抽取式问答任务,如 SQuAD(隐藏状态输出顶部的线性层,用于计算 span start logitsspan end logits)。

此模型继承自 FlaxPreTrainedModel。查看超类文档,了解库为其所有模型实现的通用方法(例如,从 PyTorch 模型下载、保存和转换权重)

此模型也是 flax.linen.Module 子类。将其用作常规 Flax linen Module,并参阅 Flax 文档,了解与常规用法和行为相关的所有事项。

最后,此模型支持固有的 JAX 功能,例如

__call__

< >

( input_ids attention_mask = None token_type_ids = None position_ids = None head_mask = None encoder_hidden_states = None encoder_attention_mask = None params: dict = None dropout_rng: PRNGKey = None train: bool = False output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None past_key_values: dict = None ) transformers.modeling_flax_outputs.FlaxQuestionAnsweringModelOutputtuple(torch.FloatTensor)

参数

  • input_ids (形状为 (batch_size, sequence_length)numpy.ndarray) — 词汇表中输入序列 tokens 的索引。

    索引可以使用 AutoTokenizer 获得。有关详细信息,请参阅 PreTrainedTokenizer.encode()PreTrainedTokenizer.call()

    什么是输入 IDs?

  • attention_mask (形状为 (batch_size, sequence_length)numpy.ndarray, optional) — 用于避免在 padding token 索引上执行 attention 的掩码。掩码值在 [0, 1] 中选择:

    • 1 表示 tokens 未被掩盖
    • 0 表示 tokens 被掩盖

    什么是 attention masks?

  • token_type_ids (形状为 (batch_size, sequence_length)numpy.ndarray, optional) — 分段 token 索引,用于指示输入的第一个和第二个部分。索引在 [0, 1] 中选择:

    • 0 对应于 sentence A token,
    • 1 对应于 sentence B token。

    什么是 token type IDs?

  • position_ids (形状为 (batch_size, sequence_length)numpy.ndarray, optional) — 每个输入序列 token 在位置嵌入中的位置索引。在 [0, config.max_position_embeddings - 1] 范围内选择。
  • head_mask (形状为 (batch_size, sequence_length)numpy.ndarray, optional) -- 用于使 attention 模块的选定 head 无效的掩码。掩码值在 [0, 1]` 中选择:

    • 1 表示 head 未被掩盖
    • 0 表示 head 被掩盖
  • return_dict (bool, optional) — 是否返回 ModelOutput 而不是普通 tuple。

返回值

transformers.modeling_flax_outputs.FlaxQuestionAnsweringModelOutputtuple(torch.FloatTensor)

一个 transformers.modeling_flax_outputs.FlaxQuestionAnsweringModelOutput 或一个 torch.FloatTensor 的 tuple(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含各种元素,具体取决于配置 (XLMRobertaConfig) 和输入。

  • start_logits (形状为 (batch_size, sequence_length)jnp.ndarray) — Span-start 得分(SoftMax 之前)。

  • end_logits (形状为 (batch_size, sequence_length)jnp.ndarray) — Span-end 得分(SoftMax 之前)。

  • hidden_states (tuple(jnp.ndarray), 可选, 当传递了 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — 形状为 (batch_size, sequence_length, hidden_size)jnp.ndarray 元组 (一个用于 embeddings 的输出 + 每个层的输出各一个)。

    模型在每一层输出的 Hidden-states 加上初始 embedding 输出。

  • attentions (tuple(jnp.ndarray), 可选, 当传递了 output_attentions=True 或当 config.output_attentions=True 时返回) — 形状为 (batch_size, num_heads, sequence_length, sequence_length)jnp.ndarray 元组 (每层一个)。

    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

FlaxXLMRobertaPreTrainedModel 的 forward 方法,覆盖了 __call__ 特殊方法。

尽管 forward 传递的配方需要在该函数中定义,但应该在此之后调用 Module 实例,而不是此函数,因为前者负责运行预处理和后处理步骤,而后者则静默地忽略它们。

示例

>>> from transformers import AutoTokenizer, FlaxXLMRobertaForQuestionAnswering

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-roberta-base")
>>> model = FlaxXLMRobertaForQuestionAnswering.from_pretrained("FacebookAI/xlm-roberta-base")

>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"
>>> inputs = tokenizer(question, text, return_tensors="jax")

>>> outputs = model(**inputs)
>>> start_scores = outputs.start_logits
>>> end_scores = outputs.end_logits
< > 在 GitHub 上更新