冻结语言模型 Prompt 微调技术:PET(b) 与 LM-BFF 解析
引言
在少样本学习(Few-Shot Learning)场景下,如何高效利用预训练语言模型(PLM)进行下游任务适配是一个核心问题。传统的微调方法需要更新所有参数,而基于 Prompt 的方法通过冻结模型参数,将分类任务转化为完形填空形式,显著降低了计算成本并提升了小样本下的泛化能力。
本文详细解析两篇经典论文:PET-TC(B) 和 LM-BFF。前者优化了标签词的 Token 数量限制,后者实现了模板与标签的自动搜索及指令增强。
PET-TC(B): 支持多字完形填空
背景与动机
论文 It's not just size that matters: Small language models are also few-shot learners (2020.9) 是 PET-TC 的续作。主要改进在于支持多 Token 作为标签词(Label Words),而非仅限于单 Token。这解决了如 "terrible" 被分词为 "terr##ble" 时信息丢失的问题。
- Task: Text Classification
- Model: Albert-xxlarge-v2
- Prompt 类型: 多字完形填空式人工 Prompt
核心机制
1. 推理过程 (Inference)
在推理阶段,为了处理多个 MASK 位置,模型需要进行 K 次前向传导(K 为标签词最大长度)。
- 使用标签中最大的 Token 数 K,生成 K 个 MASK 位置。
- 对 K 个位置同时预估得到 K 个候选词,选取概率最高的 1 个词进行填充。
- 针对填充后的新文本,对剩余 K-1 个位置再进行预估。
- 重复上述步骤直到所有位置都被填充。
- 最终分类概率由所有填充标签词的概率累乘得到。
[图示说明:PET 多 MASK 推理流程 - 迭代填充过程]
2. 训练过程 (Training)
为了提升效率,训练时使用一次前向传导对多个位置同时完成预估。MASK 长度固定为所有标签的最大长度。
例如情感分类问题中,"terrible" 长度为 2,"great" 长度为 1。此时 MASK 填充长度为 2,"great" 只取第一个 MASK 词的概率,后面的忽略。
概率计算公式如下: $$P(Y=-1|x) = P_1^M(ble|x) \times P_2^M(terr|x)$$ $$P(Y=1|x) = P_1^M(great|x)$$
其他部分与 PET 基本一致。实验表明,在 SuperGLUE 数据集上,即使参数量级较大(约 2B),PET 在 32 个小样本上的效果也超过了同等量级甚至更大的 GPT-3 Few-Shot 效果。
LM-BFF: 自动搜索 Prompt 与标签
背景与动机
论文 Making Pre-trained Language Models Better Few-shot Learners (2020.12) 由陈丹琦团队提出。该方案将人工构建 Prompt 模板和标签词优化为自动搜索,进一步降低了人工成本。
- Task: Text Classification
- Model: Bert or Roberta
- Take Away: 把人工构建 prompt 模板和标签词优化为自动搜索
1. 标签词搜索 (Label Word Search)
在全 Vocab 上搜索空间太大,直接微调容易过拟合。作者采用两步策略:
- Zero-shot 筛选:固定 Prompt 模板 (L),用训练集中每个分类 (c) 的数据,在预训练模型上分别计算该分类下 MASK 词的概率分布,选择概率之和在 Top-k 的单词作为候选词。
- 微调选择:结合所有分类 Top-K 的候选词,得到 n 个标签词组合(n, k 为超参)。在验证集上微调后选择准确率最高的组合。


