PEFT的几种方式

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更好的任务适应性。然而,实际的性能提升可能依赖于任务的具体性质、数据的丰富度以及模型训练的细节。

相关推荐

  1. PEFT方式

    2024-07-20 11:32:02       17 阅读
  2. 【python并发任务方式

    2024-07-20 11:32:02       50 阅读
  3. 分布式锁实现方式

    2024-07-20 11:32:02       43 阅读
  4. 分布式 ID 实现方式

    2024-07-20 11:32:02       54 阅读
  5. 【面试】MySQL查询方式

    2024-07-20 11:32:02       58 阅读
  6. HashMap遍历方式

    2024-07-20 11:32:02       45 阅读
  7. 【shell】shell判断方式

    2024-07-20 11:32:02       47 阅读
  8. 跨域方式?(详解)

    2024-07-20 11:32:02       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 11:32:02       60 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 11:32:02       63 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 11:32:02       51 阅读
  4. Python语言-面向对象

    2024-07-20 11:32:02       62 阅读

热门阅读

  1. springSecurity学习之springSecurity过滤web请求

    2024-07-20 11:32:02       21 阅读
  2. GEE错误:Error: Encoded object too large. (Error code: 3)

    2024-07-20 11:32:02       16 阅读
  3. Spring 定时任务Scheduler监控异常和超时取消

    2024-07-20 11:32:02       18 阅读
  4. 一些高级函数的用法

    2024-07-20 11:32:02       19 阅读
  5. Github 2024-07-19 开源项目日报Top10

    2024-07-20 11:32:02       20 阅读
  6. Spring boot 运行环境搭建之Spring Tools 4 for Eclipse

    2024-07-20 11:32:02       19 阅读
  7. 整车CAN(P-CAN、C-CAN、B-CAN、Info-CAN、D-CAN)

    2024-07-20 11:32:02       20 阅读
  8. am start 命令详解

    2024-07-20 11:32:02       18 阅读