模型:
bigscience/T0
如何发音模型的名称?T0应该发音为"T Zero"(如"T5 for zero-shot"中的T5),而任何"p"则代表"Plus",所以"T0pp"应该发音为"T Zero Plus Plus"!
官方仓库: bigscience-workshop/t-zero
T0*在英语自然语言提示上展示了零样本任务泛化的能力,在许多任务上优于GPT-3,同时体积缩小了16倍。它是一系列编码器-解码器模型,训练目标是在多个以自然语言提示为指定的不同任务上进行。我们将许多英语有监督数据集转化为提示集,每个提示集包含多个模板,使用不同的表述方式。这些提示数据集可以用来评估模型在指定的自然语言未见任务上的能力。为了获得T0*,我们对预训练的语言模型进行微调,训练它在多任务混合数据集上进行,这些数据集涵盖了许多不同的NLP任务。
您可以使用这些模型对任务进行推理,通过用自然语言指定查询,模型会生成一个预测结果。例如,您可以问"这个评论是正面的还是负面的?评论:这是你会买到的最好的铸铁平底锅",模型有望生成"正面"。
您可以尝试一些其他的示例:
我们提供了我们在 paper 中介绍的模型以及削减模型的能力。我们建议使用 T0pp (发音为"T Zero Plus Plus")作为检查点,因为它在各种NLP任务中的表现(平均值)最好。
Model | Number of parameters |
---|---|
1235321 | 11 billion |
1236321 | 11 billion |
1237321 | 11 billion |
1238321 | 11 billion |
1239321 | 11 billion |
12310321 | 3 billion |
以下是在PyTorch中使用模型的方式:
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM tokenizer = AutoTokenizer.from_pretrained("bigscience/T0pp") model = AutoModelForSeq2SeqLM.from_pretrained("bigscience/T0pp") inputs = tokenizer.encode("Is this review positive or negative? Review: this is the best cast iron skillet you will ever buy", return_tensors="pt") outputs = model.generate(inputs) print(tokenizer.decode(outputs[0]))
如果您想使用另一个检查点,请替换AutoTokenizer和AutoModelForSeq2SeqLM中的路径。
注意:该模型是使用bf16激活进行训练的。因此,我们强烈不建议使用fp16进行推理。应优先选择fp32或bf16。
T0*模型基于 T5 ,这是一个基于Transformer的编码器-解码器语言模型,在 C4 上使用掩码语言建模风格的目标进行预训练。我们使用了公开可用的 language model-adapted T5 checkpoints ,这是使用标准语言建模目标,将T5额外训练了100,000步骤生成的数据。
在高层次上,输入文本通过编码器进行处理,解码器生成目标文本。模型通过标准的最大似然训练来微调,自动生成目标文本。它从未被训练生成输入文本。我们将训练数据的详细信息在下一节中详细介绍。
训练细节:
我们训练了不同变体的T0,使用不同的数据集混合。
Model | Training datasets |
---|---|
T0 | - Multiple-Choice QA: CommonsenseQA, DREAM, QUAIL, QuaRTz, Social IQA, WiQA, Cosmos, QASC, Quarel, SciQ, Wiki Hop - Extractive QA: Adversarial QA, Quoref, DuoRC, ROPES - Closed-Book QA: Hotpot QA*, Wiki QA - Structure-To-Text: Common Gen, Wiki Bio - Sentiment: Amazon, App Reviews, IMDB, Rotten Tomatoes, Yelp - Summarization: CNN Daily Mail, Gigaword, MultiNews, SamSum, XSum - Topic Classification: AG News, DBPedia, TREC - Paraphrase Identification: MRPC, PAWS, QQP |
T0p | Same as T0 with additional datasets from GPT-3's evaluation suite: - Multiple-Choice QA: ARC, OpenBook QA, PiQA, RACE, HellaSwag - Extractive QA: SQuAD v2 - Closed-Book QA: Trivia QA, Web Questions |
T0pp | Same as T0p with a few additional datasets from SuperGLUE (excluding NLI sets): - BoolQ - COPA - MultiRC - ReCoRD - WiC - WSC |
T0_single_prompt | Same as T0 but only one prompt per training dataset |
T0_original_task_only | Same as T0 but only original tasks templates |
T0_3B | Same as T0 but starting from a T5-LM XL (3B parameters) pre-trained model |
为了可复现性,我们在 P3 dataset 中发布了我们用于训练(和评估)的数据。提示示例可以在数据集页面上找到。
*:由于输入序列长度过长,我们将Hotpot QA重新设计为闭卷问答。
我们在一套保留任务上评估我们的模型:
Task category | Datasets |
---|---|
Natural language inference | ANLI, CB, RTE |
Coreference resolution | WSC, Winogrande |
Word sense disambiguation | WiC |
Sentence completion | COPA, HellaSwag, Story Cloze |
我们还在 BIG-bench benchmark 的子集上评估T0、T0p和T0pp:
即使我们有意地选择排除具有潜在有害内容的数据集进行微调,训练得到的模型仍然存在偏见。根据一些实验,T0++可能会生成被归类为阴谋论、有偏见、冒犯或过度强调性话题的答案:
语言模型可能会重现预训练语料库中的不良社会偏见。我们通过两种方式评估模型:首先是它们识别或标记性别偏见的能力,其次是它们重现这些偏见的程度。为了衡量模型识别性别偏见的能力,我们使用WinoGender Schemas(也称为SuperGLUE下的AX-g)和CrowS-Pairs来评估我们的模型。WinoGender Schemas是一组仅有一个代词的句子对,这些句子仅在句子中的一个代词的性别上有所不同,旨在测试性别偏差的存在。我们使用Diverse Natural Language Inference Collection( Poliak et al., 2018 )版本,将WinoGender视为文本蕴含任务,并报告准确性。CrowS-Pairs是用于测试掩码语言模型中的U.S.典型偏见程度的挑战数据集。我们通过预测两个句子中哪个是典型的(或反典型的)来重新构建任务,并报告准确性。对于每个数据集,我们评估5到10个提示。
Dataset | Model | Average (Acc.) | Median (Acc.) |
CrowS-Pairs | T0 | 59.2 | 83.8 |
T0p | 57.6 | 83.8 | |
T0pp | 62.7 | 64.4 | |
T0_single_prompt | 57.6 | 69.5 | |
T0_original_task_only | 47.1 | 37.8 | |
T0_3B | 56.9 | 82.6 | |
WinoGender | T0 | 84.2 | 84.3 |
T0p | 80.1 | 80.6 | |
T0pp | 89.2 | 90.0 | |
T0_single_prompt | 81.6 | 84.6 | |
T0_original_task_only | 83.7 | 83.8 | |
T0_3B | 69.7 | 69.4 |
为了衡量模型重现性别偏见的程度,我们使用WinoBias Schemas来评估模型。WinoBias Schemas是具有指示性的代词共指解析任务,潜在受到性别偏见的影响。WinoBias Schemas有两个模式(type1和type2),它们被分为支持和反对刻板印象的子集。"支持刻板印象"的例子是正确答案符合刻板印象的例子,而"反对刻板印象"的例子是反对刻板印象的例子。所有例子都有明确正确的答案,因此"支持"和"反对"子集之间分数的差异反映了刻板印象导致模型错误的程度。我们报告准确性,如果目标名词出现在模型的预测中,则将预测视为正确。我们评估了6个提示。
Model | Subset | Average (Acc.) | Median (Acc.) | ||||
Pro | Anti | Pro - Anti | Pro | Anti | Pro - Anti | ||
T0 | Type 1 | 68.0 | 61.9 | 6.0 | 71.7 | 61.9 | 9.8 |
Type 2 | 79.3 | 76.4 | 2.8 | 79.3 | 75.0 | 4.3 | |
T0p | Type 1 | 66.6 | 57.2 | 9.4 | 71.5 | 62.6 | 8.8 |
Type 2 | 77.7 | 73.4 | 4.3 | 86.1 | 81.3 | 4.8 | |
T0pp | Type 1 | 63.8 | 55.9 | 7.9 | 72.7 | 63.4 | 9.3 |
Type 2 | 66.8 | 63.0 | 3.9 | 79.3 | 74.0 | 5.3 | |
T0_single_prompt | Type 1 | 73.7 | 60.5 | 13.2 | 79.3 | 60.6 | 18.7 |
Type 2 | 77.7 | 69.6 | 8.0 | 80.8 | 69.7 | 11.1 | |
T0_original_task_only | Type 1 | 78.1 | 67.7 | 10.4 | 81.8 | 67.2 | 14.6 |
Type 2 | 85.2 | 82.3 | 2.9 | 89.6 | 85.4 | 4.3 | |
T0_3B | Type 1 | 82.3 | 70.1 | 12.2 | 83.6 | 62.9 | 20.7 |
Type 2 | 83.8 | 76.5 | 7.3 | 85.9 | 75 | 10.9 |
@misc{sanh2021multitask, title={Multitask Prompted Training Enables Zero-Shot Task Generalization}, author={Victor Sanh and Albert Webson and Colin Raffel and Stephen H. Bach and Lintang Sutawika and Zaid Alyafeai and Antoine Chaffin and Arnaud Stiegler and Teven Le Scao and Arun Raja and Manan Dey and M Saiful Bari and Canwen Xu and Urmish Thakker and Shanya Sharma Sharma and Eliza Szczechla and Taewoon Kim and Gunjan Chhablani and Nihal Nayak and Debajyoti Datta and Jonathan Chang and Mike Tian-Jian Jiang and Han Wang and Matteo Manica and Sheng Shen and Zheng Xin Yong and Harshit Pandey and Rachel Bawden and Thomas Wang and Trishala Neeraj and Jos Rozen and Abheesht Sharma and Andrea Santilli and Thibault Fevry and Jason Alan Fries and Ryan Teehan and Stella Biderman and Leo Gao and Tali Bers and Thomas Wolf and Alexander M. Rush}, year={2021}, eprint={2110.08207}, archivePrefix={arXiv}, primaryClass={cs.LG} }