1. 概述
1.1 基本概念
用一句话归纳模板学习,行将原本的输入文本填入一个带有输入和输出槽位的模板,然后运用预练习言语模型猜测整个语句,终究能够运用这个完好的语句导出终究需求的答案。
模板学习最吸引人的关键在于其通过已有的预练习模型,定义适宜的模板就能完结 few-shot 或许 zero-shot 使命,这样能够使得言语模型能够在预练习阶段运用尽或许多的信息进行练习,后续也能最大效率的发挥其作用。
从数学视点来看模板学习,咱们传统的监督学习解决的是 P (y|x; ) 问题,练习一个模型优化其参数 ,在面对输入 x 时给出输出 y 的概率;而根据模板学习的办法期望解决的是 P (x; ) 问题,即给定一个参数为的模型,你需求告诉我输入文本 x 呈现的概率,然后运用这个概率去猜测正确的 y。这样就能够削减乃至是防止需求很多的标示数据。
1.2 典型组成
根据上面的概述能够看出,模板学习能够说由三个部分组成——模板规划、答案查找和答案映射。
模板的典型特色为有必要具有两个槽位,一个用来填入原始输入文本,一个用来填入答案。根据答案槽位位置的不同能够分为两个大类,答案槽位坐落整个模板中心时一般被称为完形填空式模板,而答案槽位坐落末尾时一般被称为前缀式模板。
答案查找即核算答案空间中的一切候选答案填入对应槽位时 LM 的最高打分成果,所谓答案空间即根据详细使命构建的候选答案,比方关于生成使命来说答案空间便是悉数的 token,而关于某些分类使命答案空间或许是固定规模的词组,如「很好」「不错」「还行」「极差」「垃圾」代表「-1」「0」「1」。当然终究挑选哪些答案作为最佳答案的战略不是仅有的,比方能够简略的挑选最高分答案,也能够根据 LM 的打分进行随机采样多个答案。
答案映射即根据最优答案得到下流使命要求的标签,如前文提到的「很好」映射为「1」,「极差」映射为「-1」。
2. 预练习言语模型
这部分对各大预练习言语模型按多个维度进行分类,以便了解在模板学习中怎么挑选适宜言语模型。
2.1 练习方针
预练习言语模型的方针首要是两个:1)文本顺序呈现的概率;2)文本降噪。
以文本顺序呈现的概率为方针的模型遍及都是以自回归的方法猜测一个序列中顺序呈现的 token(经常会是自左至右的),这种模型被称为规范言语模型 (Standard Language Model, SLM) ,比方 GPT。
以文本降噪为优化方针的模型往往是对一个给定文本进行噪音处理,终究去猜测原始的去噪文本。运用有噪声的部分数据去重建原始数据的计划被称为损坏文本重建(Corrupted Text Reconstruction, CTR ) ,比方 BERT;不管是否有噪音运用一切输入文本去重建原始数据的计划被称为全文本重建(Full Text Reconstruction, FTR) ,比方 BART。
2.2 加噪方法
常见的参加噪声的方法首要是四种,遮盖、替换、删去和置换。
2.3 编码方向以及典型代表
现在首要运用的编码方向首要有三种:1)从左至右;2)双向。
从左至右的典型使用是 GPT 家族;双向模型的一般都是 MLM(masked language model),典型模型是 BERT;将这两种方向进行结合,即 x 部分运用双向 mask 方法,y 部分运用从左至右方法,这种方法又分为两类模型,一种是前缀言语模型(prefix language model),其 y 部分运用 x 作为前缀条件进行解码,其典型模型是 UniLM;另一种是编解码模型(encoder-decoder),其 y 部分运用 x 独立编码为条件进行解码,其典型模型是 BART。
2.4 详细模型分类
3. Prompt 引擎
即找到一个 function,能够将输入转化使用到下流使命上,并取得最好的作用。
3.1 方法
最常见的两种方法为完形填空式(cloze prompts)和前缀式(prefix prompts)。
至于挑选什么样方法的模板首要是根据运用的 LM 和详细的下流使命,比方关于生成式问题或许自回归式预练习模型,前缀式一般体现较好,而关于完形填空问题和 masked 预练习模型,完形填空式一般体现更好。
全文重建式模型(full text reconstruction)运用这两种方法都能够。
关于一些特别的多输入使命,比方语句对分类,其挑选的模板方法则应该需求包容多个输入。
如:
Language Models as Knowledge Bases?
Template-Based Named Entity Recognition Using BART
Prefix-Tuning: Optimizing Continuous Prompts for Generation
The Power of Scale for Parameter-Efficient Prompt Tuning
3.2 人工模板工程
人工模板即通过人工的方法来规划模板,现在也有很多规划得相当好的模板。
但其存在的问题也是显然的,1)非常依靠规划者的经历和直觉,相当费时;2)即便是经历丰富的规划者也并不一定就能发现适宜的模板。
3.3 主动模板学习
主动模板学习又能够进行细分。从模板方法来看能够分为离散的和接连的,离线模板比方真实的自然文本,接连的比方模板是运用 LM 的嵌入空间。从运用方法来看能够分为静态的和动态的,静态的即关于不同的输入都运用同一种模板,而动态的则是关于不同输入生成不同的模板。
3.3.1 离散模板
模板发掘(prompt mining)
这种方法是给出输入和输出,主动的发掘模板。其需求依靠一个较大的文本库,这个文本库需求包含输入和输出,然后去查找输入和输出之间的中心词或许依靠途径,其间呈现最为频繁的中心词或许依靠途径作为模板运用。其体现方法为”[X] 中心词 [Z]”。
如:How Can We Know What Language Models Know?
模板改写(prompt paraphrasing)
这种方法是对种子模板进行改写,种子模板能够是恣意方法生成的,比方人工结构的或许发掘而来,通过改写取得一系列的候选模板,然后挑选练习成果最好的模板。改写的方法是多样的,比方多言语的双向翻译、同义词替换,也能够运用神经网络进行改写。
如:
How Can We Know What Language Models Know?
BARTScore: Evaluating Generated Text as Text Generation
BERTese: Learning to Speak to BERT
梯度查找(gradient-based search)
这种方法是运用单词候选会集的各种组合来结构模板,运用梯度下降的方法不断迭代尝试模板,终究取得最适宜的模板。
如:
Universal Adversarial Triggers for Attacking and Analyzing NLP
AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts
模板生成(prompt generation)
这种方法将模板的生成视为一般的文本生成使命。比方给 T5 模型来生成模板词。
如:
Making Pre-trained Language Models Better Few-shot Learners
PADA: A Prompt-based Autoregressive Approach for Adaptation to Unseen Domains
模板打分(prompt scoring)
这种方法借助常识图谱的三元组概念(头实体 – 联系 – 尾实体),首先人工结构一系列三元组模板集作为候选,分别填入输入和输出,运用一个单向的 LM 对这些填入的候选模板进行打分,运用打分最高的模板。当然这会使得每个输入都或许有不同的模板。
如:Commonsense Knowledge Mining from Pretrained Models
3.3.2 接连模板
结构模板的意图是使得 LM 能够更好完结下流使命,并非是使得人能够了解,所以这也就阐明了模板能够规划得不用满意人能够了解这一约束。由此,运用LM的嵌入空间来规划模板成为一个自然的主意。而运用接连型模板有两大长处,1)取消了模板词仅能挑选有限的自然言语 token 的约束;2)移除了模板参数仅能读取自 LM 模型的约束,这意味着模板也能进行练习。
前缀微调(prefix tuning)
这种方法在输入前参加与使命相关的接连前缀向量,这个前缀向量是可练习的,而后续的 LM 参数是固定不变的。其数学表达式如下:
其间, 为一个可练习的参数, 为 LM 参数 h 为在第 i 步时一切神经网络层的 concat 。
这里提到首要的两种办法,一种是构建一个可练习的矩阵,作为生成前缀 embedding,其运作迭代方法关于每一层的 h,当h处于前缀时直接复制这个矩阵,不处于前缀时由 LM 参数核算;另一种方法是参加几个特别的前缀 token 来作为模板,练习时直接更新这些前缀 token 的 embedding。
如:
Prefix-Tuning: Optimizing Continuous Prompts for Generation
The Power of Scale for Parameter-Efficient Prompt Tuning
Multimodal Few-Shot Learning with Frozen Language Models
离散模板初始化微调(tuning initialized with discrete prompt)
这种方法运用离散模板作为初始化,然后将其接连化,这种方法往往能够供给更好的起始查找成果。比方运用离散化的模板将其转化为 embedding,然后这些 token 是能够微调的,有点像前缀微调方法的后一种方法。
如:
Factual Probing Is [MASK]: Learning vs. Learning to Recall
AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts
Learning How to Ask: Querying LMs with Mixtures of Soft Prompts
软硬模板混合微调(hard-soft prompt hybrid tuning)
这种方法交融了离散模板和接连模板,其做法在于在静态的模板中刺进一些可练习的 embedding。比方之前比较火的 p-tuning 的模板便是由可微调的 trainable token 和不可微调的 anchor token 组成。
如:
GPT Understands, Too
PTR: Prompt Tuning with Rules for Text Classification
4. 答案引擎
答案引擎的目的是找到一种映射,使得模板查找输出的成果空间映射到真实的下流使命输出空间。
4.1 答案的方法
干流的答案为三种:token span sentence,即词粒度,短语粒度和语句粒度。
一般来说挑选何种答案方法都是和详细下流使命相关,比方分类使命、命名实体辨认使命一般是词粒度;文本生成使命一般是短语和语句粒度。
4.2 答案空间规划方法
4.2.1 人工规划
潜在的答案空间与映射方法均由人工规划,根据其答案空间的不同可分为受限空间和非受限空间,非受限空间指答案或许是全量 token 集或许固定长度的 span 或许 token 序列,这种情况映射是不用要的;受限空间是指输出的答案是有限固定规模的,比方常见的分类使命、实体辨认使命、多挑选问答使命等,这种情况下就需求一个适宜的映射方法。
4.2.2 离散答案查找(discrete answer search)
答案改写(answer paraphrasing)
这种方法将原始的答案空间(即输出的一切或许成果),通过改写(比方回译)扩张其覆盖规模上限,然后定义一个功用使得这个答案空间转化为终究答案(比方能够是 softmax)。
如:How Can We Know When Language Models Know? On the Calibration of Language Models for Question Answering
剪枝然后查找(prune-then-search)
这种方法首先生成一个一切合理答案的剪枝空间,然后通过算法进一步查找这个剪枝空间直到终究获取适宜的答案。比方将大型未标示数据会集频繁呈现的善于2个字母的单词作为答案空间,在查找时,重复迭代核算(如最大似然)当一个词作为答案时与 label 之间的适宜性。
如:
Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference
Automatically Identifying Words That Can Serve as Labels for Few-Shot Text Classification
AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts
Making Pre-trained Language Models Better Few-shot Learners
5. 多模板学习
很多的研讨标明,运用多重模板能够提升模板办法的有用性
5.1 模板交融(prompt ensembling)
模板聚合即运用多个待答复的模板来进行猜测,其具有三方面的优势:1)使得各模板能够互补;2)不用找到所谓的最佳模板;3)在下流使命上体现更为稳定。
实际运用时怎么由多个模板最后得到仅有成果有多种方法:一致性均匀(uniform averaging);带权重均匀(weighted averaging);大都投票(majority voting);常识蒸馏(knowledge distillation)。
一致性均匀即每个模板发生的成果的概率直接进行均匀,即
权重均匀即每个模板贡献的得分是不一致的,而详细运用时权重能够是人为规定的,也能够是练习得出的;大都投票一般用于下流为分类使命时;常识蒸馏即再练习一个模型的来对原来的多个模板产出的成果进行拟合。
5.2 模板增强(prompt augmentation)
模板增强又被叫做证明学习,其目的是供给一些类似的答案模板来让网络了解你的输出应该是什么。比方关于一个「我国的首都是[Z]」的输入,改写为「英国的首都是伦敦,日本的首都是东京,我国的首都是[Z]」。当然这种方法需求解决两大问题:1)怎么挑选更为有用的提示;2)对挑选的提示怎么进行排序。
研讨者发现怎么挑选提示样本对模型练习作用会发生极大的影响(挑选不同的样本其成果或许是sota也或许是挨近随机猜测成果)。现在提出的一种方法是运用句向量空间,挑选与输出相似的向量空间的语句作为样本。
如:Making Pre-trained Language Models Better Few-shot Learners
而即使是相同的提示,不同的排序方法也会导致成果的巨大不同。现在提出的一种方法是根据熵来对各种排序进行打分。
如:Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity
5.3 模板交融(prompt composition)
模板交融指的是将多个子模板使命交融为一个模板使命。比方在联系抽取使命中,其方针是抽取两个实体间的联系,能够将其改变为两个子使命:1)辨认实体词;2)实体间的联系分类。
如:PTR: Prompt Tuning with Rules for Text Classification
5.4 模板分解(prompt decomposition)
关于那种需求对一个输入进行多个猜测的使命,运用一个模板来直接猜测一切的成果会相对困难,而如果将其拆分为多个子模板一般会更为简略。比方命名实体辨认使命,需求对每个span进行进行猜测,而将其拆分为分别对每个 span 进行猜测就会更为简略。
如:Template-Based Named Entity Recognition Using BART
6. 练习战略
根据模板学习的练习方法,一般有两部分参数构成,其一为预练习模型自身的参数,另一部分为模板参数,挑选不同的这两部分参数的更新战略会影响其下流使命在不同场景下的适用性。根据预练习模型参数是否需求微调、是否存在额定的模板参数以及模板参数是否需求微调能够将练习战略大致分为这样几类:
6.1 无模板微调(promptless fine-tuning)
即常用的运用 LM finetune 的方法,它会使得 LM 的一切参数在下流使命练习时进行微调。
其长处在于简略便利;但缺陷在于在数据集较小时简略呈现过拟合或许猜测成果不行稳定,此外,通过下流使命 finetune 之后或许导致原模型在其他场景上呈现灾难性的遗忘。
6.2 无需微调模板(tuning-free prompting)
这种方法无需微调LM参数也无需更新模板参数,他所要做的便是找到适宜的模板,此外,能够可选的参加答案模板进行增强(这种方法又被称为上下文学习)。
其长处在于无需参数更新,是真正的零样本学习使用方法;其缺陷相同显着,即需求为详细的使命结构模板,为了达到比较高的准确度需求很多的模板结构工程,如果选用模板增强方法需求结构很多的答案模板,相同需求很多的时刻和精力。
6.3 模板微调(fixed-LM prompt tuning)
这种方法在原有言语模型的基础上引进可学习的模板,在下流使命练习进程中不更新预练习模型,仅更新模板参数。
在保全了言语模型的自身的模型能力的一起,作用往往比无需微调模板好,其使用场景多是在小样本学习上;由于其模板参数需求练习,所以往往完全不能使用于零样本学习场景,别的虽然其在小样本学习的有用性现已被验证,但作用依然受制于数据集巨细。模板微调也是需求挑选初始参数和结构种子模板的,且其作用往往更为不可控。
6.4 言语模型微调(fixed-prompt LM tuning)
相较于无模板的传统 finetune 式练习方法,这种方法依然要求模板的存在,只是其不会进行更新,只是一起存在于练习和猜测进程中,其方法往往是自然言语文本。通过试验证明,这种方法在小样本学习上依然能够取得可观的前进。比方在某个试验中定义了一个简略的模板——无模板,只是将输入和答案空间放在一起练习(形如[X][Z],[X]为输入文本,[Z]为答案空间)也取得了不错的作用。
这种练习方法给出了更为完好的使命信息,使得在小样本学习时愈加有用;这种方法在不同的下流使命上作用不一定都好,且依然需求模板规划和答案空间的规划。
6.5 言语模型和模板均微调(prompt+LM tuning)
这种方法的言语模型和模板的参数均可进行更新,除了可练习的模板似乎和常见的无模板微调方法差异不大,但参加模板使得模型在练习开端之时取得更好的辅佐。
其优势在于模型具有更强的表达力,其愈加适用于很多杂乱数据(high-data)的练习;其劣势在于言语模型和模板的很多参数需求优化,所以在小数据样本时简略呈现过拟合。
7. 详细使用
7.1 使用举例
缩写阐明:
task列
CR: Commonsense Reasoning
QA: Question Answering
SUM: Summarization
MT: Machine Translation
LCP: Linguistic Capacity Probing
GCG: General Conditional Generation
CKM: Commonsense Knowledge Mining
FP: Fact Probing
TC: Text Classification
MR: Mathematical Reasoning
SR: Symbolic Reasoning
AR: Analogical Reasoning
Theory: Theoretical Analysis
IE: Information Extraction
D2T: Data-to-text
TAG: Sequence Tagging
SEMP: Semantic Parsing
EVALG: Evaluation of Text Generation
VQA: Visual Question Answering
VFP: Visual Fact Probing
MG: Multimodal Grounding
CodeGen: Code generation
prompt engineering shape列
Clo: Cloze
Pre: Prefix
answer engineering shape列
Tok: token-level
Sp: span-level
Sent: sentence-level / document-level
tuning 列
TFP: tuning-free prompting
LMT: fixed-prompt LM tuning
PT: fixed-LM prompt tuning
LMPT: prompt+LM tuning
mul-pr 列
PA: prompt augmentation
PE: prompt ensembling
PC: prompt composition
PD: prompt decomposition
7.2 常见模板
8. 模板学习存在的应战
8.1 模板规划方面
1、现在的模板学习首要使用于分类和生成使命,而在其他使命上使用较少(比方信息抽取和文本分析),究其原因在于在其他使命上规划模板没有那么直观。后续开展上,或许是需求将这些使命进行使命方法的转变使其能够适用于分类和生成使命,或许需求规划更为强大的答案引擎。
2、在许多 nlp 使命中,输入或许包含各种结构化信息,比方树、图、表格等,怎样更好的在模板引擎和答案引擎中表述这些信息是很大的应战。现在的做法首要是将一些词汇进行编码放入模板中,但是关于更为杂乱的结构并未有过尝试。
3、模板学习模型的体现首要依靠于模板的挑选和答案引擎的拟定,现在的干流做法是先拟定好答案引擎再挑选模板,怎么一起对模板挑选和答案规划进行优化也是首要的应战之一。
8.2 答案引擎方面
1、关于分类使命而言,当类别过多时怎么合理的挑选答案空间是一个特别有应战性的问题。
2、当分类使命的答案是多字节(multi-token)时,怎么有用的编码也是一个充满应战的问题。
3、关于生成使命而言,答案往往不止一个,怎么引导学习进程去学习多种答案现在仍是一个巨大的问题。
8.3 练习战略方面
针对不同的使命,怎么挑选适宜的练习战略现在也没有体系的计划,各战略究竟对模型成果有何影响也是缺乏体系性的解说的。
8.4 多模板学习方面
1、模板交融作为一种有用进步作用的计划,一般来说交融的模板越多作用越好,但是其杂乱度也是不断上升的,怎么有用的通过蒸馏等方法降低杂乱度现在还没有这方面的研讨。
2、运用模板增强时往往受制于输入文本的长度,那么怎么提炼更有用的增强文本以及怎么对这些文本进行排序也是一个重要的研讨方向。
9. 参考资料
[1] Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing: arxiv.org/pdf/2107.13…
[2]Language Models as Knowledge Bases?: arxiv.org/pdf/1909.01…
[3]Template-Based Named Entity Recognition Using BART: arxiv.org/pdf/2106.01…
[4]Prefix-Tuning: Optimizing Continuous Prompts for Generation: arxiv.org/pdf/2101.00…
[5]The Power of Scale for Parameter-Efficient Prompt Tuning: arxiv.org/pdf/2104.08…
[6]How Can We Know What Language Models Know?: arxiv.org/pdf/1911.12…
[7]BARTScore: Evaluating Generated Text as Text Generation: arxiv.org/pdf/2106.11…
[8]BERTese: Learning to Speak to BERT: arxiv.org/pdf/2103.05…
[9] Universal Adversarial Triggers for Attacking and Analyzing NLP: arxiv.org/pdf/1908.07…
[10]AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts:arxiv.org/pdf/2010.15…
[11]Making Pre-trained Language Models Better Few-shot Learners: arxiv.org/pdf/2012.15…
[12]PADA: A Prompt-based Autoregressive Approach for Adaptation to Unseen Domains: arxiv.org/pdf/2102.12…
[13]Commonsense Knowledge Mining from Pretrained Models: arxiv.org/pdf/1909.00…
[14]Multimodal Few-Shot Learning with Frozen Language Models: arxiv.org/pdf/2106.13…
[15]Factual Probing Is [MASK]: Learning vs. Learning to Recall: arxiv.org/pdf/2104.05…
[16]Learning How to Ask: Querying LMs with Mixtures of Soft Prompts: arxiv.org/pdf/2104.06…
[17]GPT Understands, Too: arxiv.org/pdf/2103.10…
[18]PTR: Prompt Tuning with Rules for Text Classification: arxiv.org/pdf/2105.11…
[19]How Can We Know When Language Models Know? On the Calibration of Language Models for Question Answering: arxiv.org/pdf/2012.00…
[20]Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference: arxiv.org/pdf/2001.07…
[21]Automatically Identifying Words That Can Serve as Labels for Few-Shot Text Classification: arxiv.org/pdf/2010.13…
[22]Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity: arxiv.org/pdf/2104.08…
10. 参加咱们
咱们来自字节跳动飞书商业使用研发部(Lark Business Applications),现在咱们在北京、深圳、上海、武汉、杭州、成都、广州、三亚都设立了工作区域。咱们重视的产品范畴首要在企业经历管理软件上,包含飞书 OKR、飞书绩效、飞书招聘、飞书人事等 HCM 范畴体系,也包含飞书批阅、OA、法务、财政、收购、差旅与报销等体系。欢迎各位参加咱们。