Prompt Tuning
输入层加入 prompt tokens【显示提示】
Prefix Tuning
virtual tokens作为Prefix,学习“隐式”提示;
P-Tuning
将prompt转换为可学习的Embedding层
● prefix tuning是将额外的embedding加在开头,类似模仿instrucion指令;P-Tuning位置则不固定
● Prefix Tuning 通过在每个 Attention 层都加入 Prefix Embedding 来增加额外的参数,通过 MLP 来初始化;而 P-Tuning 只是在输入的时候加入 Embedding,并通过 LSTM+MLP 来初始化。
P-Tuning V2
让Prompt Tuning能在不同参数规模的预训练模型、针对不同下游任务的结果上都达到匹敌Fine-tuning的结果。
主要结构:在多层加入Prompts tokens作为输入。
P-Tuning 和 P-Tuning V2的区别
P-Tuning和P-Tuning v2都是用于自然语言处理(NLP)任务中的微调方法,旨在高效地调整预训练的语言模型(如BERT、GPT等)以适应特定任务。这两种方法都属于参数效率型微调方法的一部分,即它们通过仅调整相对较少的额外参数来实现对预训练模型的优化,而非直接微调模型的所有参数。
P-Tuning和P-Tuning v2的主要区别在于模型的架构、训练策略以及如何集成额外的可学习参数。
P-Tuning:
P-Tuning 的核心思想是为每个不同任务引入一组可学习的prompt embedding(即P),这些prompt被视作任务特异性的前缀并同输入序列一起输入模型。在P-Tuning中,prompt embedding是模型结构中的唯一可训练参数,其他预训练的模型参数保持固定。这样,在进行下游任务时,prompt embedding通过捕获任务的核心信息来引导模型生成正确的输出。
P-Tuning v2:
P-Tuning v2在原有的P-Tuning基础上进行改进,提供了一种称作“深层prompt”的方式,该方式将prompt嵌入到语言模型的每一层中去,而不只是输入层。这种设计使得prompt可以更深入地与模型的Transformer结构融合,在模型的每一层都有潜在影响。这意味着P-Tuning v2可以进一步精细地调节预训练模型的内部表示,而无需对整个模型参数进行全面的微调。
在这两种方法中,prompt参数的数量通常远小于预训练模型的参数总数,这有利于减少计算成本,并允许在资源受限的环境中也能有效地调整大型预训练模型。
在应用上,P-Tuning v2理论上具有在微调时进行更深层次、更灵活和更精细调节模型行为的能力,并且可能提供比原始的P-Tuning更好的任务适应性。然而,实际的性能提升可能依赖于任务的具体性质、数据的丰富度以及模型训练的细节。