论文信息
名称 | 内容 |
---|---|
论文标题 | AUTOPROMPT: Eliciting Knowledge from Language Models with Automatically Generated Prompts |
论文地址 | https://arxiv.org/abs/2010.15980 |
研究领域 | NLP, 文本分类, 提示学习, 文本分类 |
提出模型 | AutoPrompt |
源码 | http://ucinlp.github.io/autoprompt |
阅读摘要
Prompt
任务需要构建合适的Pattern
,但是编写合适的Pattern
需要手动工作和人为猜测,有很大的不确定性。为了解决这个问题,提出AUTOPROMPT
模型,基于梯度下降搜索来创建Pattern
。
[0] 摘要
这篇论文并提出了一种名为AUTOPROMPT
的自动化方法,用于为多样的任务创建适当的提示模板Pattern
。
传统的MLM
任务虽然可以评估语言模型的知识水平,但需要手动编写合适的Pattern
,涉及较大的人力成本和猜测成分。AUTOPROMPT
基于梯度下降搜索Pattern
的方法解决了这个问题。
AUTOPROMPT
无需额外的参数或微调,有时甚至能够与最新的监督模型取得相当的性能。
[1] 介绍
论文指出,传统的分析方法,如探测分类器和注意力可视化,存在一定的局限性和不足。而通过提示prompting
的方式,将任务转化为语言模型的形式,可以更直接地获取模型所具备的知识。
然而,现有的提示方法需要手动构建上下文,这一过程耗时且容易出错,且模型对上下文的敏感性较高。为了解决这一问题,研究人员提出了AUTOPROMPT
方法,通过自动化地生成提示来替代手动构建,从而提高分析的效率和广泛应用性。
AUTOPROMPT
方法基于梯度搜索策略,结合了原始任务输入和触发词(trigger tokens)
集合,生成适用于所有输入的提示。通过将语言模型对提示的预测结果与相关标签词的类别概率相结合,可以将语言模型作为分类器进行评估。
论文通过多个实验证明了AUTOPROMPT
的有效性。首先,研究人员使用AUTOPROMPT
构建了针对情感分析和自然语言推理的提示,无需微调,仅仅使用预训练的掩码语言模型(MLMs)
就可以取得良好的性能,在SST-2
数据集上达到了91%的准确率,优于经过微调的ELMo
模型。其次,研究人员将AUTOPROMPT
应用于LAMA
的事实检索任务,通过构建更有效的提示,成功提取了MLMs
的事实知识。此外,研究人员还引入了一种类似于关系抽取的任务变体,测试MLMs
是否能够从给定的文本中提取知识。实验结果表明,在提供真实事实的上下文句子的情况下,MLMs
可以超越现有的关系抽取模型,但在提供人工Pattern
模板的上下文句子时表现不佳。
最后,论文还指出AUTOPROMPT
相比微调具有一定的实际优势。在低数据量情况下,AUTOPROMPT
实现了更高的平均和最差情况准确率。与微调不同,使用提示的LMs
不需要大量的磁盘空间存储模型检查点,一旦找到一个提示,就可以在现有的预训练LMs
上使用。这在为多个任务提供模型服务时具有益处。
[2] 模型总览
编写Pattern
模板既耗时又不清楚同样的Pattern
模板是否适用于每个模型,以及何种标准决定了某个Pattern
模板是否最适合引出所需的信息。基于这一考虑,引入了AUTOPROMPT
,其结构如下图所示。
[2.1] 背景和数学符号
为了构建提示模板,区分了原始任务输入
x
i
n
p
x_{inp}
xinp、触发令牌
x
t
r
i
g
x_{trig}
xtrig和作为输入给MLM
的提示
x
p
r
o
m
p
t
x_{prompt}
xprompt。通过使用模板
λ
λ
λ,将
x
i
n
p
x_{inp}
xinp映射到
x
p
r
o
m
p
t
x_{prompt}
xprompt。
【注】看上图的左下方,n个
[T]
其实就是触发令牌 x t r i g x_{trig} xtrig,它们就是将要被梯度下降搜索的token,最开始被[MASK]
初始化,[P]
才是我们平时会预测的真正的[MASK]
。
对于Verbalizer
部分,采用多映射token概率求和的形式:
[2.2] 基于梯度的提示模板搜索
思路是在prompts
中添加一些被所有prompts
共享的trigger tokens
,就是模板中的[T]
, 这些token
在一开始由[MASK]
进行初始化,然后不断迭代更新来最大化似然估计。
在每一步中,计算出将第
j
j
j个trigger token
替换成另一个token
w
w
w(
w
w
w属于词汇表中的单词) 梯度的最大值。将引起最大变化的
t
o
p
−
k
top-k
top−k个tokens
构成候选集合
V
c
a
n
d
V_{cand}
Vcand:
[2.3] 自动化标签词选择
尽管在某些任务中label tokens
的选择是非常明显的,但在某些abstract class labels
的问题中选择什么label tokens
则是不清晰的。因此在论文中,作者提出了一种通用的两阶段用来自动选择label tokens
集合
V
y
V_y
Vy的方法。
在第一步中,训练一个logistic classifier
使用 [MASK] token
作为输入来预测class label
:
classifier input
:
classifier output
:
其中右式中的
y
y
y和
β
y
\beta_y
βy是learned weight
和bias terms
。
在第二步中,将MLM
的output word embeddings
w
o
u
t
w_{out}
wout作为训练好的logistic classifier
的输入(替换上式中的
h
(
1
)
h^{(1)}
h(1)),获得分数
s
(
y
,
w
)
=
p
(
y
∣
w
o
u
t
)
s(y,w) = p(y|w_{out})
s(y,w)=p(y∣wout) . 直观上来看
s
w
=
e
x
p
(
w
o
u
t
⋅
y
+
β
y
)
s_w = exp(w_{out}·y + \beta_{y})
sw=exp(wout⋅y+βy)得分对于与给定label
相关的词汇会更大。通过上述方式可以构造出topk最高得分词汇:
【注】
Pattern
会分为硬模板和软模板。AutoPrompt
属于硬模板的范畴,我个人还是觉得Soft Prompt
来训练连续的伪标记会更好一点。硬模板不管再怎么搜索,寻找的词依然是PLM
词表中的,而连续的向量自由度更高。