Soft Prompts 微调大模型技术综述:超越 LoRA 的选择
训练大型预训练语言模型往往耗时巨大且计算密集。随着模型规模的不断扩张,业界越来越关注更高效的训练方法,其中 Prompting(提示工程)便是一个重要方向。
Prompting 基础
Prompting 的核心在于通过一段描述任务或展示示例的文本提示,为特定的下游任务调整一个冻结的预训练模型。这种方法允许我们避免为每个下游任务完全重新训练一个单独的模型,而是复用同一个冻结的预训练模型。相比全量微调,这种方式要高效得多,因为我们可以用同一个模型处理多个不同的任务,而且训练和存储一小套提示参数远比更新所有模型参数节省资源。
Soft Prompts 核心机制
Soft Prompts(软提示)与传统的 Hard Prompts(硬提示)相对。Hard Prompts 通常由人工设计的离散 token 组成,而 Soft Prompts 则是可学习的连续向量。这些向量可以通过梯度优化方法针对特定数据集进行自动优化,无需人工设计,能够适应不同任务,计算效率高且支持多任务学习。
不过,软提示也有其局限性:它们不可读,缺乏直观的可解释性,我们无法直接理解为何选择这些特定的向量组合。
从原理上看,软提示的工作方式是在模型输入层增加一个可学习的投影层,将原始输入映射到提示信息所表示的语义空间中。投影层中的参数通过训练数据学习得到,使得提示信息能够更好地贴合任务需求。
主流微调方法
Prompt Tuning
Prompt Tuning 的核心思想在于 prompt tokens 拥有独立的参数,可以独立更新。这意味着我们可以保持预训练模型的参数不变,只更新 prompt tokens 的嵌入向量的梯度。实验表明,这种方法的性能与传统的全量训练相当,并且随着模型大小的增加,Prompt Tuning 的性能表现也会随之提升。

Prefix-Tuning
Prefix-Tuning 是 Prompt Tuning 的一种变体,它通过在模型输入的前缀位置添加可学习的提示向量来实现。这种方法的优势在于可以在不改变模型结构的情况下,为不同的任务提供不同的提示。
Prefix-Tuning 和 Prompt Tuning 最主要的区别在于插入位置:Prefix-Tuning 的前缀参数被插入到模型的所有层中,而 Prompt Tuning 仅将提示参数添加到模型的 embedding 层。

P-Tuning
P-tuning 主要是为自然语言理解(NLU)任务设计的,它是 Soft Prompts 的另一种变体。P-tuning 添加了一个可训练的嵌入张量,这个张量可以被优化以找到更好的提示,并且它使用一个提示编码器(通常是双向长短期记忆网络 LSTM)来优化提示参数。
P-tuning 的一个显著特点是将 Decoder 架构的模型变得适应 Encoder 架构的任务,如 NLU 任务。

Multitask Prompt Tuning (MPT)
多任务提示调整(MPT)是一种从数据中学习单一提示的方法,该提示可以用于多种任务类型,并可以共享以适应不同的目标任务。与之相对的其他现有方法则为每个任务学习一个单独的软提示,这些提示需要被检索或聚合以适应目标任务。


