Transformers 文档

BARThez

Hugging Face's logo
加入 Hugging Face 社区

并获得增强版文档体验

开始

BARThez

概述

BARThez 模型是在 2020 年 10 月 23 日由 Moussa Kamal Eddine、Antoine J.-P. Tixier 和 Michalis Vazirgiannis 在 BARThez: a Skilled Pretrained French Sequence-to-Sequence Model 中提出的。

论文摘要

由自监督学习驱动的归纳迁移学习席卷了整个自然语言处理 (NLP) 领域,BERT 和 BART 等模型在无数自然语言理解任务上创造了新的最先进水平。虽然有一些值得注意的例外,但大多数现有的模型和研究都是针对英语进行的。在这项工作中,我们介绍了 BARThez,这是第一个法语 BART 模型(据我们所知)。BARThez 在过去研究中从一个非常大的单语法语语料库中进行预训练,我们对其进行了调整以适应 BART 的扰动方案。与已经存在的基于 BERT 的法语模型(如 CamemBERT 和 FlauBERT)不同,BARThez 特别适合生成任务,因为不仅它的编码器而且它的解码器都是预训练的。除了 FLUE 基准测试中的判别性任务外,我们还评估了 BARThez 在一个新的摘要数据集 OrangeSum 上,我们将在本文中发布该数据集。我们还继续对已经预训练的多语言 BART 在 BARThez 的语料库上进行预训练,并且我们表明,由此产生的模型(我们称之为 mBARTHez)比普通 BARThez 有显著提升,并且与 CamemBERT 和 FlauBERT 相当或性能更好。

该模型由 moussakam 贡献。作者的代码可以在这里找到 这里

BARThez 的实现与 BART 相同,除了标记化。有关配置类及其参数的信息,请参阅 BART 文档。BARThez 特定的标记器将在下面介绍。

资源

BarthezTokenizer

class transformers.BarthezTokenizer

< >

( 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) — SentencePiece 文件(通常具有 .spm 扩展名),其中包含实例化标记器所需的词汇表。
  • bos_token (str, 可选,默认值为 "<s>") — 预训练期间使用的序列开头标记。可以作为序列分类标记。

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

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

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

  • sep_token (str, 可选,默认值为 "</s>") — 分隔符标记,用于从多个序列构建序列,例如序列分类的两个序列或问答的文本和问题。它也用作使用特殊标记构建的序列的最后一个标记。
  • cls_token (str, 可选,默认值为 "<s>") — 分类标记,用于执行序列分类(对整个序列进行分类,而不是对每个标记进行分类)。它是使用特殊标记构建的序列的第一个标记。
  • unk_token (str, 可选, 默认值:"<unk>") — 未知词元。不在词汇表中的词元无法转换为 ID,将改为此词元。
  • pad_token (str, 可选, 默认值:"<pad>") — 用于填充的词元,例如在对不同长度的序列进行批处理时。
  • mask_token (str, 可选, 默认值:"<mask>") — 用于屏蔽值的词元。这是在使用掩码语言建模训练此模型时使用的词元。这是模型将尝试预测的词元。
  • sp_model_kwargs (dict, 可选) — 将传递给 SentencePieceProcessor.__init__() 方法。 SentencePiece 的 Python 包装器 可用于(除其他事项外)设置:

    • enable_sampling: 启用子词正则化。

    • nbest_size: 一元模型的采样参数,对于 BPE-Dropout 无效。

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

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

改编自 CamembertTokenizerBartTokenizer。构建 BARThez 词元化器。基于 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], 可选) — 用于序列对的可选第二个 ID 列表。

返回值

List[int]

包含适当特殊词元的 输入 ID 列表。

通过连接和添加特殊词元,从序列或一对序列构建用于序列分类任务的模型输入。BARThez 序列具有以下格式

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

convert_tokens_to_string

< >

( tokens )

将词元序列(字符串)转换为单个字符串。

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]

零的列表。

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

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], 可选) — 用于序列对的可选第二个 ID 列表。
  • already_has_special_tokens (bool, 可选, 默认值为 False) — 令牌列表是否已使用 tokenizer prepare_for_model 方法格式化为特殊令牌。

返回值

List[int]

范围为 [0, 1] 的整数列表:特殊令牌为 1,序列令牌为 0。

从没有添加特殊令牌的令牌列表中检索序列 ID。当使用 tokenizer prepare_for_model 方法添加特殊令牌时,会调用此方法。

BarthezTokenizerFast

class transformers.BarthezTokenizerFast

< >

( vocab_file = None tokenizer_file = None 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) — SentencePiece 文件(通常具有 .spm 扩展名),其中包含实例化分词器所需的词汇表。
  • bos_token (str, 可选,默认为 "<s>") — 预训练期间使用的序列开头标记。 可以用作序列分类标记。

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

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

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

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

改编自 CamembertTokenizerBartTokenizer。 构建一个“快速” BARThez 分词器。 基于 SentencePiece

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

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], 可选) — 序列对的可选第二个 ID 列表。

返回值

List[int]

包含适当特殊词元的 输入 ID 列表。

通过连接和添加特殊词元,从序列或一对序列构建用于序列分类任务的模型输入。BARThez 序列具有以下格式

  • 单个序列:<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]

零的列表。

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

< > 在 GitHub 上更新