Transformers documentation
myt5
该模型于 2024-03-15 在 HF papers 上发布,并于 2024-10-06 贡献至 Hugging Face Transformers。
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 架构的多语言语言模型。 该模型使用了我们在论文中描述的 morphologically-driven byte(MYTE)表示法。MYTE 使用对应于词素的码点,而不同于 UTF-8 编码中使用的字符。 作为前提条件,我们使用了无监督形态学切分(Morfessor)来获取 99 种语言的词素清单。 但是,当使用来自 hub 的预定义词素清单时(参见:Tomli/myt5-base),则不需要进行形态学切分步骤。
该论文的摘要如下:
多语言语言建模中的一个关键考量是如何最佳地表示具有不同词汇和文字系统的语言。尽管当前的文本编码方法涵盖了世界上大多数书写系统,但它们对西方高资源语言存在偏见。因此,代表性不足的语言的文本往往被切分为由语言学上无意义的单元组成的长序列。为了解决这种不均衡,我们提出了一种新的范式,该范式使用跨不同语言大小一致的片段来编码相同的信息。我们的编码约定(MYTE)基于词素,因为与之前方法中使用的字符相比,词素的词表在不同语言之间更加均衡。我们证明,MYTE 为所有 99 种分析语言生成了更短的编码,其中非欧洲语言和非拉丁文字系统的改进最为显著。这进而提升了多语言语言模型的性能,并缩小了不同语言之间的困惑度差距。
该模型由 Tomasz Limisiewicz 贡献。 原始代码可在 此处 找到。
MyT5Tokenizer
class transformers.MyT5Tokenizer
< source >( vocab_fileeos_token = '</s>'unk_token = '<unk>'pad_token = '<pad>'extra_ids = 125additional_special_tokens = None**kwargs )
参数
- vocab_file (
str) — 包含字节重写规则的文件。 - eos_token (
str,可选,默认为"</s>") — 序列结束标记。 - unk_token (
str,可选,默认为"<unk>") — 未知标记。不在词汇表中的标记无法转换为 ID,因此会被设置为该标记。 - pad_token (
str,可选,默认为"<pad>") — 用于填充的标记,例如在对长度不同的序列进行批处理时。 - extra_ids (
int,可选,默认为 125) — 在词表末尾添加一定数量的额外 id,用作哨兵。这些 token 可通过“id{%d}>”访问,其中“{%d}”是 0 到 extra_ids-1 之间的数字。额外 token 从词表末尾开始索引,一直延伸到开头(“ ”是词表中的最后一个 token,类似于 ByT5 预处理,参见 此处)。 - additional_special_tokens (
list[str],可选) — 分词器使用的额外特殊标记。
构建一个 MyT5 分词器。
该分词器继承自 PreTrainedTokenizer,其中包含了大部分主要方法。用户应参考该父类以获取有关这些方法的更多信息。
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
通过拼接并添加特殊标记,从单个序列或序列对构建用于序列分类任务的模型输入。序列的格式如下:
- 单条序列:
X </s> - 序列对:
A </s> B </s>
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → list[int]
从未添加特殊标记的标记列表中获取序列 ID。当使用分词器的 prepare_for_model 方法添加特殊标记时,会调用此方法。
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
根据传入的两个序列创建掩码,用于序列对分类任务。MyT5 不使用 token type ids,因此返回一个全零列表。