詳細解釋
P-Tuning是高效的提示微調方法,通過學習連續的虛擬token嵌入(軟提示),而非離散的文本提示,讓預訓練模型適應下游任務。
與傳統微調的對比:
- 全參數微調:更新所有模型參數
- P-Tuning:只學習少量連續token
- 效率:訓練參數量極少
原理:
- 軟提示:可學習的連續向量序列
- 前置:添加到輸入前
- 優化:反向傳播只更新軟提示
- 凍結:預訓練模型參數保持不變
架構:
- Prompt Encoder:
- LSTM或MLP
- 將離散提示映射為連續表示
- 訓練:優化encoder參數
優勢:
- 參數效率:只訓練<1%參數
- 存儲:每個任務只需存儲小提示
- 多任務:輕鬆切換不同軟提示
- 穩定:比離散提示搜索更穩定
P-Tuning v2改進:
- 多層提示:不只在輸入層
- 更深層次:每Transformer層都有提示
- 效果更好:接近全微調性能
- 適合:各種規模模型
與其他高效微調方法的關係:
- LoRA:低秩適配,更新部分參數
- Prompt-tuning:類似P-Tuning的簡化版
- 對比:
- P-Tuning:輸入層添加可學習token
- LoRA:微調低秩分解的權重增量
- 可結合使用
應用:
- NLU任務:情感分析、NLI
- 知識探測:從模型中提取知識
- 條件生成:控制生成風格
- 多語言:快速適配新語言
局限:
- 生成任務:不如LoRA適合生成
- 長序列:軟提示長度限制
- 複雜任務:可能需要更強的方法
P-Tuning是參數高效微調的重要方法。