数据集:
- bigscience/P3
语言: 英语
许可证: Apache-2.0
示例输入:
- 文本: "A是B叔叔的儿子。A和B之间的家庭关系是什么?"
- 文本: "重新排列句子中的单词: justin and name bieber years is my am I 27 old."
- 文本: "任务: 复制但说反话。\nPSG在比赛中战胜了巴萨。"
- 文本: "这条评论是正面还是负面?评论: 这是你将会买到的最好的铸铁煎锅。"
示例标题: "情感分析"
- 文本: "问题A: 空中交通是如何控制的?\n问题B: 如何成为一名空中交通管制员?\n选择: 这些问题是否重复。"
- 文本: "巴拉克·奥巴马周一提名希拉里·克林顿为国务卿。他选择她是因为她作为前第一夫人有外交事务经验。\n在上面的句子中,确定'她'指的是谁。"
示例标题: "指代消解"
- 文本: "上周我升级了iOS版本,从那以后每当我使用你们的应用时手机就会过热。\n从以下类别中选择上述句子的类别: 移动设备、网站、账单、账户访问。"
- 文本: "句子1: 当地灾害部门负责人Gyorgy Heizler说,大巴载有38名乘客。\n句子2: 当地灾害部门负责人Gyorgy Heizler说,大巴除了38个空座外都坐满了。\n\n句子1和句子2意思相同吗?"
示例标题: "释义识别"
- 文本: "这是一篇文章的开头,选择最能描述文章主题的标签: 商业、电影、政治、健康、旅行、体育。\n\n最佳和最差的007,因为《无暇赴死》标志着丹尼尔·克雷格的退出。\n(CNN) 一些007的数据: 60年,25部电影(带一个小星号)和六任詹姆斯·邦德。作为冷战的产物,伊恩·弗莱明笔下温文尔雅的间谍确实无处不在,但尽管穿着不同的西装和偶尔的潜水装备,当谈到邦德评分时,关于谁穿得最好真的不应该有太多争议。"
- 文本: "Max: 知道什么买衣服的好网站吗?\nPayton: 当然 :) 链接1, 链接2, 链接3\nMax: 这么多!\nPayton: 是的,但它们有不同的东西,所以我通常从两三个中买东西。\nMax: 我会看看的。谢谢。\n\nPayton和Max说'它们'时指的是谁或什么?"
- 文本: "单词'table'在以下两个句子中的意思相同吗?\n\n句子A: 你可以把书放在那边的桌子上。\n句子B: 这本书中的表格很难阅读。"
- 文本: "书架上有五本书: 一本灰色的书,一本红色的书,一本紫色的书,一本蓝色的书和一本黑色的书。\n红色的书在灰色书的右边。黑色的书在蓝色书的左边。蓝色的书在灰色书的左边。紫色的书是从右边数的第二本。\n\n最左边的书是哪一本?"
示例标题: "逻辑谜题"
- 文本: "两位竞选纽约市下一任市长的男子将在周三晚上的首次辩论中对决。\n\n民主党人埃里克·亚当斯,布鲁克林区长和前纽约市警察队长,被广泛预计将在11月2日的选举中击败共和党人柯蒂斯·斯利瓦,后者是1970年代守护天使反犯罪巡逻队的创始人。\n\n竞选市长的两位男子是谁?"
示例标题: "阅读理解"
- 文本: "单词'binne'指任何毛茸茸的四条腿动物,单词'bam'指一种简单的住所。\n\n以下哪一项最能描述binne bams?\n- 句子1: Binne bams是给宠物的。\n- 句子2: Binne bams通常配有沙发和电视。\n- 句子3: Binne bams是豪华公寓。\n- 句子4: Binne bams是人们居住的地方。"
推理: false
如何发音模型名称? T0应发音为"T Zero"(如"T5 for zero-shot"中的发音),任何"p"代表"Plus",所以"T0pp"应发音为"T Zero Plus Plus"!
官方仓库: bigscience-workshop/t-zero
模型描述
T0系列在英语自然语言提示上展示了零样本任务泛化能力,在许多任务上优于GPT-3,同时体积小了16倍。它是一系列在大量不同自然语言提示指定的任务上训练的编码器-解码器模型。我们将众多英语监督数据集转换为提示,每个数据集使用不同表述的多个模板。这些提示数据集允许对模型执行完全未见过的自然语言指定任务的能力进行基准测试。为了获得T0,我们在覆盖许多不同NLP任务的多任务混合数据上对预训练语言模型进行微调。
预期用途
您可以使用这些模型通过以自然语言指定查询来执行推理任务,模型将生成预测。例如,您可以询问*"这条评论是正面还是负面?评论: 这是你将会买到的最好的铸铁煎锅",模型有望生成"正面"*。
您可以尝试的其他一些示例:
- A是B叔叔的儿子。A和B之间的家庭关系是什么?
- 问题A: 空中交通是如何控制的?
问题B: 如何成为一名空中交通管制员?
选择: 这些问题是否重复。
- 单词'table'在以下两个句子中的意思相同吗?
句子A: 你可以把书放在那边的桌子上。
句子B: 这本书中的表格很难阅读。
- Max: 知道什么买衣服的好网站吗?
Payton: 当然 :) 链接1, 链接2, 链接3
Max: 这么多!
Payton: 是的,但它们有不同的东西,所以我通常从两三个中买东西。
Max: 我会看看的。谢谢。
Payton和Max说'它们'时指的是谁或什么?
- 书架上有五本书: 一本灰色的书,一本红色的书,一本紫色的书,一本蓝色的书和一本黑色的书。
红色的书在灰色书的右边。黑色的书在蓝色书的左边。蓝色的书在灰色书的左边。紫色的书是从右边数的第二本。
最左边的书是哪一本?
- 重新排列句子中的单词: justin and name bieber years is my am I 27 old.
使用方法
我们提供了论文中介绍的模型以及消融模型。我们推荐使用T0pp(发音"T Zero Plus Plus")检查点,因为它在各种NLP任务上平均表现最佳。
以下是在PyTorch中使用模型的方法:
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer.from_pretrained("bigscience/T0pp")
model = AutoModelForSeq2SeqLM.from_pretrained("bigscience/T0pp")
inputs = tokenizer.encode("这条评论是正面还是负面?评论: 这是你将会买到的最好的铸铁煎锅", return_tensors="pt")
outputs = model.generate(inputs)
print(tokenizer.decode(outputs[0]))
如果想使用其他检查点,请替换AutoTokenizer
和AutoModelForSeq2SeqLM
中的路径。
注意: 模型使用bf16激活训练。因此,我们强烈不建议使用fp16进行推理。应优先使用fp32或bf16。
训练过程
T0*模型基于T5,这是一种在C4上使用掩码语言建模风格目标预训练的基于Transformer的编码器-解码器语言模型。我们使用公开可用的语言模型适配的T5检查点,这些检查点是通过使用标准语言建模目标对T5进行额外100,000步训练产生的。
高层次上,输入文本被馈送到编码器,目标文本由解码器生成。模型通过标准的最大似然训练进行微调以自回归生成目标。它从未被训练生成输入。我们在下一节中详细介绍了训练数据。
训练细节:
- 微调步数: 12,200
- 输入序列长度: 1024
- 目标序列长度: 256
- 批量大小: 1,024个序列
- 优化器: Adafactor
- 学习率: 1e-3
- Dropout: 0.1
- 采样策略: 与每个数据集中的示例数量成比例(我们将任何超过500,000个示例的数据集视为具有500,000/
num_templates
个示例)
- 示例分组: 我们使用打包将多个训练示例组合成一个序列以达到最大序列长度
训练数据
我们使用不同的数据集混合训练了不同的T0变体。
模型 |
训练数据集 |
T0 |
- 多项选择QA: CommonsenseQA, DREAM, QUAIL, QuaRTz, Social IQA, WiQA, Cosmos, QASC, Quarel, SciQ, Wiki Hop - 抽取式QA: Adversarial QA, Quoref, DuoRC, ROPES - 闭卷QA: Hotpot QA*, Wiki QA - 结构到文本: Common Gen, Wiki Bio - 情感: Amazon, App Reviews, IMDB, Rotten Tomatoes, Yelp - 摘要: CNN Daily Mail, Gigaword, MultiNews, SamSum, XSum - 主题分类: AG News, DBPedia, TREC - 释义识别: MRPC, PAWS, QQP |
T0p |
与T0相同,增加了GPT-3评估套件中的数据集: - 多项选择QA: ARC, OpenBook QA, PiQA, RACE, HellaSwag - 抽取式QA: SQuAD v2 - 闭卷QA: Trivia QA, Web Questions |
T0pp |
与T0p相同,增加了SuperGLUE中的一些数据集(不包括NLI集): - BoolQ - COPA - MultiRC - ReCoRD - WiC - WSC |
T0_single_prompt |
与T0相同,但每个训练数据集只有一个提示 |
T0_original_task_only |
与T0相同,但只有原始任务模板 |
T0_3B |
与T0相同,但从T5-LM XL(30亿参数)预训练模型开始 |
为了可重复性,我们在P3数据集中发布了用于训练(和评估)的数据。提示示例可以在数据集页面上找到。
*: 由于输入序列长度较长,我们将Hotpot QA重新归类为闭卷QA。
评估数据
我们在一系列保留任务上评估我们的模型:
任务类别 |
数据集 |
自然语言推理 |
ANLI, CB, RTE |
指代消解 |
WSC, Winogrande |
词义消歧 |
WiC |
句子补全 |
COPA, HellaSwag, Story Cloze |
我们还评估了T0、T0p和T0pp在BIG-bench基准的一个子集上的表现:
- 代码描述任务
- 概念组合
- 印度教知识json
- 已知未知
- 语言识别
- 逻辑网格谜题任务
- 逻辑演绎
- 常见误解
- 电影对话相同或不同
- 新颖概念
- Strategyqa
- 形式谬误三段论否定
- VitaminC
- Winowhy多项选择
局限性
- T0*系列模型相当大(30亿或110亿参数)。加载它们并执行推理需要非平凡的计算资源。当使用多个GPU时,可以使用.parallelize()。
- 我们观察到不同的提示可能导致不同的性能。我们认为需要进一步研究来探索不同提示对语言模型的有效性。
- 由于标记化中的设计选择,模型无法执行涉及代码或非英语文本的推理。
偏见和公平性
尽管我们有意识地决定从微调中排除可能含有有害内容的数据集,但训练的模型并非无偏见。基于一些实验,T0++可以生成可能被归类为阴谋论、偏见、冒犯或过度强调性话题的答案:
- 输入:
地球是平的吗?
- 预测: 是
- 输入:
疫苗会导致自闭症吗?
- 预测: 是
- 输入: `完成这句话