Transformers 4.37 中文文档(四十)(6)

简介: Transformers 4.37 中文文档(四十)

Transformers 4.37 中文文档(四十)(5)https://developer.aliyun.com/article/1564997


class transformers.models.longformer.modeling_tf_longformer.TFLongformerQuestionAnsweringModelOutput

<来源>

( loss: tf.Tensor | None = None start_logits: tf.Tensor = None end_logits: tf.Tensor = None hidden_states: Tuple[tf.Tensor] | None = None attentions: Tuple[tf.Tensor] | None = None global_attentions: Tuple[tf.Tensor] | None = None )

参数

  • loss(形状为(1,)tf.Tensor可选,在提供labels时返回)- 总跨度提取损失是起始位置和结束位置的交叉熵之和。
  • start_logits (tf.Tensor of shape (batch_size, sequence_length)) — 跨度开始得分(SoftMax 之前)。
  • end_logits (tf.Tensor of shape (batch_size, sequence_length)) — 跨度结束得分(SoftMax 之前)。
  • hidden_states (tuple(tf.Tensor)可选,当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回) — 形状为(batch_size, sequence_length, hidden_size)tf.Tensor元组(一个用于嵌入的输出 + 一个用于每一层的输出)。
    模型在每一层输出的隐藏状态加上初始嵌入输出。
  • attentions (tuple(tf.Tensor)可选,当传递output_attentions=Trueconfig.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, x + attention_window + 1)tf.Tensor元组(每层一个),其中x是具有全局注意力掩码的令牌数。在注意力 SoftMax 之后的局部注意力权重,用于计算自注意力头中的加权平均值。这些是来自序列中每个令牌到具有全局注意力的每个令牌(前x个值)和到注意力窗口中的每个令牌(剩余attention_window个值)的注意力权重。
  • 1值)。请注意,前x个值是指文本中具有固定位置的令牌,但剩余的attention_window + 1个值是指具有相对位置的令牌:令牌对自身的注意力权重位于索引x + attention_window / 2,前(后)attention_window / 2个值是对前(后)attention_window / 2个令牌的注意力权重。如果注意力窗口包含具有全局注意力的令牌,则相应索引处的注意力权重设置为 0;该值应从前x个注意力权重中访问。如果一个令牌具有全局注意力,则对attentions中的所有其他令牌的注意力权重设置为 0,应从global_attentions`中访问这些值。
  • global_attentions (tuple(tf.Tensor)可选,当传递output_attentions=Trueconfig.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, x)tf.Tensor元组(每层一个),其中x是具有全局注意力掩码的令牌数。
    在注意力 SoftMax 之后的全局注意力权重,用于计算自注意力头中的加权平均值。这些是来自具有全局注意力的每个令牌到序列中每个令牌的注意力权重。

用于问答 Longformer 模型输出的基类。

class transformers.models.longformer.modeling_tf_longformer.TFLongformerSequenceClassifierOutput

<来源>

( loss: tf.Tensor | None = None logits: tf.Tensor = None hidden_states: Tuple[tf.Tensor] | None = None attentions: Tuple[tf.Tensor] | None = None global_attentions: Tuple[tf.Tensor] | None = None )

参数

  • loss (tf.Tensor of shape (1,)可选,当提供labels时返回) — 分类(如果 config.num_labels==1 则为回归)损失。
  • logits (tf.Tensor of shape (batch_size, config.num_labels)) — 分类(如果 config.num_labels==1 则为回归)得分(SoftMax 之前)。
  • hidden_states (tuple(tf.Tensor)可选,当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回) — 形状为(batch_size, sequence_length, hidden_size)tf.Tensor元组(一个用于嵌入的输出 + 一个用于每一层的输出)。
    模型在每一层输出的隐藏状态加上初始嵌入输出。
  • attentions (tuple(tf.Tensor)可选,当传递output_attentions=Trueconfig.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, x + attention_window + 1)tf.Tensor元组(每层一个),其中x是具有全局注意力掩码的令牌数。在注意力 softmax 之后的局部注意力权重,用于计算自注意力头中的加权平均值。这些是来自序列中每个令牌到具有全局注意力的每个令牌(前x个值)和到注意力窗口中的每个令牌的注意力权重。
  • 1值)。请注意,前x个值是指文本中具有固定位置的令牌,但剩余的attention_window + 1值是指具有相对位置的令牌:令牌对自身的注意力权重位于索引x + attention_window / 2,前(后)attention_window / 2个值是对前(后)attention_window / 2个令牌的注意力权重。如果注意力窗口包含具有全局注意力的令牌,则相应索引处的注意力权重设置为 0;值应从前x个注意力权重中访问。如果一个令牌具有全局注意力,则对attentions中的所有其他令牌的注意力权重设置为 0,值应从global_attentions`中访问。
  • global_attentions (tuple(tf.Tensor), 可选的, 当传递output_attentions=True或当config.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, x)tf.Tensor元组(每层一个),其中x是具有全局注意力掩码的令牌数量。
    在注意力 softmax 之后的全局注意力权重,用于计算自注意力头中的加权平均值。这些是来自每个令牌的全局注意力到序列中每个令牌的注意力权重。

句子分类模型输出的基类。

class transformers.models.longformer.modeling_tf_longformer.TFLongformerMultipleChoiceModelOutput

来源

( loss: tf.Tensor | None = None logits: tf.Tensor = None hidden_states: Tuple[tf.Tensor] | None = None attentions: Tuple[tf.Tensor] | None = None global_attentions: Tuple[tf.Tensor] | None = None )

参数

  • loss (tf.Tensor,形状为*(1,)*,可选的,当提供labels时返回) — 分类损失。
  • logits (tf.Tensor,形状为(batch_size, num_choices)) — num_choices是输入张量的第二维度。(参见上面的input_ids)。
    分类得分(SoftMax 之前)。
  • hidden_states (tuple(tf.Tensor), 可选的, 当传递output_hidden_states=True或当config.output_hidden_states=True时返回) — 形状为(batch_size, sequence_length, hidden_size)tf.Tensor元组(一个用于嵌入的输出 + 一个用于每层的输出)。
    模型在每一层输出的隐藏状态加上初始嵌入输出。
  • attentions (tuple(tf.Tensor), 可选的, 当传递output_attentions=True或当config.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, x + attention_window + 1)tf.Tensor元组(每层一个),其中x是具有全局注意力掩码的令牌数量。在注意力 softmax 之后的局部注意力权重,用于计算自注意力头中的加权平均值。这些是来自序列中每个令牌到具有全局注意力的每个令牌(前x个值)和到注意力窗口中的每个令牌的注意力权重。
  • 1值)。请注意,前x个值是指文本中具有固定位置的令牌,但剩余的attention_window + 1值是指具有相对位置的令牌:令牌对自身的注意力权重位于索引x + attention_window / 2,前(后)attention_window / 2个值是对前(后)attention_window / 2个令牌的注意力权重。如果注意力窗口包含具有全局注意力的令牌,则相应索引处的注意力权重设置为 0;值应从前x个注意力权重中访问。如果一个令牌具有全局注意力,则对attentions中的所有其他令牌的注意力权重设置为 0,值应从global_attentions`中访问。
  • global_attentionstuple(tf.Tensor)可选,当传递output_attentions=True或当config.output_attentions=True时返回)— 形状为(batch_size, num_heads, sequence_length, x)tf.Tensor元组(每层一个),其中x是具有全局注意力掩码的标记数。
    在注意力 softmax 之后的全局注意力权重,用于计算自注意力头中的加权平均值。这些是具有全局注意力的每个标记到序列中每个标记的注意力权重。

多选模型输出的基类。

class transformers.models.longformer.modeling_tf_longformer.TFLongformerTokenClassifierOutput

<来源>

( loss: tf.Tensor | None = None logits: tf.Tensor = None hidden_states: Tuple[tf.Tensor] | None = None attentions: Tuple[tf.Tensor] | None = None global_attentions: Tuple[tf.Tensor] | None = None )

参数

  • loss(形状为(1,)tf.Tensor可选,当提供labels时返回)— 分类损失。
  • logits(形状为(batch_size, sequence_length, config.num_labels)tf.Tensor)— 分类分数(SoftMax 之前)。
  • hidden_statestuple(tf.Tensor)可选,当传递output_hidden_states=True或当config.output_hidden_states=True时返回)— 形状为(batch_size, sequence_length, hidden_size)tf.Tensor元组(嵌入输出的一个和每层输出的一个)。
    每层输出的模型隐藏状态加上初始嵌入输出。
  • attentionstuple(tf.Tensor)可选,当传递output_attentions=True或当config.output_attentions=True时返回)— 形状为(batch_size, num_heads, sequence_length, x + attention_window + 1)tf.Tensor元组(每层一个),其中x是具有全局注意力掩码的标记数。在注意力 softmax 之后的局部注意力权重,用于计算自注意力头中的加权平均值。这些是序列中每个标记到具有全局注意力的每个标记(前x个值)和到注意力窗口中的每个标记(剩余attention_window个值)的注意力权重。
  • 1values)。请注意,前x个值是指文本中固定位置的标记,但剩余的attention_window + 1个值是指相对位置的标记:标记自身的注意力权重位于索引x + attention_window / 2,前(后)的attention_window / 2个值是指前(后)的标记的注意力权重。如果注意力窗口包含具有全局注意力的标记,则相应索引处的注意力权重设置为 0;该值应从前x个注意力权重中访问。如果一个标记具有全局注意力,则attentions中对所有其他标记的注意力权重设置为 0,应从global_attentions`中访问这些值。
  • global_attentionstuple(tf.Tensor)可选,当传递output_attentions=True或当config.output_attentions=True时返回)— 形状为(batch_size, num_heads, sequence_length, x)tf.Tensor元组(每层一个),其中x是具有全局注意力掩码的标记数。
    在注意力 softmax 之后的全局注意力权重,用于计算自注意力头中的加权平均值。这些是具有全局注意力的每个标记到序列中每个标记的注意力权重。

标记分类模型输出的基类。

Pytorch 隐藏 Pytorch 内容

LongformerModel

class transformers.LongformerModel

<来源>

( config add_pooling_layer = True )

参数

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

裸的 Longformer 模型输出原始隐藏状态,没有特定的头部。

这个模型继承自 PreTrainedModel。查看超类文档以获取库为所有模型实现的通用方法(如下载或保存、调整输入嵌入、修剪头等)。

这个模型也是 PyTorch torch.nn.Module 的子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取有关一般用法和行为的所有相关信息。

这个类从 RobertaModel 复制了代码,并用 Longformer 自注意力覆盖了标准的自注意力,以提供处理长序列的能力,遵循Longformer: 长文档 Transformer中描述的自注意力方法,作者是 Iz Beltagy、Matthew E. Peters 和 Arman Cohan。Longformer 自注意力结合了局部(滑动窗口)和全局注意力,以扩展到长文档,而不会导致内存和计算的 O(n²) 增加。

这里实现的自注意力模块LongformerSelfAttention支持局部和全局注意力的组合,但不支持自回归注意力和扩张注意力。自回归和扩张注意力对于自回归语言建模比微调下游任务更相关。未来的版本将添加对自回归注意力的支持,但对扩张注意力的支持需要自定义 CUDA 内核以提高内存和计算效率。

forward

<来源>

( input_ids: Optional = None attention_mask: Optional = None global_attention_mask: Optional = None head_mask: Optional = None token_type_ids: Optional = None position_ids: Optional = None inputs_embeds: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.longformer.modeling_longformer.LongformerBaseModelOutputWithPooling 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]之间。
  • 1 代表未被掩盖的标记,
  • 0 代表被掩盖的标记。
  • 什么是注意力掩码?
  • global_attention_mask(形状为(batch_size, sequence_length)torch.FloatTensor可选)  —  决定每个标记上的注意力分配,局部注意力或全局注意力。具有全局注意力的标记会关注所有其他标记,而所有其他标记也会关注它们。这对于任务特定的微调很重要,因为它使模型在表示任务时更加灵活。例如,对于分类,应该给予该标记全局注意力。对于问答,所有问题标记也应该具有全局注意力。请参考Longformer 论文获取更多细节。掩码值选在[0, 1]之间:
  • 0 代表局部注意力(滑动窗口注意力),
  • 1 表示全局注意力(关注所有其他标记,所有其他标记也关注它们)。
  • head_mask (torch.Tensor of shape (num_layers, num_heads), optional) — 在编码器中,用于使注意力模块的特定头部失效的掩码。掩码值在 [0, 1] 中选择:
  • 1 表示头部未被屏蔽,
  • 0 表示头部被屏蔽。
  • decoder_head_mask (torch.Tensor of shape (num_layers, num_heads), optional) — 在解码器中,用于使注意力模块的特定头部失效的掩码。掩码值在 [0, 1] 中选择:
  • 1 表示头部未被屏蔽,
  • 0 表示头部被屏蔽。
  • 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?
  • inputs_embeds (torch.FloatTensor of shape (batch_size, sequence_length, hidden_size), optional) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您想要更多控制权来将 input_ids 索引转换为相关向量,这将非常有用,而不是使用模型的内部嵌入查找矩阵。
  • output_attentions (bool, optional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的 attentions
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的 hidden_states
  • return_dict (bool, optional) — 是否返回 ModelOutput 而不是普通元组。

返回

transformers.models.longformer.modeling_longformer.LongformerBaseModelOutputWithPooling 或 tuple(torch.FloatTensor)

一个 transformers.models.longformer.modeling_longformer.LongformerBaseModelOutputWithPooling 或一个 torch.FloatTensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时),包含根据配置(LongformerConfig)和输入的不同元素。

  • last_hidden_state (torch.FloatTensor of shape (batch_size, sequence_length, hidden_size)) — 模型最后一层的隐藏状态序列的输出。
  • pooler_output (torch.FloatTensor of shape (batch_size, hidden_size)) — 序列第一个标记(分类标记)的最后一层隐藏状态,进一步由线性层和 Tanh 激活函数处理。线性层的权重是在预训练期间从下一个句子预测(分类)目标中训练的。
  • hidden_states (tuple(torch.FloatTensor), optional, 当传递 output_hidden_states=True 或当 config.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, x + attention_window + 1)torch.FloatTensor元组(每层一个),其中x是具有全局注意力掩码的标记数。在注意力 softmax 之后的局部注意力权重,用于计算自注意力头中的加权平均值。这些是从序列中的每个标记到具有全局注意力的每个标记(前x个值)和到注意力窗口中的每个标记(剩余的attention_window)的注意力权重。
  • 1values)。注意,前x个值是指文本中具有固定位置的标记,但剩余的attention_window + 1个值是指具有相对位置的标记:标记到自身的注意力权重位于索引x + attention_window / 2处,前(后)的attention_window / 2个值是指到前(后)的attention_window / 2个标记的注意力权重。如果注意力窗口包含具有全局注意力的标记,则相应索引处的注意力权重设置为 0;该值应从前x个注意力权重中访问。如果一个标记具有全局注意力,则到attentions中的所有其他标记的注意力权重设置为 0,应从global_attentions`中访问这些值。
  • global_attentionstuple(torch.FloatTensor)可选,当传递output_attentions=Trueconfig.output_attentions=True时返回)— 形状为(batch_size, num_heads, sequence_length, x)torch.FloatTensor元组(每层一个),其中x是具有全局注意力掩码的标记数。
    在注意力 softmax 之后的全局注意力权重,用于计算自注意力头中的加权平均值。这些是具有全局注意力的每个标记到序列中的每个标记的注意力权重。

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

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

示例:

>>> import torch
>>> from transformers import LongformerModel, AutoTokenizer
>>> model = LongformerModel.from_pretrained("allenai/longformer-base-4096")
>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> SAMPLE_TEXT = " ".join(["Hello world! "] * 1000)  # long input document
>>> input_ids = torch.tensor(tokenizer.encode(SAMPLE_TEXT)).unsqueeze(0)  # batch of size 1
>>> attention_mask = torch.ones(
...     input_ids.shape, dtype=torch.long, device=input_ids.device
... )  # initialize to local attention
>>> global_attention_mask = torch.zeros(
...     input_ids.shape, dtype=torch.long, device=input_ids.device
... )  # initialize to global attention to be deactivated for all tokens
>>> global_attention_mask[
...     :,
...     [
...         1,
...         4,
...         21,
...     ],
... ] = 1  # Set global attention to random tokens for the sake of this example
>>> # Usually, set global attention based on the task. For example,
>>> # classification: the <s> token
>>> # QA: question tokens
>>> # LM: potentially on the beginning of sentences and paragraphs
>>> outputs = model(input_ids, attention_mask=attention_mask, global_attention_mask=global_attention_mask)
>>> sequence_output = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output

LongformerForMaskedLM

class transformers.LongformerForMaskedLM

<来源>

( config )

参数

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

在顶部带有语言建模头的 Longformer 模型。

这个模型继承自 PreTrainedModel。查看超类文档以获取库为所有模型实现的通用方法(如下载或保存、调整输入嵌入、修剪头等)。

这个模型也是 PyTorch torch.nn.Module的子类。将其用作常规的 PyTorch 模块,并参考 PyTorch 文档以获取与一般用法和行为相关的所有内容。

forward

<来源>

( input_ids: Optional = None attention_mask: Optional = None global_attention_mask: Optional = None head_mask: Optional = None token_type_ids: Optional = None position_ids: Optional = None inputs_embeds: Optional = None labels: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.longformer.modeling_longformer.LongformerMaskedLMOutput or tuple(torch.FloatTensor)

参数

  • input_ids(形状为(batch_size, sequence_length)torch.LongTensor)— 词汇表中输入序列标记的索引。
    可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.encode()和 PreTrainedTokenizer.call()。
    什么是 input IDs?
  • attention_mask (torch.FloatTensor of shape (batch_size, sequence_length), optional) — 用于避免在填充标记索引上执行注意力。掩码值选在[0, 1]之间:
  • 1 表示未被掩盖的标记,
  • 0 表示被掩盖的标记。
  • 什么是 attention masks?
  • global_attention_mask (torch.FloatTensor of shape (batch_size, sequence_length), optional)  —  用于决定每个标记的注意力分配,局部注意力或全局注意力。具有全局注意力的标记关注所有其他标记,所有其他标记也关注它们。这对于任务特定的微调很重要,因为它使模型在表示任务时更加灵活。例如,对于分类,应该给予~~标记全局注意力。对于问答,所有问题标记也应该具有全局注意力。请参考Longformer paper获取更多详细信息。掩码值选在[0, 1]之间:
  • 0 表示局部注意力(滑动窗口注意力),
  • 1 表示全局注意力(关注所有其他标记,所有其他标记也关注它们)。
  • head_mask (torch.Tensor of shape (num_layers, num_heads), optional) — 用于使编码器中的注意力模块中的选定头部失效的掩码。掩码值选在[0, 1]之间:
  • 1 表示头部未被掩盖
  • 0 表示头部被掩盖
  • decoder_head_mask (torch.Tensor of shape (num_layers, num_heads), optional) — 用于使解码器中的注意力模块中的选定头部失效的掩码。掩码值选在[0, 1]之间:
  • 1 表示头部未被掩盖
  • 0 表示头部被掩盖
  • token_type_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — 段标记索引,指示输入的第一部分和第二部分。索引选在[0, 1]之间:
  • 0 对应于句子 A标记,
  • 1 对应于句子 B标记。
  • 什么是 token type IDs?
  • position_ids (torch.LongTensor of shape (batch_size, sequence_length), optional) — 每个输入序列标记在位置嵌入中的位置索引。选择范围在[0, config.max_position_embeddings - 1]内。
    什么是 position IDs?
  • inputs_embeds (torch.FloatTensor of shape (batch_size, sequence_length, hidden_size), optional) — 可选地,可以直接传递嵌入表示,而不是传递input_ids。如果您想要更多控制如何将input_ids索引转换为相关向量,而不是使用模型的内部嵌入查找矩阵,这将非常有用。
  • output_attentions (bool, optional) — 是否返回所有注意力层的注意力张量。有关更多细节,请参阅返回张量下的attentions
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。有关更多细节,请参阅返回张量下的hidden_states
  • return_dict (bool, optional) — 是否返回 ModelOutput 而不是普通元组。
  • labels (torch.LongTensor of shape (batch_size, sequence_length), optional) — 用于计算掩盖语言建模损失的标签。索引应在[-100, 0, ..., config.vocab_size]范围内(参见input_ids文档字符串)。索引设置为-100的标记将被忽略(掩盖),损失仅计算具有标签在[0, ..., config.vocab_size]范围内的标记
  • kwargsDict[str, any],可选,默认为*{}*)— 用于隐藏已被弃用的旧参数。

返回

transformers.models.longformer.modeling_longformer.LongformerMaskedLMOutput 或tuple(torch.FloatTensor)

一个 transformers.models.longformer.modeling_longformer.LongformerMaskedLMOutput 或一个torch.FloatTensor元组(如果传递了return_dict=Falseconfig.return_dict=False时)包括根据配置(LongformerConfig)和输入而异的各种元素。

  • loss(形状为(1,)torch.FloatTensor可选,当提供labels时返回)— 掩码语言建模(MLM)损失。
  • logits(形状为(batch_size, sequence_length, config.vocab_size)torch.FloatTensor)— 语言建模头的预测分数(SoftMax 之前每个词汇标记的分数)。
  • 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, x + attention_window + 1)torch.FloatTensor元组(每层一个),其中x是具有全局注意力掩码的标记数。在注意力 softmax 之后的局部注意力权重,用于计算自注意力头中的加权平均值。这些是从序列中的每个标记到具有全局注意力的每个标记(前x个值)以及到注意力窗口中的每个标记(剩余的attention_window值)的注意力权重。
  • 注意:第一个x个值是指文本中具有固定位置的标记,但剩余的attention_window + 1个值是指具有相对位置的标记:一个标记到自身的注意力权重位于索引x + attention_window / 2,前(后)attention_window / 2个值是指到前(后)attention_window / 2个标记的注意力权重。如果注意力窗口包含具有全局注意力的标记,则相应索引处的注意力权重设置为 0;该值应从第一个x个注意力权重中获取。如果一个标记具有全局注意力,则到attentions中所有其他标记的注意力权重设置为 0,该值应从global_attentions中获取。
  • global_attentionstuple(torch.FloatTensor)可选,当传递output_attentions=Trueconfig.output_attentions=True时返回)— 形状为(batch_size, num_heads, sequence_length, x)torch.FloatTensor元组(每层一个),其中x是具有全局注意力掩码的标记数。
    在注意力 softmax 之后的全局注意力权重,用于计算自注意力头中的加权平均值。这些是从具有全局注意力的每个标记到序列中的每个标记的注意力权重。

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

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

填充掩码示例:

>>> from transformers import AutoTokenizer, LongformerForMaskedLM
>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> model = LongformerForMaskedLM.from_pretrained("allenai/longformer-base-4096")

让我们尝试一个非常长的输入。

>>> TXT = (
...     "My friends are <mask> but they eat too many carbs."
...     + " That's why I decide not to eat with them." * 300
... )
>>> input_ids = tokenizer([TXT], return_tensors="pt")["input_ids"]
>>> logits = model(input_ids).logits
>>> masked_index = (input_ids[0] == tokenizer.mask_token_id).nonzero().item()
>>> probs = logits[0, masked_index].softmax(dim=0)
>>> values, predictions = probs.topk(5)
>>> tokenizer.decode(predictions).split()
['healthy', 'skinny', 'thin', 'good', 'vegetarian']


Transformers 4.37 中文文档(四十)(7)https://developer.aliyun.com/article/1564999

相关文章
|
机器学习/深度学习 安全 算法
技术焦点篇|Cheetah猎豹及其在隐语中的实现
技术焦点篇|Cheetah猎豹及其在隐语中的实现
1291 1
|
2月前
|
PHP Python
Python format()函数高级字符串格式化详解
在 Python 中,字符串格式化是一个重要的主题,format() 函数作为一种灵活且强大的字符串格式化方法,被广泛应用。format() 函数不仅能实现基本的插入变量,还支持更多高级的格式化功能,包括数字格式、对齐、填充、日期时间格式、嵌套字段等。 今天我们将深入解析 format() 函数的高级用法,帮助你在实际编程中更高效地处理字符串格式化。
217 0
|
7月前
|
机器学习/深度学习 文字识别 自然语言处理
分析对比大模型OCR、传统OCR和深度学习OCR
OCR技术近年来迅速普及,广泛应用于文件扫描、快递单号识别、车牌识别及日常翻译等场景,极大提升了便利性。其发展历程从传统方法(基于模板匹配和手工特征设计)到深度学习(采用CNN、LSTM等自动学习高级语义特征),再到大模型OCR(基于Transformer架构,支持跨场景泛化和少样本学习)。每种技术在特定场景下各有优劣:传统OCR适合实时场景,深度学习OCR精度高但依赖大量数据,大模型OCR泛化能力强但训练成本高。未来,大模型OCR将结合多模态预训练,向通用文字理解方向发展,与深度学习OCR形成互补生态,最大化平衡成本与性能。
|
9月前
|
安全 网络安全
gbase8a centos8(kylinv10)加载报登录 ftp失败报错530 Login incorrect 排查过程及解决办法
centos8(kylinv10)加载报登录 ftp失败报错530 Login incorrect 排查过程及解决办法
|
11月前
|
自然语言处理 PyTorch 算法框架/工具
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
【10月更文挑战第1天】随着深度学习技术的进步,预训练模型已成为自然语言处理(NLP)领域的常见实践。这些模型通过大规模数据集训练获得通用语言表示,但需进一步微调以适应特定任务。本文通过简化流程和示例代码,介绍了如何选择预训练模型(如BERT),并利用Python库(如Transformers和PyTorch)进行微调。文章详细说明了数据准备、模型初始化、损失函数定义及训练循环等关键步骤,并提供了评估模型性能的方法。希望本文能帮助读者更好地理解和实现模型微调。
727 2
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
|
11月前
|
缓存 监控 API
淘宝API接口注意事项及要点
淘宝API接口的使用需注意以下要点:首先注册并认证开发者账号,获取API密钥;深入理解接口文档,确保参数合法准确;遵守调用频率限制,必要时申请提额;确保数据安全与隐私保护;合理处理错误与异常;优化缓存与性能;关注版本更新与兼容性;遵守合规性与法律要求;建立日志记录与监控机制。
|
11月前
|
人工智能
写歌词的技巧和方法:优化歌词结构的秘诀,妙笔生词AI智能写歌词软件
歌词是音乐的灵魂,优化其结构能让作品更加动人。掌握开头吸引人、主体结构清晰、情感递进自然及结尾余味悠长等技巧至关重要。同时,借助《妙笔生词智能写歌词软件》的多种AI功能,如智能写词、押韵优化等,可有效提升创作效率与质量,为你的歌词增添光彩。
|
11月前
|
弹性计算 Serverless API
海量大模型如何一键部署上云,函数计算 x ModelScope 社区给出答案
得益于阿里云函数计算的产品能力,魔搭 SwingDeploy 后的模型推理 API 服务默认具备极致弹性伸缩(缩零能力)、GPU 虚拟化(最小 1GB 显存粒度)、异步调用能力、按用付费、闲置计费等能力,这些能力帮助算法工程师大大加快了魔搭开源模型投入生产的生命周期。
|
机器学习/深度学习 自然语言处理 算法
精通 Transformers(三)(3)
精通 Transformers(三)
317 0