T5
paper: 2019.10 Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
Task: Everything
Prompt: 前缀式人工prompt
Model: Encoder-Decoder
Take Away: 加入前缀Prompt,所有NLP任务都可以转化为文本生成任务
T5论文的初衷如标题所言,是为了全面公平的对比不同预训练和迁移策略的贡献和效果,避免在A模型上效果不好的预训练目标在B上可能效果更优的情况,对比项包括
-
预训练目标:语言模型,乱序还原,MLM(不同的掩码率),Span掩码, etc
-
预训练数据:构建C4数据集,从C4抽取不同领域语料来训练
-
模型架构: Encoder-Decoder,Decoder Only,Encoder Only
-
迁移策略:逐步解冻,全量微调,局部微调
-
其他:多任务预训练,模型大小
说句题外话,再看论文结果发现Encoder-Decoder的模型结果+SpanMLM损失函数效果最好。不知道这是否是谷歌押注T5,而没有像OpenAI一样选择Deocder结构的原因。
具体对比结果这里不细说,本文只关注T5为了公平对比以上差异,提出的Text2Text的通用建模框架:用相同的模型,相同的预训练,相同的损失函数和解码方式,把文本分类,摘要,翻译,QA都转化成了生成任务,而转化的方式就是通过加入前缀prompt。
针对不同的下游微调任务,我们看下T5提出的Text2Text是如何构建prompt模板的
-
WMT英语到德语的翻译任务,输入是'translate English to German:'+input, 输出是翻译结果
-
CNN Mail摘要任务: 文本摘要任务,输入是‘Summarize:'+input,输出是摘要
-
MNLI任务:输入是'mnli hypothesis:'+假设+'premise:'+叙述,输出是contradiction, entailment,neutral
-
STS文本相似任务:输入是'stsb sentence1:'+input1+‘sentence2:’+input2, 输出是1~5的打分(离散化)
-
问答SQuAD任务:输入是'question:'+提问+ 'context:'+上下文,输出是答案
不难发现在T5的时代,prompt模板的构建还比较粗糙,更多是单纯的任务名称+任务类型来区分不同的NLP任务,只是让模型在解码时多一层条件概率,既给定不同prompt前缀在解码时采用不同的条件概率(attention)。并没有太多从语义和上下文关联的角度去进行prompt模板的构建,我猜这是T5在论文中提到他们尝试了不同的prompt模板发现效果影响有限的原因(哈哈因为都不太好所以没啥差异),不不能否定T5在通用LM上做出的贡献~
PET-TC(a)
paper a: 2020.1 Exploiting Cloze Questions for Few Shot Text Classification and Natural
prompt: 单字完形填空式人工Prompt
Task: Text Classification
Model: Roberta-large, XLM-R
Take Away: 加入完形填空式Prompt把文本分类任务转化成单字MLM