Transformers 文档
myt5
并获得增强的文档体验
开始使用
该模型于 2024-03-15 发布,并于 2024-10-06 添加到 Hugging Face Transformers。
myt5
概述
myt5模型在 MYTE: Morphology-Driven Byte Encoding for Better and Fairer Multilingual Language Modeling 中被提出,作者是 Tomasz Limisiewicz, Terra Blevins, Hila Gonen, Orevaoghene Ahia, 和 Luke Zettlemoyer。MyT5 (Myte T5) 是一个基于 T5 架构的多语言语言模型。该模型使用了论文中描述的词形驱动字节 (MYTE) 表示。与 UTF-8 编码使用的字符不同,MYTE 使用与词素对应的码点。作为先决条件,我们使用了无监督词形分割 (Morfessor) 来获得 99 种语言的词素列表。然而,在使用 Hub 提供的预定义词素列表时,不需要词形分割步骤(参见:Tomli/myt5-base)。
论文摘要如下:
多语言语言建模中的一个主要考虑因素是如何最好地表示具有不同词汇和文字系统的语言。尽管当代的文本编码方法涵盖了世界上大多数的书写系统,但它们倾向于偏向于全球西方的高资源语言。因此,代表性不足的语言的文本往往被分割成冗长的、语言上无意义的单元序列。为了解决这些差异,我们引入了一种新的范式,该范式使用跨不同语言的固定大小的片段来编码相同的信息。我们的编码约定 (MYTE) 基于词素,因为与先前方法使用的字符相比,词素在不同语言中的分布更均衡。我们证明了 MYTE 对所有 99 种分析语言都能产生更短的编码,其中非欧洲语言和非拉丁字母脚本的改进尤为显著。这反过来又提高了多语言 LM 的性能,并缩小了不同语言之间的困惑度差距。
该模型由 Tomasz Limisiewicz 贡献。原始代码可以在 这里找到。
MyT5Tokenizer
class transformers.MyT5Tokenizer
< source >( 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>") — 序列结束标记。 - unk_token (
str, optional, defaults to"<unk>") — 未知标记。无法转换为 ID 的标记将被设置为此标记。 - pad_token (
str, optional, defaults to"<pad>") — 用于填充的标记,例如在对不同长度的序列进行批处理时。 - extra_ids (
int, optional, defaults to 125) — 添加的额外 ID 数量,用于作为哨兵。这些标记可以访问为“<extraid{%d}>”,其中“{%d}”是 0 到 extra_ids-1 之间的数字。额外的标记从词汇表的末尾开始索引(“<extra_id_0>”是词汇表中最后一个标记,就像 ByT5 预处理中那样,请参阅 此处)。 - additional_special_tokens (
list[str], optional) — Tokenizer 使用的附加特殊标记。
构建一个 MyT5 分词器。
此分词器继承自 PreTrainedTokenizer,其中包含大部分主要方法。用户应参考此超类以获取有关这些方法的更多信息。
build_inputs_with_special_tokens
< source >( token_ids_0: list token_ids_1: list[int] | None = None ) → list[int]
通过连接和添加特殊标记,从序列或序列对构建用于序列分类任务的模型输入。序列格式如下:
- 单个序列:
X </s> - 序列对:
A </s> B </s>
get_special_tokens_mask
< source >( token_ids_0: list token_ids_1: list[int] | None = None already_has_special_tokens: bool = False ) → list[int]
从没有添加特殊标记的标记列表中检索序列ID。此方法在使用分词器prepare_for_model方法添加特殊标记时调用。
create_token_type_ids_from_sequences
< source >( token_ids_0: list token_ids_1: list[int] | None = None ) → list[int]
创建用于序列对分类任务的掩码。MyT5 不使用 token type ids,因此返回一个零列表。