P-tuning、Prompt-tuning和Prefix-tuning区别是什么?
概念
Prompt Tuning 是通过在输入序列前添加额外的 Token 来适配下游任务的方法。这些额外的 Token 是可训练的,而预训练语言模型的参数保持不变。
Prefix Tuning 是在每层 Transformer 结构的输入前添加一组可训练的 Token。这样,模型在处理输入序列时,每一层的输入都会包含这些额外的 Token,从而适配下游任务。
P-Tuning 是 Prompt Tuning 的一种变体,其核心思想是在特定位置插入可训练的 Token,使模型能够更好地理解下游任务的需求。P-Tuning 方法通过在输入序列中间插入额外的 Prompt Token,使模型在处理输入时能更好地捕捉上下文信息。
Prefix Tuning对比P-tuning
- Prefix Tuning是将额外的embedding加在开头,看起来更像模仿Instruction指令,而P-tuning位置不固定;
- Prefix Tuning通过在每个层都添加可训练参数,通过MLP初始化,而P-Tuning只在输入的时候加入embedding,并通过LSTM或MLP初始化。
Prefix Tuning对比Prompt-tuning
- Prompt Tuning方式可以看做是Prefix Tuning的简化,只在输入层加入 prompt tokens,并不需要加入MLP进行调整(MLP处理prefix得到hidden state)来解决难训练的问题。
P-tuning和Prompt-tuning的区别
- P-Tuning在输入的时候加入embedding,并通过LSTM或MLP初始化,且位置不固定,后续的版本中在每个层也都加了embedding,而prompt-tuning值在输入加上虚拟的token来学习,还不是自由参数形式。