文本到文本迁移转换器(T5)的开发者在文章中写道:
通过T5,我们建议将所有自然语言处理任务重构为统一的文本到文本格式,其中输入和输出始终是文本字符串,这与只能输出类别标签或输入文本片段的BERT风格模型形成对比。我们的文本到文本框架使我们能够在任何自然语言处理任务上使用相同的模型、损失函数和超参数。
T5-Base是具有2.2亿参数的检查点。
开发者在博客文章中写道,该模型:
我们的文本到文本框架使我们能够在任何自然语言处理任务上使用相同的模型、损失函数和超参数,包括机器翻译、文档摘要、问答以及分类任务(例如情感分析)。我们甚至可以将T5应用于回归任务,通过训练它预测数字的字符串表示而非数字本身。
需要更多信息。
需要更多信息。
需要更多信息。
该模型在 Colossal Clean Crawled Corpus (C4) 上进行预训练,该语料库是在与 T5 相同的 研究论文 背景下开发和发布的。
该模型在无监督(1.)和有监督任务(2.)的多任务混合上进行预训练。 因此,以下数据集分别用于(1.)和(2.):
模型开发者在其摘要中写道:
在本文中,我们通过引入一个统一框架来探索自然语言处理(NLP)迁移学习技术的前景,该框架将所有语言问题都转化为文本到文本的格式。我们的系统性研究在数十项语言理解任务上,对预训练目标、架构、无标签数据集、迁移方法及其他因素进行了比较。
所介绍的框架,即T5框架,包含一个整合了论文中研究方法的训练流程。有关更多详细信息,请参见研究论文。
开发者在24项任务上对模型进行了评估,完整详情请参见研究论文。
有关T5-Base的完整结果,请参见研究论文中的表14。
可以使用Lacoste等人(2019)提出的机器学习影响计算器来估算碳排放。
BibTeX:
@article{2020t5,
author = {Colin Raffel and Noam Shazeer and Adam Roberts and Katherine Lee and Sharan Narang and Michael Matena and Yanqi Zhou and Wei Li and Peter J. Liu},
title = {Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer},
journal = {Journal of Machine Learning Research},
year = {2020},
volume = {21},
number = {140},
pages = {1-67},
url = {http://jmlr.org/papers/v21/20-074.html}
}APA格式:
使用以下代码开始使用模型。
import argparse
import torch
from openmind import AutoTokenizer
from openmind_hub import snapshot_download
from transformers import T5ForConditionalGeneration
def parse_args():
parser = argparse.ArgumentParser(description="Eval the model")
parser.add_argument(
"--model_name_or_path",
type=str,
help="Path to model",
default=None,
)
args = parser.parse_args()
return args
def main():
args = parse_args()
if args.model_name_or_path:
model_path = args.model_name_or_path
else:
model_path = snapshot_download("PyTorch-NPU/t5_base", revision="main", resume_download=True,
ignore_patterns=["*.h5", "*.ot", "*.msgpack"])
tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False)
model = T5ForConditionalGeneration.from_pretrained(model_path, device_map="auto")
input_text = "translate English to German: Hello World!"
inputs = tokenizer.encode(input_text, return_tensors="pt").to(model.device)
print()
print("prompt:")
print(input_text)
outputs = model.generate(inputs, max_length=40, num_beams=4, early_stopping=True)
print("result:")
print(tokenizer.decode(outputs[0]))
if __name__ == "__main__":
main()