Transformers 4.37 中文文档(二十三)(2)

简介: Transformers 4.37 中文文档(二十三)

Transformers 4.37 中文文档(二十三)(1)https://developer.aliyun.com/article/1563759


BertweetTokenizer

class transformers.BertweetTokenizer

<来源>

( vocab_file merges_file normalization = False bos_token = '<s>' eos_token = '</s>' sep_token = '</s>' cls_token = '<s>' unk_token = '<unk>' pad_token = '<pad>' mask_token = '<mask>' **kwargs )

参数

  • vocab_file (str) — 词汇文件的路径。
  • merges_file (str) — 合并文件的路径。
  • normalization (bool, optional, defaults to False) — 是否应用规范化预处理。
  • bos_token (str, optional, defaults to "") — 在预训练期间使用的序列开始标记。可用作序列分类器标记。
    在使用特殊标记构建序列时,这不是用于序列开头的标记。使用的标记是cls_token
  • eos_token (str, optional, defaults to "") — 序列结束标记。
    在使用特殊标记构建序列时,这不是用于序列结束的标记。使用的标记是sep_token
  • sep_token (str, optional, defaults to "") — 分隔符标记,在从多个序列构建序列时使用,例如用于序列分类的两个序列或用于问题回答的文本和问题。它还用作使用特殊标记构建的序列的最后一个标记。
  • cls_token (str, optional, defaults to "") — 用于进行序列分类时使用的分类器标记(对整个序列进行分类而不是每个标记进行分类)。在使用特殊标记构建时,它是序列的第一个标记。
  • unk_token (str, optional, defaults to "") — 未知标记。词汇表中不存在的标记无法转换为 ID,而是设置为此标记。
  • pad_token (str, optional, defaults to "") — 用于填充的标记,例如在批处理不同长度的序列时使用。
  • mask_token (str, optional, defaults to "") — 用于屏蔽值的标记。这是在使用掩码语言建模训练此模型时使用的标记。这是模型将尝试预测的标记。

构建一个使用字节对编码的 BERTweet 分词器。

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

add_from_file

<来源>

( f )

从文本文件加载预先存在的字典,并将其符号添加到此实例。

build_inputs_with_special_tokens

<来源>

( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]

参数

  • token_ids_0List[int])— 要添加特殊标记的 ID 列表。
  • token_ids_1List[int]可选)— 序列对的可选第二个 ID 列表。

返回

List[int]

带有适当特殊标记的 input IDs 列表。

从序列或序列对构建用于序列分类任务的模型输入,通过连接和添加特殊标记。BERTweet 序列的格式如下:

  • 单个序列: X
  • 序列对: A B
convert_tokens_to_string

<来源>

( tokens )

将一系列标记(字符串)转换为单个字符串。

create_token_type_ids_from_sequences

<来源>

( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]

参数

  • token_ids_0List[int])— ID 列表。
  • token_ids_1List[int]可选)— 序列对的可选第二个 ID 列表。

返回

List[int]

零列表。

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

get_special_tokens_mask

<来源>

( token_ids_0: List token_ids_1: Optional = None already_has_special_tokens: bool = False ) → export const metadata = 'undefined';List[int]

参数

  • token_ids_0List[int])— ID 列表。
  • token_ids_1List[int]可选)— 序列对的可选第二个 ID 列表。
  • already_has_special_tokensbool可选,默认为False)— 标记列表是否已经使用特殊标记格式化。

返回

List[int]

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

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

normalizeToken

<来源>

( token )

规范化推文中的标记

normalizeTweet

<来源>

( tweet )

规范化原始推文

BigBird

原文:huggingface.co/docs/transformers/v4.37.2/en/model_doc/big_bird

概述

BigBird 模型是由 Zaheer, Manzil 和 Guruganesh, Guru 和 Dubey, Kumar Avinava  和 Ainslie, Joshua 和 Alberti, Chris 和 Ontanon, Santiago 和 Pham, Philip 和  Ravula, Anirudh 和 Wang, Qifan 和 Yang, Li 等人在Big Bird: Transformers for Longer Sequences中提出的。BigBird  是一种基于稀疏注意力的变压器,它将基于 Transformer 的模型(如 BERT)扩展到更长的序列。除了稀疏注意力,BigBird  还将全局注意力以及随机注意力应用于输入序列。从理论上讲,已经证明应用稀疏、全局和随机注意力可以逼近完全注意力,同时对于更长的序列而言在计算上更加高效。由于具有处理更长上下文的能力,BigBird  在各种长文档 NLP 任务(如问答和摘要)上表现出比 BERT 或 RoBERTa 更好的性能。

论文摘要如下:

基于 Transformer 的模型,如  BERT,一直是自然语言处理中最成功的深度学习模型之一。不幸的是,它们的一个核心限制是由于完全注意机制导致的对序列长度的二次依赖(主要是在内存方面)。为了解决这个问题,我们提出了  BigBird,一种稀疏注意机制,将这种二次依赖降低到线性。我们展示了 BigBird  是序列函数的通用逼近器,并且是图灵完备的,从而保留了二次完全注意模型的这些属性。在此过程中,我们的理论分析揭示了具有 O(1)全局标记(如  CLS)的一些好处,这些标记作为稀疏注意机制的一部分关注整个序列。提出的稀疏注意机制可以处理比以前使用类似硬件可能的长度多 8  倍的序列。由于具有处理更长上下文的能力,BigBird 在各种 NLP  任务(如问答和摘要)上显着提高了性能。我们还提出了对基因组数据的新颖应用。

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

使用提示

  • 有关 BigBird 注意力工作的详细解释,请参阅此博客文章
  • BigBird 有两种实现:original_fullblock_sparse。对于序列长度<1024,建议使用original_full,因为使用block_sparse注意力没有好处。
  • 当前代码使用 3 个块和 2 个全局块的窗口大小。
  • 序列长度必须能够被块大小整除。
  • 当前实现仅支持ITC
  • 当前实现不支持num_random_blocks = 0
  • BigBird 是一个具有绝对位置嵌入的模型,因此通常建议在右侧而不是左侧填充输入。

资源

  • 文本分类任务指南
  • 标记分类任务指南
  • 问答任务指南
  • 因果语言建模任务指南
  • 掩码语言建模任务指南
  • 多项选择任务指南

BigBirdConfig

class transformers.BigBirdConfig

<来源>

( vocab_size = 50358 hidden_size = 768 num_hidden_layers = 12 num_attention_heads = 12 intermediate_size = 3072 hidden_act = 'gelu_new' hidden_dropout_prob = 0.1 attention_probs_dropout_prob = 0.1 max_position_embeddings = 4096 type_vocab_size = 2 initializer_range = 0.02 layer_norm_eps = 1e-12 use_cache = True pad_token_id = 0 bos_token_id = 1 eos_token_id = 2 sep_token_id = 66 attention_type = 'block_sparse' use_bias = True rescale_embeddings = False block_size = 64 num_random_blocks = 3 classifier_dropout = None **kwargs )

参数

  • vocab_size (int, optional, defaults to 50358) — BigBird 模型的词汇表大小。定义了在调用 BigBirdModel 时可以表示的不同标记数量。
  • hidden_size (int, optional, defaults to 768) — 编码器层和池化器层的维度。
  • num_hidden_layers (int, optional, defaults to 12) — Transformer 编码器中的隐藏层数。
  • num_attention_heads (int, optional, defaults to 12) — Transformer 编码器中每个注意力层的注意力头数。
  • intermediate_size (int, optional, defaults to 3072) — Transformer 编码器中“中间”(即前馈)层的维度。
  • hidden_act (str or function, optional, defaults to "gelu_new") — 编码器和池化器中的非线性激活函数(函数或字符串)。如果是字符串,支持 "gelu""relu""selu""gelu_new"
  • hidden_dropout_prob (float, optional, defaults to 0.1) — 嵌入、编码器和池化器中所有全连接层的 dropout 概率。
  • attention_probs_dropout_prob (float, optional, defaults to 0.1) — 注意力概率的 dropout 比率。
  • max_position_embeddings (int, optional, defaults to 4096) — 此模型可能使用的最大序列长度。通常设置为较大的值以防万一(例如,1024、2048 或 4096)。
  • type_vocab_size (int, optional, defaults to 2) — 在调用 BigBirdModel 时传递的 token_type_ids 的词汇表大小。
  • initializer_range (float, optional, defaults to 0.02) — 用于初始化所有权重矩阵的截断正态初始化器的标准差。
  • layer_norm_eps (float, optional, defaults to 1e-12) — 层归一化层使用的 epsilon。
  • is_decoder (bool, optional, defaults to False) — 模型是否用作解码器。如果为 False,则模型用作编码器。
  • use_cache (bool, optional, defaults to True) — 模型是否应返回最后的键/值注意力(并非所有模型都使用)。仅在 config.is_decoder=True 时相关。
  • attention_type (str, optional, defaults to "block_sparse") — 是否使用在论文中介绍的块稀疏注意力(具有 n 复杂度)或原始注意力层(具有 n² 复杂度)。可能的值为 "original_full""block_sparse"
  • use_bias (bool, optional, defaults to True) — 是否在查询、键、值中使用偏置。
  • rescale_embeddings (bool, optional, defaults to False) — 是否使用 (hidden_size ** 0.5) 重新缩放嵌入。
  • block_size (int, optional, defaults to 64) — 每个块的大小。仅在 attention_type == "block_sparse" 时有用。
  • num_random_blocks (int, optional, defaults to 3) — 每个查询将关注这么多个随机块。仅在 attention_type == "block_sparse" 时有用。
  • classifier_dropout (float, optional) — 分类头部的 dropout 比率。

这是一个配置类,用于存储 BigBirdModel 的配置。根据指定的参数实例化一个 BigBird 模型,定义模型架构。使用默认值实例化配置将产生类似于 BigBird google/bigbird-roberta-base 架构的配置。

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

示例:

>>> from transformers import BigBirdConfig, BigBirdModel
>>> # Initializing a BigBird google/bigbird-roberta-base style configuration
>>> configuration = BigBirdConfig()
>>> # Initializing a model (with random weights) from the google/bigbird-roberta-base style configuration
>>> model = BigBirdModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config

BigBirdTokenizer

class transformers.BigBirdTokenizer

< source >

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

参数

  • vocab_file (str) — 包含实例化分词器所需词汇表的SentencePiece文件(通常具有*.spm*扩展名)。
  • unk_token (str, 可选, 默认为 "") — 未知标记。词汇表中没有的标记无法转换为 ID,而是设置为此标记。
  • bos_token (str, 可选, 默认为 "") — 序列开始标记。
  • eos_token (str, 可选, 默认为 "") — 序列结束标记。
  • pad_token (str, 可选, 默认为 "") — 用于填充的标记,例如在批处理不同长度的序列时使用。
  • sep_token (str, 可选, 默认为 "[SEP]") — 分隔符标记,在构建来自多个序列的序列时使用,例如用于序列分类的两个序列或用于文本和问题的问题回答。它也用作带有特殊标记的序列的最后一个标记。
  • mask_token (str, 可选, 默认为 "[MASK]") — 用于屏蔽值的标记。这是在使用屏蔽语言建模训练此模型时使用的标记。这是模型将尝试预测的标记。
  • cls_token (str, 可选, 默认为 "[CLS]") — 分类器标记,用于进行序列分类(对整个序列进行分类,而不是每个标记进行分类)。在构建带有特殊标记的序列时,它是序列的第一个标记。
  • sp_model_kwargs (dict, 可选) — 将传递给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 为无限,并使用前向过滤和后向抽样算法从所有假设(格)中抽样。
  • alpha: 用于 unigram 抽样的平滑参数,以及 BPE-dropout 的合并操作的丢弃概率。

构建一个 BigBird 分词器。基于SentencePiece

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

build_inputs_with_special_tokens

< source >

( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]

参数

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

返回

List[int]

具有适当特殊标记的输入 ID 列表。

通过连接和添加特殊标记,为序列分类任务构建模型输入的序列或序列对。Big Bird 序列的格式如下:

  • 单个序列: [CLS] X [SEP]
  • 序列对: [CLS] A [SEP] B [SEP]
get_special_tokens_mask

<来源>

( token_ids_0: List token_ids_1: Optional = None already_has_special_tokens: bool = False ) → export const metadata = 'undefined';List[int]

参数

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

返回

List[int]

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

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

create_token_type_ids_from_sequences

<来源>

( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]

参数

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

返回

List[int]

根据给定序列的 标记类型 ID 列表。

从传递的两个序列创建一个用于序列对分类任务的掩码。BERT 序列对掩码的格式如下: :: 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 | 第一个序列 | 第二个序列 | 如果 token_ids_1None,则此方法仅返回掩码的第一部分(0)。

save_vocabulary

<来源>

( save_directory: str filename_prefix: Optional = None )

BigBirdTokenizerFast

class transformers.BigBirdTokenizerFast

<来源>

( vocab_file = None tokenizer_file = None unk_token = '<unk>' bos_token = '<s>' eos_token = '</s>' pad_token = '<pad>' sep_token = '[SEP]' mask_token = '[MASK]' cls_token = '[CLS]' **kwargs )

参数

  • vocab_file (str) — 包含实例化分词器所需词汇表的 SentencePiece 文件(通常具有 .spm 扩展名)。
  • bos_token (str, optional, defaults to "") — 在预训练期间使用的序列开头标记。可用作序列分类器标记。
    在使用特殊标记构建序列时,这不是用于序列开头的标记。使用的标记是 cls_token
  • eos_token (str, optional, defaults to "") — 序列结束标记。… 注意:: 在使用特殊标记构建序列时,这不是用于序列结束的标记。使用的标记是 sep_token
  • unk_token (str, optional, defaults to "") — 未知标记。词汇表中没有的标记无法转换为 ID,而是设置为此标记。
  • sep_token (str, optional, defaults to "[SEP]") — 分隔符标记,在从多个序列构建序列时使用,例如用于序列分类的两个序列或用于文本和问题的问题回答。它也用作使用特殊标记构建的序列的最后一个标记。
  • pad_token (str, optional, defaults to "") — 用于填充的标记,例如在批处理不同长度的序列时使用。
  • cls_token (str, optional, defaults to "[CLS]") — 在进行序列分类(整个序列而不是每个标记的分类)时使用的分类器标记。在使用特殊标记构建序列时,它是序列的第一个标记。
  • mask_token (str, optional, defaults to "[MASK]") — 用于屏蔽值的标记。在使用掩码语言建模训练此模型时使用的标记。这是模型将尝试预测的标记。

构建一个“快速” BigBird 分词器(由 HuggingFace 的 tokenizers 库支持)。基于 Unigram。此分词器继承自 PreTrainedTokenizerFast,其中包含大多数主要方法。用户应参考此超类以获取有关这些方法的更多信息

build_inputs_with_special_tokens

< source >

( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]

参数

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

返回

List[int]

具有适当特殊标记的 input IDs 列表。

通过连接和添加特殊标记,为序列分类任务构建一个序列或序列对的模型输入。一个 BigBird 序列具有以下格式:

  • 单个序列:[CLS] X [SEP]
  • 序列对:[CLS] A [SEP] B [SEP]
create_token_type_ids_from_sequences

< source >

( token_ids_0: List token_ids_1: Optional = None ) → export const metadata = 'undefined';List[int]

参数

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

返回

List[int]

根据给定序列的 token type IDs 列表。

从传递的两个序列创建一个用于序列对分类任务的掩码。一个 ALBERT

序列对掩码的格式如下:

0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
| first sequence    | second sequence |

如果 token_ids_1 为 None,则仅返回掩码的第一部分(0)。

get_special_tokens_mask

< source >

( token_ids_0: List token_ids_1: Optional = None already_has_special_tokens: bool = False ) → export const metadata = 'undefined';List[int]

参数

  • token_ids_0 (List[int]) — ID 列表。
  • token_ids_1 (List[int]可选) — 序列对的可选第二个 ID 列表。
  • already_has_special_tokens (bool可选,默认为 False) — 如果标记列表已经为模型格式化了特殊标记,则设置为 True

返回

List[int]

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

从没有添加特殊标记的标记列表中检索序列 ID。在使用 tokenizer 的 prepare_for_model 方法添加特殊标记时调用此方法。

BigBird 特定输出

class transformers.models.big_bird.modeling_big_bird.BigBirdForPreTrainingOutput

< source >

( loss: Optional = None prediction_logits: FloatTensor = None seq_relationship_logits: FloatTensor = None hidden_states: Optional = None attentions: Optional = None )

参数

  • loss可选,当提供 labels 时返回,形状为 (1,)torch.FloatTensor) — 作为被屏蔽的语言建模损失和下一个序列预测(分类)损失之和的总损失。
  • prediction_logits (torch.FloatTensor of shape (batch_size, sequence_length, config.vocab_size)) — 语言建模头部的预测分数(SoftMax 之前每个词汇标记的分数)。
  • seq_relationship_logits (torch.FloatTensor of shape (batch_size, 2)) — 下一个序列预测(分类)头部的预测分数(在 SoftMax 之前的 True/False 连续性分数)。
  • hidden_states (tuple(torch.FloatTensor)可选,当传递 output_hidden_states=True 或当 config.output_hidden_states=True 时返回) — 形状为 (batch_size, sequence_length, hidden_size)torch.FloatTensor 元组(一个用于嵌入的输出 + 一个用于每个层的输出)。
    每个层输出的模型隐藏状态加上初始嵌入输出。
  • attentions (tuple(torch.FloatTensor), optional, 当传递 output_attentions=Trueconfig.output_attentions=True 时返回) — 形状为 (batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor 元组(每层一个)。
    在注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

BigBirdForPreTraining 的输出类型。

PytorchHide Pytorch 内容

BigBirdModel

class transformers.BigBirdModel

< source >

( config add_pooling_layer = True )

参数

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

裸的 BigBird 模型变压器输出原始隐藏状态,没有特定的头部。该模型是 PyTorch torch.nn.Module 的子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有信息。

该模型可以作为编码器(仅具有自注意力)或解码器运行,此时在自注意力层之间添加了一个交叉注意力层,遵循 Attention is all you need 中描述的架构,作者为 Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit,  Llion Jones, Aidan N. Gomez, Lukasz Kaiser 和 Illia Polosukhin。

要作为解码器运行,模型需要使用配置中的 is_decoder 参数设置为 True 进行初始化。要在 Seq2Seq 模型中使用,模型需要使用 is_decoder 参数和 add_cross_attention 都设置为 True 进行初始化;然后预期将 encoder_hidden_states 作为输入传递。

forward

< source >

( input_ids: LongTensor = 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 ) → export const metadata = 'undefined';transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions or tuple(torch.FloatTensor)

参数

  • input_ids (torch.LongTensor of shape (batch_size, sequence_length)) — 词汇表中输入序列标记的索引。
    可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode() 和 PreTrainedTokenizer.call()。
    什么是输入 ID?
  • attention_mask (torch.FloatTensor of shape (batch_size, sequence_length), optional) — 避免在填充标记索引上执行注意力的掩码。掩码值选择在 [0, 1] 中:
  • 1 代表未被“masked”的标记,
  • 0 代表被masked的标记。
  • 什么是注意力掩码?
  • token_type_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — 段标记索引,指示输入的第一部分和第二部分。索引选择在 [0, 1] 中:
  • 0 对应于 句子 A 标记,
  • 1 对应于 句子 B 标记。
  • 什么是标记类型 ID?
  • position_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — 每个输入序列标记在位置嵌入中的位置索引。在范围 [0, config.max_position_embeddings - 1] 中选择。
    什么是位置 ID?
  • head_mask (torch.FloatTensor,形状为(num_heads,)(num_layers, num_heads)optional) — 用于使自注意力模块的选定头部失效的掩码。掩码值选取在[0, 1]
  • 1 表示头部未被掩码
  • 0 表示头部被掩码
  • inputs_embeds (torch.FloatTensor,形状为(batch_size, sequence_length, hidden_size)optional) — 可选地,可以直接传递嵌入表示而不是传递input_ids。如果要更好地控制如何将input_ids索引转换为相关向量,这很有用,而不是使用模型的内部嵌入查找矩阵。
  • output_attentions (booloptional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
  • output_hidden_states (booloptional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
  • return_dict (bool, optional) — 是否返回 ModelOutput 而不是普通元组。
  • encoder_hidden_states (torch.FloatTensor,形状为(batch_size, sequence_length, hidden_size)optional) — 编码器最后一层的隐藏状态序列。如果模型配置为解码器,则在交叉注意力中使用。
  • encoder_attention_mask (torch.FloatTensor,形状为(batch_size, sequence_length)optional) — 用于避免对编码器输入的填充标记索引执行注意力的掩码。如果模型配置为解码器,则在交叉注意力中使用。掩码值选取在[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, optional) — 如果设置为True,则返回past_key_values键值状态,可用于加速解码(参见past_key_values)。

返回

transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions 或tuple(torch.FloatTensor)

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

  • 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时返回) — 形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor元组(如果模型有嵌入层,则包括嵌入层的输出和每一层的输出)。
    模型在每一层输出的隐藏状态以及可选的初始嵌入输出。
  • attentions (tuple(torch.FloatTensor), 可选, 当传递output_attentions=True或者config.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组(每层一个)。
    注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。
  • cross_attentions (tuple(torch.FloatTensor), 可选, 当传递output_attentions=Trueconfig.add_cross_attention=True或者config.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组(每层一个)。
    解码器的交叉注意力层的注意力权重,在注意力 softmax 之后,用于计算交叉注意力头中的加权平均值。
  • past_key_values (tuple(tuple(torch.FloatTensor)), 可选, 当传递use_cache=True或者config.use_cache=True时返回) — 长度为config.n_layerstuple(torch.FloatTensor)元组,每个元组有 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输入)。

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

虽然前向传递的步骤需要在此函数内定义,但应该在此之后调用Module实例,而不是直接调用此函数,因为前者会处理运行前后处理步骤,而后者会默默地忽略它们。

示例:

>>> from transformers import AutoTokenizer, BigBirdModel
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("google/bigbird-roberta-base")
>>> model = BigBirdModel.from_pretrained("google/bigbird-roberta-base")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs)
>>> last_hidden_states = outputs.last_hidden_state

BigBirdForPreTraining

class transformers.BigBirdForPreTraining

<来源>

( config )

forward

<来源>

( input_ids: LongTensor = 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 next_sentence_label: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.big_bird.modeling_big_bird.BigBirdForPreTrainingOutput or tuple(torch.FloatTensor)

参数

  • input_ids (形状为(batch_size, sequence_length)的 torch.LongTensor) — 词汇表中输入序列标记的索引。
    可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call()。
    什么是输入 ID?
  • attention_mask (形状为(batch_size, sequence_length)的 torch.FloatTensor可选) — 避免在填充标记索引上执行注意力的掩码。掩码值选择在[0, 1]之间:
  • 对于未被masked的标记为 1。
  • 对于被masked的标记为 0。
  • 什么是注意力掩码?
  • token_type_ids (形状为(batch_size, sequence_length)的 torch.LongTensor可选) — 段标记索引,指示输入的第一部分和第二部分。索引选择在[0, 1]之间:
  • 0 对应于句子 A的标记,
  • 1 对应于句子 B的标记。
  • 什么是标记类型 ID?
  • position_ids(形状为(batch_size, sequence_length)torch.LongTensor可选)— 每个输入序列标记在位置嵌入中的位置索引。选择范围为[0, config.max_position_embeddings - 1]
    什么是位置 ID?
  • head_mask(形状为(num_heads,)(num_layers, num_heads)torch.FloatTensor可选)— 用于使自注意力模块的选定头部无效的掩码。选择的掩码值在[0, 1]内:
  • 1 表示头部未被掩码
  • 0 表示头部被掩码
  • inputs_embeds(形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor可选)— 可选地,您可以选择直接传递嵌入表示,而不是传递input_ids。如果您想要更多控制如何将input_ids索引转换为相关向量,这将很有用,而不是使用模型的内部嵌入查找矩阵。
  • output_attentionsbool可选)— 是否返回所有注意力层的注意力张量。有关更多详细信息,请参见返回张量下的attentions
  • output_hidden_statesbool可选)— 是否返回所有层的隐藏状态。有关更多详细信息,请参见返回张量下的hidden_states
  • return_dictbool可选)— 是否返回一个 ModelOutput 而不是一个普通的元组。
  • labels(形状为(batch_size, sequence_length)torch.LongTensor可选)— 用于计算掩码语言建模损失的标签。索引应在[-100, 0, ..., config.vocab_size]内(参见input_ids文档字符串)。索引设置为-100的标记将被忽略(掩码),损失仅计算具有标签在[0, ..., config.vocab_size]内的标记。
  • next_sentence_label(形状为(batch_size,)torch.LongTensor可选)— 用于计算下一个序列预测(分类)损失的标签。如果指定,nsp 损失将添加到 masked_lm 损失中。输入应为一个序列对(参见input_ids文档字符串)。索引应在[0, 1]内:
  • 0 表示序列 B 是序列 A 的延续,
  • 1 表示序列 B 是一个随机序列。
  • kwargsDict[str, any],可选,默认为*{}*)— 用于隐藏已弃用的旧参数的参数。

返回

transformers.models.big_bird.modeling_big_bird.BigBirdForPreTrainingOutput 或者tuple(torch.FloatTensor)

一个 transformers.models.big_bird.modeling_big_bird.BigBirdForPreTrainingOutput 或者一个torch.FloatTensor的元组(如果传递了return_dict=False或者config.return_dict=False时)包含不同的元素,取决于配置(BigBirdConfig)和输入。

  • loss可选,当提供labels时返回,形状为(1,)torch.FloatTensor)— 总损失,作为掩码语言建模损失和下一个序列预测(分类)损失的总和。
  • prediction_logits(形状为(batch_size, sequence_length, config.vocab_size)torch.FloatTensor)— 语言建模头的预测分数(SoftMax 之前每个词汇标记的分数)。
  • seq_relationship_logits(形状为(batch_size, 2)torch.FloatTensor)— 下一个序列预测(分类)头的预测分数(SoftMax 之前的 True/False 连续分数)。
  • hidden_statestuple(torch.FloatTensor)可选,当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回)—形状为(batch_size, sequence_length, hidden_size)torch.FloatTensor元组(一个用于嵌入的输出+一个用于每个层的输出)。
    模型在每一层的输出的隐藏状态加上初始嵌入输出。
  • attentionstuple(torch.FloatTensor)可选,当传递output_attentions=Trueconfig.output_attentions=True时返回)—形状为(batch_size, num_heads, sequence_length, sequence_length)torch.FloatTensor元组(每个层一个)。
    在自注意力头中用于计算加权平均值的注意力 softmax 后的注意力权重。

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

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

示例:

>>> from transformers import AutoTokenizer, BigBirdForPreTraining
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("google/bigbird-roberta-base")
>>> model = BigBirdForPreTraining.from_pretrained("google/bigbird-roberta-base")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs)
>>> prediction_logits = outputs.prediction_logits
>>> seq_relationship_logits = outputs.seq_relationship_logits


Transformers 4.37 中文文档(二十三)(3)https://developer.aliyun.com/article/1563764

相关文章
|
4月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(二十六)(4)
Transformers 4.37 中文文档(二十六)
32 1
|
4月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(二十六)(3)
Transformers 4.37 中文文档(二十六)
25 0
|
4月前
|
PyTorch 算法框架/工具 异构计算
Transformers 4.37 中文文档(二十二)(4)
Transformers 4.37 中文文档(二十二)
23 3
|
4月前
|
缓存 自然语言处理 PyTorch
Transformers 4.37 中文文档(二十二)(2)
Transformers 4.37 中文文档(二十二)
29 2
|
4月前
|
PyTorch 算法框架/工具 异构计算
Transformers 4.37 中文文档(二十二)(5)
Transformers 4.37 中文文档(二十二)
20 1
|
4月前
|
自然语言处理 PyTorch TensorFlow
Transformers 4.37 中文文档(二十二)(1)
Transformers 4.37 中文文档(二十二)
27 1
|
4月前
|
PyTorch TensorFlow API
Transformers 4.37 中文文档(二十二)(3)
Transformers 4.37 中文文档(二十二)
32 1
|
4月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(二十六)(5)
Transformers 4.37 中文文档(二十六)
22 1
|
4月前
|
缓存 自然语言处理 PyTorch
Transformers 4.37 中文文档(二十三)(3)
Transformers 4.37 中文文档(二十三)
23 0
|
4月前
|
存储 自然语言处理 PyTorch
Transformers 4.37 中文文档(二十三)(1)
Transformers 4.37 中文文档(二十三)
22 0