Transformers 文档

myt5

Hugging Face's logo
加入 Hugging Face 社区

并获取增强的文档体验

开始使用

myt5

概览

myt5 模型由 Tomasz Limisiewicz、Terra Blevins、Hila Gonen、Orevaoghene Ahia 和 Luke Zettlemoyer 在论文 MYTE: Morphology-Driven Byte Encoding for Better and Fairer Multilingual Language Modeling 中提出。MyT5 (Myte T5) 是一个基于 T5 架构的多语言语言模型。该模型使用了我们论文中描述的形态驱动字节 (MYTE) 表示。MYTE 使用对应于语素的代码点,这与 UTF-8 编码中使用的字符形成对比。作为先决条件,我们使用了无监督形态分割 (Morfessor) 来获取 99 种语言的语素清单。但是,当使用来自 Hub 的预定义语素清单时,则不需要形态分割步骤(参见:Tomli/myt5-base)。

论文摘要如下:

多语言语言建模中的一个主要考虑因素是如何最好地表示具有不同词汇和文字的语言。尽管当代的文本编码方法涵盖了世界上大多数书写系统,但它们对全球西方的资源丰富语言表现出偏见。因此,代表性不足的语言文本往往被分割成 linguistically meaningless units 的长序列。为了解决这些差异,我们引入了一种新的范例,它使用跨多种语言的一致大小的片段来编码相同的信息。我们的编码约定 (MYTE) 基于语素,因为它们的清单比以前方法中使用的字符在不同语言之间更加平衡。我们表明,MYTE 为所有 99 种分析的语言生成了更短的编码,其中非欧洲语言和非拉丁文字的改进最为显著。反过来,这提高了多语言 LM 的性能,并缩小了各种语言的困惑度差距。

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

MyT5Tokenizer

class transformers.MyT5Tokenizer

< >

( vocab_file eos_token = '</s>' unk_token = '<unk>' pad_token = '<pad>' extra_ids = 125 additional_special_tokens = None **kwargs )

参数

  • vocab_file (str) — 包含字节重写规则的文件。
  • eos_token (str, optional, defaults to "</s>") — 序列结束符 token。
  • unk_token (str, optional, defaults to "<unk>") — 未知 token。词汇表中不存在的 token 无法转换为 ID,而是设置为此 token。
  • pad_token (str, optional, defaults to "<pad>") — 用于填充的 token,例如在对不同长度的序列进行批处理时。
  • extra_ids (int, optional, defaults to 125) — 添加一定数量的额外 ID,添加到词汇表的末尾,用作哨兵。这些 token 可以通过 “<extra_id_{%d}>” 访问,其中 “{%d}” 是介于 0 和 extra_ids-1 之间的数字。额外的 token 从词汇表的末尾索引到开头(“<extra_id_0>” 是词汇表中的最后一个 token,类似于 ByT5 预处理,请参阅 此处)。
  • additional_special_tokens (List[str], optional) — tokenizer 使用的额外特殊 token。

构建 MyT5 tokenizer。

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

build_inputs_with_special_tokens

< >

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

参数

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

返回值

List[int]

包含适当特殊 token 的 input IDs 列表。

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

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

get_special_tokens_mask

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = 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 列表是否已使用模型的特殊 token 格式化。

返回值

List[int]

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

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

create_token_type_ids_from_sequences

< >

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

参数

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

返回值

List[int]

零列表。

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

save_vocabulary

< >

( save_directory: str filename_prefix: typing.Optional[str] = None )

MyT5Tokenizer

class transformers.MyT5Tokenizer

< >

( vocab_file eos_token = '</s>' unk_token = '<unk>' pad_token = '<pad>' extra_ids = 125 additional_special_tokens = None **kwargs )

参数

  • vocab_file (str) — 包含字节重写规则的文件。
  • eos_token (str, optional, defaults to "</s>") — 序列结束符 token。
  • unk_token (str, optional, defaults to "<unk>") — 未知 token。词汇表中不存在的 token 无法转换为 ID,而是设置为此 token。
  • pad_token (str, optional, defaults to "<pad>") — 用于填充的 token,例如在对不同长度的序列进行批处理时。
  • extra_ids (int, optional, defaults to 125) — 添加一定数量的额外 ID,添加到词汇表的末尾,用作哨兵。这些 token 可以通过 “<extra_id_{%d}>” 访问,其中 “{%d}” 是介于 0 和 extra_ids-1 之间的数字。额外的 token 从词汇表的末尾索引到开头(“<extra_id_0>” 是词汇表中的最后一个 token,类似于 ByT5 预处理,请参阅 此处)。
  • additional_special_tokens (List[str], optional) — tokenizer 使用的额外特殊 token。

构建 MyT5 tokenizer。

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

build_inputs_with_special_tokens

< >

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

参数

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

返回值

List[int]

包含适当特殊 token 的 input IDs 列表。

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

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

convert_tokens_to_string

< >

( tokens )

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

create_token_type_ids_from_sequences

< >

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

参数

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

返回值

List[int]

零列表。

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

get_special_tokens_mask

< >

( token_ids_0: typing.List[int] token_ids_1: typing.Optional[typing.List[int]] = 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 列表是否已使用模型的特殊 token 格式化。

返回值

List[int]

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

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

< > 在 GitHub 上更新