论文笔记--Prompt Consistency for Zero-Shot Task Generalization
论文笔记--Prompt Consistency for Zero-Shot Task Generalization
-
- 文章摘要
-
- 文章综述
- 3 关键技术
-
3.1 基于提示的零样本任务泛化
-
3.2 一致性提示训练
-
如何防止遗忘与退化?
-
4. 文章亮点
-
5. 原文传送门
-
1. 文章简介
- 标题:Text Prompt Coherence for Zero-Shot Learning to Enhance Model Generalization能力
- 作者:Chunting Zhou, Junxian He, Xuezhe Ma, Taylor Berg-Kirkpatrick, Graham Neubig
- 日期:2022
- 期刊:Arxiv preprint
2. 文章概括
该文章利用一致性学习框架提出了一种基于零样本泛化学习的无监督方法。实验结果表明,在仅需几个prompt和几十个样本的情况下训练出的指令一致性模型,在NLI这类NLP任务上的表现即可达到当前最优水平。

3 文章重点技术
3.1 Prompt-based zero-shot task generalization
首先简单介绍下zero-shot task generalization(零样本泛化学习):对于输入x属于\mathcal{X}而言,零样本泛化学习的目标是使预训练模型PLM能够预测y属于\mathcal{Y}。这一目标要求PLM无需在数据集\mathcal{X}上进行过训练即可实现对新表达式f: \mathcal{X} \to \mathcal{Y}的学习与映射。该方法的核心在于推动模型具备超越已有数据集的泛化能力。在具体应用中,默认情况下我们通常会为每个示例生成一个特定的prompt模板集合(即r_x, r_y),并在此基础上插入待分类的对象数据x, y形成完整的prompt输入串r_x(x), r_y(y)。基于此模板的学习系统一般采用条件概率p_{\theta} (r_y(y)|r_x(x))来表征输出的概率分布q(y|x, r))。当聚焦于自然语言处理领域的分类任务时,则可以通过以下公式来计算具体的输出概率值:$$
q(y|x, r) = \frac{p_{\theta} (r_y(y)|r_x(x))}{\sum_{y'\in\mathcal{Y}} p_{\theta} (r_y(y')|r_x(x))}\tag{1}
### 3.2 Prompt Consistency Training 基于给定的无标注数据集{x₁,…,x_N}以及K个特定prompt集合{(r_x¹,r_y¹),…,(r_x^K,r_y^K)}的方法旨在实现一致性学习目标。该方法允许从任意NLP分类任务中获取训练或测试数据集作为无标注数据源,并直接使用Public Pool of Prompts(p3)中的prompt集合进行训练。与传统方法不同的是,在本研究中我们聚焦于在单个样本层面的一致性学习:即不同prompt在对同一输入样本施加影响后应产生相同的学习结果。具体而言: 1. 该方法具有概念简单易懂的特点; 2. 可有效缓解预训练语言模型(PLM)输入不同prompt却输出不一致的问题。 此外, 损失函数定义为:
\mathcal{L} = -\mathbb{E}{x\in p_d(x)} \mathbb{E}{r^i, er^j\in p(r)} \mathbb{E}{\hat{y} \in \hat{q}(y|x,r^i)} \log p{\theta} (r_yj(\hat{y})|r_xj(x))
其中, $p_d$表示数据集分布, $p(r)$为均匀分布随机选取的K个prompt对, $\hat{q}$为式(1)所示条件分布。 具体而言,在给定两个prompt $r^i$和$r^j$的情况下: 首先通过$r^i$预测$\hat{y}\in \hat{q}(y|x, r^i)$; 接着希望当输入为$r^j$时预测结果仍为$\hat{y}$; 即最大化输出结果为$\hat{y}$的概率$p_{\theta} (r_y^j(\hat{y})|r_x^j(x))$; 取负对数期望后即可得到上述损失函数。 这种方法被称为swarm distillation策略。 ### 3.3 如何防止遗忘和退化? 如果直接采用上述方法进行训练,则我们可能会遇到一种情况:所有prompt与所有样本均输出相同的结果时会达到损失函数的最小值;另一方面,在经过训练后模型可能会遗忘之前所学的知识即catastrophic forgetting为了避免上述问题文章提出了以下两种解决策略 基于LoRA的方法,在T0模型的基础上进行上层优化;为了防止出现灾难性遗忘的问题,并非简单的参数删除或重初始化这一单一策略(如全零初始化),而是采用了一种基于低秩分解(LORA)的方法;其核心机制是通过两个低秩矩阵相乘的方式实现动态参数调整;具体而言,请参考下图所示)。在此方案下,在实际训练过程中,在每个Transformer的前馈层中都集成了一种LORA机制  2. Fleiss’ Kappa:由于缺乏标注数据用于验证集选取而导致难以直接确定最佳 checkpoint作为模型最终版本。为此文章引入了Fleiss’ Kappa指标来评估模型性能表现。首先我们定义了一致性概率:针对样本$x_i$所有K个prompt中预测输出为第j个label的数量记为$n_{ij}$则该样本中任意两个prompt给出相同预测结果的概率为$p_i = \sum_j \binom {n_{ij}}2 /\binom K2 = \sum_{j} n_{ij}(n_{ij} - 1) / K(K-1)$所有样本的一致性总和为$\overline{P} = \sum p_i$。另一方面第j个label的比例$q_j = \sum n_{ij}/NK$则$\overline{P}_e = \sum q_j^2$表示任意两个prompt基于标签分布随机预测的一致性程度当各标签$j$的比例$q_j$相等时$\overline{P}_e达到最小值即预测结果呈现均匀分布特性最终得到Fleiss’ kappa值计算公式为$\kappa = (\overline{P} - \overline{P}_e)/(1 - \overline{P}_e) ∈ (-1, 1)$其中$\overline{P}_e越大κ值越小表明如果预测结果被某一类别主导则模型性能将受到惩罚。 ## 4\. 文章亮点 该文章提出了一种基于prompt一致性原理的零样本任务生成学习方法命名为swarm distillation,并结合了LoRA技术和Fleiss’ Kappa统计方法以防止模型在知识回顾过程中出现性能退化现象。实验结果表明,在多项自然语言处理相关下游任务上进行评估后发现该方法在多个基准测试任务中均超越当前最优模型水平。数值实验进一步显示仅需4个prompt示例和10以上训练样本即可显著提升原始模型性能(T0)。然而实验数据显示当样本量达到一定规模后该方法的效果趋于饱和状态特别当具备充足标记数据时其表现可能不如监督微调策略更为出色。因此未来研究可探索将该方法与少样本学习策略结合进一步优化其应用效果 ## 5\. 原文传送门 Consistency in Prompting for Zero-Shot Learning Tasks and Their Generalization Ability
