Transformers 4.37 中文文档(六十)(3)

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

Transformers 4.37 中文文档(六十)(2)https://developer.aliyun.com/article/1564086


TFTransfoXLModel

class transformers.TFTransfoXLModel

<来源>

( config *inputs **kwargs )

参数

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

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

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

这个模型也是一个tf.keras.Model的子类。将其用作常规的 TF 2.0 Keras 模型,并参考 TF 2.0 文档以获取有关一般用法和行为的所有相关信息。

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

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

支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。由于有此支持,当使用model.fit()等方法时,应该可以“正常工作” - 只需以model.fit()支持的任何格式传递输入和标签!但是,如果您想在 Keras 方法之外使用第二种格式,例如在使用 KerasFunctional 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

< source >

( input_ids: TFModelInputType | None = None mems: List[tf.Tensor] | None = None head_mask: np.ndarray | tf.Tensor | None = None inputs_embeds: np.ndarray | tf.Tensor | None = None output_attentions: bool | None = None output_hidden_states: bool | None = None return_dict: bool | None = None training: bool = False ) → export const metadata = 'undefined';transformers.models.deprecated.transfo_xl.modeling_tf_transfo_xl.TFTransfoXLModelOutput or tuple(tf.Tensor)

参数

  • input_ids(形状为(batch_size, sequence_length)tf.TensorNumpy array)- 词汇表中输入序列标记的索引。
    可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.call()和 PreTrainedTokenizer.encode()。
    什么是 input IDs?
  • mems(长度为config.n_layersList[tf.Tensor])- 包含由模型计算的预计算隐藏状态(注意力块中的键和值)(请参见下面的mems输出)。可用于加速顺序解码。将其mems给定给此模型的标记 id 不应作为input_ids传递,因为它们已经计算过。
  • head_mask(形状为(num_heads,)(num_layers, num_heads)tf.TensorNumpy array可选)- 用于使自注意力模块中的选定头部失效的掩码。掩码值在[0, 1]中选择:
  • 1 表示头部未被masked
  • 0 表示头部被masked
  • inputs_embeds(形状为(batch_size, sequence_length, hidden_size)tf.TensorNumpy array可选)- 可选地,您可以选择直接传递嵌入表示,而不是传递input_ids。如果您想要更多控制权,以便将input_ids索引转换为相关向量,而不是使用模型的内部嵌入查找矩阵,则这很有用。
  • output_attentions (booloptional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量中的attentions。此参数仅可在急切模式下使用,在图模式下将使用配置中的值。
  • output_hidden_states (bool, optional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量中的hidden_states。此参数仅可在急切模式下使用,在图模式下将使用配置中的值。
  • return_dict (booloptional) — 是否返回一个 ModelOutput 而不是一个普通元组。此参数可在急切模式下使用,在图模式下该值将始终设置为 True。
  • training (bool, optional, defaults to False) — 是否在训练模式下使用模型(一些模块如 dropout 模块在训练和评估之间有不同的行为)。

返回

transformers.models.deprecated.transfo_xl.modeling_tf_transfo_xl.TFTransfoXLModelOutput 或 tuple(tf.Tensor)

transformers.models.deprecated.transfo_xl.modeling_tf_transfo_xl.TFTransfoXLModelOutput 或一个tf.Tensor元组(如果传递return_dict=Falseconfig.return_dict=False)包含根据配置(TransfoXLConfig)和输入的不同元素。

  • last_hidden_state (tf.Tensor,形状为(batch_size, sequence_length, hidden_size)) — 模型最后一层的隐藏状态序列。
  • mems (List[tf.Tensor],长度为config.n_layers) — 包含预计算的隐藏状态(注意力块中的键和值)。可以用于加速顺序解码(参见mems输入)。将过去给定给该模型的令牌 id 不应作为输入 id 传递,因为它们已经被计算过。
  • hidden_states (tuple(tf.Tensor)optional,当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回) — 形状为(batch_size, sequence_length, hidden_size)tf.Tensor元组(一个用于嵌入的输出 + 一个用于每一层的输出)。
    模型在每一层输出处的隐藏状态以及初始嵌入输出。
  • attentions (tuple(tf.Tensor)optional,当传递output_attentions=Trueconfig.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)tf.Tensor元组(每层一个)。
    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

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

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

示例:

>>> from transformers import AutoTokenizer, TFTransfoXLModel
>>> import tensorflow as tf
>>> tokenizer = AutoTokenizer.from_pretrained("transfo-xl-wt103")
>>> model = TFTransfoXLModel.from_pretrained("transfo-xl-wt103")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="tf")
>>> outputs = model(inputs)
>>> last_hidden_states = outputs.last_hidden_state

TFTransfoXLLMHeadModel

class transformers.TFTransfoXLLMHeadModel

< source >

( config )

参数

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

具有顶部语言建模头部的 Transformer-XL 模型(自适应 softmax,其权重与自适应输入嵌入相关联)

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

此模型还是一个tf.keras.Model子类。将其用作常规的 TF 2.0 Keras 模型,并参考 TF 2.0 文档以获取与一般用法和行为相关的所有信息。

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

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

支持第二种格式的原因是 Keras 方法在将输入传递给模型和层时更喜欢这种格式。由于这种支持,当使用model.fit()等方法时,应该可以“正常工作” - 只需以model.fit()支持的任何格式传递输入和标签即可!但是,如果您想在 Keras 方法之外使用第二种格式,例如在使用 KerasFunctional 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 mems: List[tf.Tensor] | None = None head_mask: np.ndarray | tf.Tensor | None = None inputs_embeds: np.ndarray | tf.Tensor | None = None output_attentions: bool | None = None output_hidden_states: bool | None = None return_dict: bool | None = None labels: np.ndarray | tf.Tensor | None = None training: bool = False ) → export const metadata = 'undefined';transformers.models.deprecated.transfo_xl.modeling_tf_transfo_xl.TFTransfoXLLMHeadModelOutput or tuple(tf.Tensor)

参数

  • input_ids(形状为(batch_size, sequence_length)tf.TensorNumpy 数组)- 词汇表中输入序列标记的索引。
    可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.call()和 PreTrainedTokenizer.encode()。
    什么是输入 ID?
  • mems(长度为config.n_layersList[tf.Tensor])- 包含由模型计算得到的预计算隐藏状态(自注意力块中的键和值)(请参见下面的mems输出)。可用于加速顺序解码。将其 mems 给定给此模型的标记 ID 不应作为input_ids传递,因为它们已经计算过。
  • head_mask(形状为(num_heads,)(num_layers, num_heads)tf.TensorNumpy 数组可选)- 用于使自注意力模块中选择的头部失效的掩码。掩码值选在[0, 1]之间:
  • 1 表示头部“未被掩码”,
  • 0 表示头部是masked
  • inputs_embeds (tf.TensorNumpy 数组,形状为(batch_size, sequence_length, hidden_size)optional) — 可选地,可以直接传递嵌入表示,而不是传递input_ids。如果您想要更多控制如何将input_ids索引转换为相关向量,这很有用,而不是使用模型的内部嵌入查找矩阵。
  • output_attentions (booloptional) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回张量下的attentions。此参数仅在急切模式下使用,在图模式下将使用配置中的值。
  • output_hidden_states (booloptional) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回张量下的hidden_states。此参数仅在急切模式下使用,在图模式下将使用配置中的值。
  • return_dict (booloptional) — 是否返回一个 ModelOutput 而不是一个普通元组。这个参数可以在急切模式下使用,在图模式下该值将始终设置为 True。
  • training (booloptional,默认为False) — 是否在训练模式下使用模型(一些模块如 dropout 模块在训练和评估之间有不同的行为)。

返回

transformers.models.deprecated.transfo_xl.modeling_tf_transfo_xl.TFTransfoXLLMHeadModelOutput 或tuple(tf.Tensor)

一个 transformers.models.deprecated.transfo_xl.modeling_tf_transfo_xl.TFTransfoXLLMHeadModelOutput 或一个tf.Tensor元组(如果传递return_dict=Falseconfig.return_dict=False)包含根据配置(TransfoXLConfig)和输入的各种元素。

  • losses (tf.Tensor,形状为*(batch_size, sequence_length-1)*,optional, 当提供labels时返回) — 语言建模损失(未减少)。
  • prediction_scores (tf.Tensor,形状为(batch_size, sequence_length, config.vocab_size)) — 语言建模头的预测分数(SoftMax 后每个词汇标记的分数)。
  • mems (List[tf.Tensor] of length config.n_layers) — 包含预先计算的隐藏状态(注意力块中的键和值)。可以用于加速顺序解码。将其过去传递给该模型的令牌 id 不应作为输入 id 传递,因为它们已经被计算过。
  • hidden_states (tuple(tf.Tensor), optional, 当传递output_hidden_states=Trueconfig.output_hidden_states=True时返回) — 形状为(batch_size, sequence_length, hidden_size)tf.Tensor元组(一个用于嵌入的输出 + 一个用于每个层的输出)。
    模型在每个层的输出处的隐藏状态加上初始嵌入输出。
  • attentions (tuple(tf.Tensor)optional,当传递output_attentions=Trueconfig.output_attentions=True时返回) — 形状为(batch_size, num_heads, sequence_length, sequence_length)tf.Tensor元组(每个层一个)。
    注意力 softmax 后的注意力权重,用于计算自注意力头中的加权平均值。

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

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

示例:

>>> from transformers import AutoTokenizer, TFTransfoXLLMHeadModel
>>> import tensorflow as tf
>>> tokenizer = AutoTokenizer.from_pretrained("transfo-xl-wt103")
>>> model = TFTransfoXLLMHeadModel.from_pretrained("transfo-xl-wt103")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="tf")
>>> outputs = model(inputs)
>>> logits = outputs.logits

TFTransfoXLForSequenceClassification

class transformers.TFTransfoXLForSequenceClassification

<来源>

( config *inputs **kwargs )

参数

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

Transfo XL 模型变压器,顶部带有序列分类头(线性层)。

TFTransfoXLForSequenceClassification 使用最后一个标记来进行分类,就像其他因果模型(例如 GPT-1、GPT-2)一样。

由于它在最后一个标记上进行分类,因此需要知道最后一个标记的位置。如果在配置中定义了pad_token_id,它会找到每行中不是填充标记的最后一个标记。如果未定义pad_token_id,它会简单地取批处理中每行的最后一个值。由于在传递inputs_embeds而不是input_ids时无法猜测填充标记,因此它会执行相同操作(取批处理中每行的最后一个值)。

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

这个模型也是一个tf.keras.Model子类。将其用作常规的 TF 2.0 Keras 模型,并参考 TF 2.0 文档以获取有关一般用法和行为的所有相关信息。

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

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

支持第二种格式的原因是,当将输入传递给模型和层时,Keras 方法更喜欢这种格式。由于有了这种支持,当使用model.fit()等方法时,应该可以正常工作 - 只需以model.fit()支持的任何格式传递输入和标签即可!但是,如果您想在 Keras 方法之外使用第二种格式,比如在使用 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 mems: List[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 ) → export const metadata = 'undefined';transformers.models.deprecated.transfo_xl.modeling_tf_transfo_xl.TFTransfoXLSequenceClassifierOutputWithPast or tuple(tf.Tensor)

参数

  • input_ids (tf.Tensor 或形状为 (batch_size, sequence_length)Numpy array) — 词汇表中输入序列标记的索引。
    可以使用 AutoTokenizer 获取索引。有关详细信息,请参阅 PreTrainedTokenizer.call() 和 PreTrainedTokenizer.encode()。
    什么是输入 ID?
  • mems (List[tf.Tensor],长度为 config.n_layers) — 包含由模型计算得到的预计算隐藏状态(注意力块中的键和值)(请参见下面的 mems 输出)。可用于加速顺序解码。将其 mems 给予此模型的标记 id 不应作为 input_ids 传递,因为它们已经计算过。
  • head_mask (tf.Tensor 或形状为 (num_heads,)(num_layers, num_heads)Numpy array可选) — 用于使自注意力模块的选定头部失效的掩码。掩码值选定在 [0, 1] 之间:
  • 1 表示头部未被 masked
  • 0 表示头部被 masked
  • inputs_embeds (tf.Tensor 或形状为 (batch_size, sequence_length, hidden_size)Numpy array可选) — 可选地,您可以选择直接传递嵌入表示,而不是传递 input_ids。如果您想要更多控制权来将 input_ids 索引转换为相关向量,而不是使用模型的内部嵌入查找矩阵,这将非常有用。
  • output_attentions (bool, 可选) — 是否返回所有注意力层的注意力张量。有关更多详细信息,请参阅返回的张量下的 attentions。此参数仅在急切模式下可用,在图模式下将使用配置中的值。
  • output_hidden_states (bool, 可选) — 是否返回所有层的隐藏状态。有关更多详细信息,请参阅返回的张量下的 hidden_states。此参数仅在急切模式下可用,在图模式下将使用配置中的值。
  • return_dict (bool, 可选) — 是否返回 ModelOutput 而不是普通元组。此参数可在急切模式下使用,在图模式下该值将始终设置为 True。
  • training (bool, 可选,默认为 False) — 是否在训练模式下使用模型(一些模块,如 dropout 模块,在训练和评估之间有不同的行为)。
  • labels (tf.Tensor,形状为 (batch_size, sequence_length)可选) — 用于计算交叉熵分类损失的标签。索引应在 [0, ..., config.vocab_size - 1] 中。

返回值

transformers.models.deprecated.transfo_xl.modeling_tf_transfo_xl.TFTransfoXLSequenceClassifierOutputWithPasttuple(tf.Tensor)

一个 transformers.models.deprecated.transfo_xl.modeling_tf_transfo_xl.TFTransfoXLSequenceClassifierOutputWithPasttf.Tensor 元组(如果传递了 return_dict=False 或当 config.return_dict=False 时)包含根据配置(TransfoXLConfig)和输入的各种元素。

  • loss (tf.Tensor,形状为 (1,)可选,当提供 labels 时返回) — 分类(如果 config.num_labels==1 则为回归)损失。
  • logits (tf.Tensor,形状为 (batch_size, config.num_labels)) — 分类(如果 config.num_labels==1 则为回归)得分(SoftMax 之前)。
  • mems (List[tf.Tensor],长度为 config.n_layers) — 包含预计算的隐藏状态(注意力块中的键和值)。可用于(参见 mems 输入)加速顺序解码。将其过去给予此模型的标记 id 不应作为输入 id 传递,因为它们已经计算过。
  • 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, sequence_length)tf.Tensor元组(每层一个)。
    在注意力 softmax 之后的注意力权重,用于计算自注意力头中的加权平均值。

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

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

示例:

>>> from transformers import AutoTokenizer, TFTransfoXLForSequenceClassification
>>> import tensorflow as tf
>>> tokenizer = AutoTokenizer.from_pretrained("transfo-xl-wt103")
>>> model = TFTransfoXLForSequenceClassification.from_pretrained("transfo-xl-wt103")
>>> 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])
>>> # 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 = TFTransfoXLForSequenceClassification.from_pretrained("transfo-xl-wt103", num_labels=num_labels)
>>> labels = tf.constant(1)
>>> loss = model(**inputs, labels=labels).loss

内部层

class transformers.AdaptiveEmbedding

< source >

( n_token d_embed d_proj cutoffs div_val = 1 sample_softmax = False )

class transformers.TFAdaptiveEmbedding

< source >

( n_token d_embed d_proj cutoffs div_val = 1 init_std = 0.02 sample_softmax = False **kwargs )

UL2

原始文本:huggingface.co/docs/transformers/v4.37.2/en/model_doc/ul2

概述

T5 模型在Yi  Tay, Mostafa Dehghani, Vinh Q. Tran, Xavier Garcia, Dara Bahri, Tal  Schuster, Huaixiu Steven Zheng, Neil Houlsby, Donald Metzler  撰写的《统一语言学习范式》中被提出。

论文的摘要如下:

现有的预训练模型通常针对特定类别的问题。迄今为止,关于正确的架构和预训练设置应该是什么,似乎仍然没有共识。本文提出了一个统一的框架,用于预训练模型在数据集和设置上具有普遍有效性。我们首先通过解开具有预训练目标的架构原型来开始——这两个概念通常被混淆。接下来,我们提出了自监督在  NLP  中的泛化和统一视角,并展示了不同的预训练目标如何相互转换以及如何在不同目标之间插值可以是有效的。然后,我们提出了去噪器混合(MoD),这是一个将不同的预训练范式结合在一起的预训练目标。此外,我们引入了一种模式切换的概念,其中下游微调与特定的预训练方案相关联。我们进行了大量的消融实验,比较了多个预训练目标,并发现我们的方法通过在多个不同设置中优于  T5 和/或类似 GPT 的模型来推动帕累托前沿。最后,通过将我们的模型扩展到 20B 参数,我们在 50 个建立良好的监督 NLP  任务上实现了 SOTA  性能,涵盖了语言生成(自动化和人工评估)、语言理解、文本分类、问题回答、常识推理、长文本推理、结构化知识基础和信息检索。我们的模型还在上下文学习方面取得了强大的结果,在零样本  SuperGLUE 上优于 175B 的 GPT-3,并在一次性摘要上将 T5-XXL 的性能提高了三倍。

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

使用提示

  • UL2 是一个编码器-解码器模型,预先在一系列去噪函数的混合上进行了预训练,并在一系列下游任务上进行了微调。
  • UL2 与 T5v1.1 具有相同的架构,但使用了门控 SiLU 激活函数,而不是门控 GELU。
  • 作者发布了一个架构的检查点,可以在这里看到

由于 UL2 与 T5v1.1 具有相同的架构,请参考 T5 的文档页面获取 API 参考、提示、代码示例和笔记本。

UMT5

原始文本:huggingface.co/docs/transformers/v4.37.2/en/model_doc/umt5

概述

UMT5 模型是由 Hyung Won Chung、Xavier Garcia、Adam Roberts、Yi Tay、Orhan Firat、Sharan Narang、Noah Constant 在UniMax: Fairer and More Effective Language Sampling for Large-Scale Multilingual Pretraining中提出的。

该论文的摘要如下:

预训练的多语言大型语言模型通常使用启发式基于温度的采样来平衡不同语言之间的关系。然而,先前的工作并没有系统评估不同预训练语言分布在模型规模上的有效性。在本文中,我们提出了一种新的采样方法   UniMax,通过明确限制每种语言语料库上的重复次数,提供更均匀的头部语言覆盖范围,同时减轻尾部语言的过拟合。我们进行了一系列广泛的消融实验,测试了一系列多语言基准测试的采样策略,同时改变模型规模。我们发现  UniMax 优于标准基于温度的采样,而这些优势随着规模的增加而持续存在。作为我们的贡献的一部分,我们发布了:(i)一个改进和更新的 mC4  多语言语料库,包括 107 种语言的 29 万亿个字符,以及(ii)一套使用 UniMax 采样训练的预训练 umT5 模型检查点。

Google 发布了以下变体:

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

使用提示

  • UMT5 仅在mC4上进行了预训练,不包括任何监督训练。因此,与原始 T5 模型不同,这个模型必须在可用于下游任务之前进行微调。
  • 由于 umT5 是以无监督方式预训练的,因此在单任务微调期间使用任务前缀没有真正的优势。如果您正在进行多任务微调,应该使用前缀。

与 mT5 有何不同?

UmT5基于 mT5,具有为每个层计算的非共享相对位置偏差。这意味着模型为每个层设置了has_relative_bias。转换脚本也不同,因为该模型是以 t5x 的最新检查点格式保存的。


Transformers 4.37 中文文档(六十)(4)https://developer.aliyun.com/article/1564088

相关文章
|
2月前
|
异构计算 索引 AI芯片
Transformers 4.37 中文文档(五十)(7)
Transformers 4.37 中文文档(五十)
26 1
|
2月前
|
缓存 异构计算 索引
Transformers 4.37 中文文档(五十)(8)
Transformers 4.37 中文文档(五十)
18 1
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
Transformers 4.37 中文文档(七十)(3)
Transformers 4.37 中文文档(七十)
22 2
|
2月前
|
缓存 PyTorch TensorFlow
Transformers 4.37 中文文档(五十)(5)
Transformers 4.37 中文文档(五十)
19 0
|
2月前
|
存储 PyTorch 算法框架/工具
Transformers 4.37 中文文档(五十)(1)
Transformers 4.37 中文文档(五十)
27 0
|
2月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(五十)(2)
Transformers 4.37 中文文档(五十)
20 0
|
2月前
|
PyTorch TensorFlow 算法框架/工具
Transformers 4.37 中文文档(五十)(6)
Transformers 4.37 中文文档(五十)
20 0
|
2月前
|
PyTorch TensorFlow API
Transformers 4.37 中文文档(五十)(3)
Transformers 4.37 中文文档(五十)
19 0
|
2月前
|
存储 PyTorch 测试技术
Transformers 4.37 中文文档(五十)(4)
Transformers 4.37 中文文档(五十)
33 0
|
2月前
|
自然语言处理 PyTorch TensorFlow
Transformers 4.37 中文文档(六十)(2)
Transformers 4.37 中文文档(六十)
11 0