P-Tuning v2 已成为与 LoRA、Prefix-Tuning 并列的主流轻量微调方法,尤其适合需要任务模板引导的场景
清华大学参数微调——P-Tuning 呢
非常好的问题!清华大学提出的 P-Tuning 是 Prompt Tuning 家族中一个非常有影响力的工作,它巧妙地结合了 人工 prompt 的先验知识 与 可学习连续 prompt 的灵活性,在效果和效率之间取得了很好的平衡。
下面我们用 通俗例子 + 技术对比 + 与谷歌/斯坦福方法的区别,帮你彻底搞懂 P-Tuning!
🌟 一句话核心思想(P-Tuning v1 & v2)
把 prompt 设计成“模板 + 可学习的连续向量”,既保留人类对任务的理解(模板结构),又让模型自动优化关键位置的“提示词”。
🧒 通俗例子:“填空式魔法咒语”
想象你是一个魔法师,要召唤“准确答案”。
❌ 传统微调:
重写整本魔法书(全参数微调)——太费劲!
✅ Prompt Tuning(Google):
你念一串完全随机的咒语 [V1][V2][V3]...,靠反复试错让咒语生效 —— 但咒语没人能懂,也不直观。
✅ Prefix-Tuning(Stanford):
你戴一个“思维头盔”,全程引导大脑 —— 有效但你看不见咒语长啥样。
✅ P-Tuning(清华大学):
你使用一个半固定模板,比如:
“这个问题的答案是 MASK ,因为 P1 P2 。”
- 其中:
- “这个问题的答案是...因为...” → 人工设计的模板(固定)
[MASK]→ 输出位置(如分类标签)[P1][P2]→ 可学习的连续向量(不是真实词,但插在“因为”后面)
你训练时只更新 [P1][P2] 的向量,让模型一看到这个结构,就知道怎么推理。
🔑 既利用了人类对任务的直觉(“因为”引导推理),又用可学习向量填补了语言模型不擅长的逻辑连接。
💻 技术细节(P-Tuning v1 vs v2)
🔸 P-Tuning v1(2021,清华 + 华为)
- 目标:提升小模型在 NLU 任务上的 prompt 性能。
- 方法:
- 设计一个离散模板(如
{"It was", [P1], [P2], ". The sentiment is", [MASK]}) - 其中
[P1], [P2]是连续可学习的向量(不在词表中) - 使用 LSTM 或 MLP 生成这些 prompt 向量(引入额外的小网络)
- 设计一个离散模板(如
- 特点:prompt 向量由一个小型神经网络生成,不是直接优化 embedding。
🔸 P-Tuning v2(2022,清华)
- 改进:发现 直接在输入层插入可学习向量(类似 Prefix-Tuning)效果更好。
- 方法:
- 去掉 LSTM/MLP,直接优化 prompt 的 embedding 向量
- 在所有层(或输入层)插入这些向量
- 等价于 Prefix-Tuning 的简化版,但更强调与任务模板结合
- 结论:P-Tuning v2 ≈ “带任务模板的 Prefix-Tuning”,适用于生成和理解任务。
✅ P-Tuning v2 实际上弥合了 Prompt Tuning 和 Prefix-Tuning 的 gap,成为更通用的 PEFT 方法。
🆚 三大方法对比:Google vs Stanford vs Tsinghua
|
prompt 形式
|
全连续、无结构
|
全连续、无结构
|
“人工模板 + 连续向量”(v1)
或纯连续(v2) |
|
是否用模板
|
❌ 否
|
❌ 否
|
✅是(尤其 v1)
|
|
可学习部分
|
虚拟 token 的 embedding
|
每层 K/V 的 prefix 向量
|
v1: LSTM 生成的向量
v2: 直接 embedding |
|
适合任务
|
大模型 + 生成任务
|
生成任务(尤其 decoder)
|
小模型 + NLU 任务(v1)
通用任务(v2) |
|
核心创新
|
证明大模型中 prompt tuning 有效
|
解耦 prompt 与输入,深入 attention
|
用模板引导 + 连续优化,提升小模型表现
|
📊 举个具体 NLP 任务例子:情感分类
任务:判断 “I love this movie!” 是正面还是负面。
各方法如何构造输入?
-
Prompt Tuning:
[V1][V2][V3] I love this movie!→ 模型输出positive -
Prefix-Tuning:
输入不变,但在每层 attention 前加 prefix 向量 → 隐式引导 -
P-Tuning v1:
"I love this movie! It was [P1] [P2]. The sentiment is [MASK]."[P1][P2]是连续向量(如 2 个 768 维向量)[MASK]预测great(映射为 positive)- 模板体现推理逻辑(“It was ___” 引导描述性 prompt)
-
P-Tuning v2:
[P1][P2][P3] I love this movie!
→ 和 Prefix-Tuning 类似,但可能只在输入层加
✅ P-Tuning 的优势
- 对小模型友好:在 BERT-base 等模型上显著优于 Prompt Tuning。
- 结合人类先验:模板设计可融入任务知识(如因果、比较等结构)。
- P-Tuning v2 通用性强:已成为 Hugging Face PEFT 库支持的标准方法之一。
🛠 实际使用(P-Tuning v2 ≈ Prefix-Tuning)
在 Hugging Face 的 peft 库中,P-Tuning v2 通常通过 PromptEncoder 或直接使用 PrefixTuning 配置实现:
这样,既有人类模板的语义,又允许向量微调,效果更好。
🎯 总结
|
Prompt Tuning
|
Google
|
纯连续 prompt,简单直接
|
大模型(>10B)
|
|
Prefix-Tuning
|
Stanford
|
每层加 prefix,控制力强
|
生成任务、decoder 模型
|
|
P-Tuning
|
清华大学
|
模板 + 连续 prompt(v1)
通用连续 prompt(v2) |
小模型 + NLU(v1)
通用 PEFT(v2) |
💡 P-Tuning 的最大贡献是:证明了“结构化 prompt + 连续优化”能显著提升小模型性能,为后续 PEFT 方法提供了重要思路。
如今,P-Tuning v2 已成为与 LoRA、Prefix-Tuning 并列的主流轻量微调方法,尤其适合需要任务模板引导的场景。

浙公网安备 33010602011771号