冻结 Prompt 微调大语言模型:T5 与 PET 解析
引言
随着预训练语言模型(PLM)的发展,传统的微调方法逐渐显露出参数效率低、灾难性遗忘等问题。Prompt Tuning 作为一种新兴范式,旨在通过设计输入提示(Prompt)将下游任务转化为预训练时的原始任务形式,从而在冻结大部分模型参数的情况下实现高效迁移。本文深入探讨了两个经典工作:Google 的 T5(Text-to-Text Transfer Transformer)和 PET(Prompt-based Few-Shot Text Classification),分析其核心机制、构建方式及优缺点。
T5: 统一文本到文本框架
论文背景
Paper: Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (2019.10)
T5 的核心初衷在于全面公平地对比不同预训练和迁移策略的贡献。为了避免特定模型架构对预训练目标效果的干扰,T5 提出了一个统一的建模框架,将所有 NLP 任务转化为文本生成任务。
实验对比维度
为了验证通用性,T5 在以下维度进行了广泛对比:
- 预训练目标: 包括语言模型(LM)、乱序还原、MLM(不同掩码率)、Span 掩码等。
- 预训练数据: 构建了 C4 数据集,从 Common Crawl 中抽取不同领域语料进行训练。
- 模型架构: 对比了 Encoder-Decoder、Decoder Only、Encoder Only 三种结构。
- 迁移策略: 逐步解冻、全量微调、局部微调等。
- 其他因素: 多任务预训练、模型大小缩放。
结果显示,Encoder-Decoder 架构配合 Span Masking 损失函数效果最佳。这或许解释了为何 Google 押注 T5 而非像 OpenAI 早期那样选择纯 Decoder 结构。
Text-to-Text 通用建模框架
T5 提出了一种通用的建模框架:使用相同的模型、相同的预训练、相同的损失函数和解码方式,将文本分类、摘要、翻译、QA 等任务全部转化为生成任务。转化的关键在于加入前缀 Prompt。
任务构建示例
针对不同的下游微调任务,T5 设计了特定的 Prompt 模板:
-
机器翻译 (WMT English to German)
- 输入:
translate English to German:+ 原文 - 输出:译文
- 输入:
-
文本摘要 (CNN Mail)
- 输入:
Summarize:+ 原文 - 输出:摘要
- 输入:
-
自然语言推理 (MNLI)
- 输入:
mnli hypothesis:+ 假设 +premise:+ 前提 - 输出:contradiction, entailment, neutral
- 输入:
-
语义文本相似度 (STS)
- 输入:
sts sentence1:+ 句子 1 +sentence2:+ 句子 2 - 输出:1~5 的打分(离散化)
- 输入:
-
问答 (SQuAD)
- 输入:
question:+ 提问 +context:+ 上下文 - 输出:答案
- 输入:
局限性与贡献
在 T5 的时代,Prompt 模板的构建相对粗糙,更多是单纯的任务名称加任务类型来区分。这种方式让模型在解码时采用不同的条件概率(Attention),但并未充分利用语义和上下文关联的深度优化。尽管如此,T5 在通用 LM 上的贡献奠定了后续 Prompt Engineering 的基础。


