HuggingFace镜像/byt5_large
模型介绍文件和版本分析
下载使用量0

ByT5 - large

论文:ByT5: Towards a token-free future with pre-trained byte-to-byte models

作者:Linting Xue, Aditya Barua, Noah Constant, Rami Al-Rfou, Sharan Narang, Mihir Kale, Adam Roberts, Colin Raffel

改动说明

在原始 README 中新增了 CANN 版本依赖说明,并修改了示例代码。

推理示例

from openmind import AutoTokenizer
from transformers import T5ForConditionalGeneration

device = "npu:0"
model_name = "PyTorch-NPU/byt5_large"

tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False)
model = T5ForConditionalGeneration.from_pretrained(model_name).to(device)

model_inputs = tokenizer(["Life is like a box of chocolates.", "Today is Monday."], padding="longest",
                          return_tensors="pt").to(device)
labels_dict = tokenizer(["La vie est comme une boîte de chocolat.", "Aujourd'hui c'est lundi."], padding="longest",
                    return_tensors="pt").to(device)
labels = labels_dict.input_ids
loss = model(**model_inputs, labels=labels).loss
print()
print("loss:", loss.item())

摘要

大多数广泛使用的预训练语言模型都基于单词或子词单元对应的 token 序列进行操作。将文本编码为 token 序列需要一个分词器,而分词器通常是作为独立于模型的组件创建的。直接对原始文本(字节或字符)进行操作的无 token 模型具有诸多优势:它们可以开箱即用地处理任何语言的文本,对噪声更具鲁棒性,并且通过去除复杂且易错的文本预处理流水线,最大限度地减少了技术债务。由于字节或字符序列比 token 序列更长,以往关于无 token 模型的研究往往会引入新的模型架构,以分摊直接对原始文本进行操作的成本。在本文中,我们表明标准的 Transformer 架构只需进行少量修改,即可用于处理字节序列。我们仔细分析了参数数量、训练 FLOPs 和推理速度方面的权衡,并证明字节级模型与 token 级模型具有竞争力。我们还证明,字节级模型对噪声的鲁棒性显著提高,并且在对拼写和发音敏感的任务上表现更优。作为我们贡献的一部分,我们发布了一组基于 T5 架构的新的预训练字节级 Transformer 模型,以及我们实验中使用的所有代码和数据。

model image