Prefix-Tuning 与 Prompt Tuning 详解:软提示类参数高效微调

对比两种在输入前添加可训练连续向量的参数高效微调方法:Prefix-Tuning 在自回归与编码器-解码器结构中的不同注入方式,以及 Prompt Tuning 的简化思路,并分别给出它们的优点与局限。

Prefix-Tuning

Prefix Tuning是一种用于自然语言生成任务的参数高效微调技术。它的核心思想是在模型的输入序列前添加一系列连续的任务特定向量,这些向量被称为前缀(prefix)。这些前缀向量是可训练的,而预训练语言模型(PLM)的其他参数则保持固定。这种方法的优势在于可以在不改变模型结构的情况下,为不同的任务提供不同的提示。

在Prefix Tuning中,模型的输入不仅包括原始的任务输入,还包括这些前缀向量。

  • 在自回归语言模型(如GPT-2)中,前缀被添加到输入序列的开始处,形成新的输入序列。
  • 在编码器-解码器架构模型(如BART)中,前缀不仅添加到输入序列的开始处,还添加到解码器的输入中。
    这样,模型在处理输入序列时,每一层的输入都会包含这些额外的前缀向量,从而适配下游任务。在实际应用中,Prefix Tuning已被证明在多种自然语言处理任务中有效,包括文本生成、摘要生成等。它通过在模型的输入中添加可训练的前缀向量,使得模型能够在不改变原有参数的情况下,更好地适应特定的下游任务.

Prefix-tuning思路

前缀微调(Prefix-tuning)是通过在预训练语言模型的输入文本前添加人工设计的前缀,引入任务指导信息,解决传统预训练模型在生成任务中缺乏控制、指导和数据偏差的问题,从而提高生成质量和可控性。前缀微调的思路是:

  • 使用大规模无监督数据预训练语言模型;

  • 针对任务设计包含要求或关键信息的前缀;

  • 用带前缀的任务数据微调模型;

  • 通过前缀引导模型生成符合要求的输出,提升生成质量和可控性。

    Prefix-tuning优点

  • 可控性强,通过前缀引导生成内容;

  • 灵活性高,适用于多种生成任务;

  • 数据效率高,利用预训练模型知识,减少训练时间和资源;

  • 提升生成效果,帮助模型更好地理解任务要求;

  • 增加可解释性,便于调试和优化。

    Prefix-tuning缺点

  • 前缀设计复杂,需要领域知识和人工调整;

  • 任务依赖性强,性能受任务数据和前缀设计影响;

  • 可能保留预训练模型的偏差;

  • 对任务数据依赖大,可能需要单独微调;

  • 模型内部决策过程难以解释。

    Prompt Tuning

Prompt Tuning是一种高效的微调方法,它通过在模型输入中添加特定的文本提示(prompt)来适配下游任务,而不需要对预训练模型的参数进行全面的更新。这种方法的核心在于,它通过优化输入提示的参数来调整模型的行为,使得模型能够更好地适应新的任务,而预训练模型的主体参数保持不变。

Prefix-Tuning和Prompt Tuning最主要区别在于,Prefix-Tuning的前缀参数被插入到模型的所有层中,而Prompt Tuning只将提示参数添加到模型的embedding层。

Prompt Tuning的关键优势在于它的参数效率。相比于传统的微调方法,Prompt Tuning只需要更新一小部分参数,即与提示相关的参数,这样可以显著减少所需的计算资源和训练时间 。此外,Prompt Tuning还可以提高模型的泛化能力,因为它允许模型在没有大量标注数据的情况下适应新任务。

Prompt Tuning思路

指示微调(Prompt-tuning)是一种用于生成任务的微调方法,旨在解决前缀微调中前缀设计复杂、指导信息不一致、任务灵活性差和模型可解释性低等问题。它通过简洁的指示语句替代复杂前缀,提供明确一致的指导信息,增强任务灵活性和可扩展性,并提升模型的可解释性,适用于多样化任务和领域。指示微调的思路是:

  • 首先使用大规模无监督预训练任务训练通用语言模型;

  • 然后设计简洁明确的指示语句,包含任务要求和关键信息;

  • 接着在微调阶段结合任务数据和指示语句优化模型参数;

  • 最后,模型根据指示语句生成相关内容,简化任务准备过程,提高灵活性、可控性和生成结果的一致性。

    Prompt Tuning优点

  • 灵活性和可扩展性强,通用指示语句适用于多种任务和领域;

  • 简化任务准备,减少前缀设计的复杂性;

  • 提高生成结果的一致性和可控性;

  • 增强模型可解释性,便于调试和优化;

  • 提升生成结果质量和准确性。

    Prompt Tuning缺点

  • 效果依赖于设计良好的指示语句,设计不当可能导致结果不符合要求;

  • 对模型任务理解能力要求高,理解偏差会影响生成结果;

  • 需要大规模任务数据进行微调,数据不足会限制效果和泛化能力;

  • 可能导致过度指导,限制生成内容的多样性和创造性;

  • 难以处理复杂任务,可能需要更复杂方法解决。

    Prompt-tuning与Prefix-tuning对比

指示微调(Prompt-tuning)和前缀微调(Prefix-tuning)都是用于指导生成模型的技术,但存在以下区别:

  1. 输入形式:指示微调使用通用的指示语句作为输入的一部分;前缀微调则在输入文本前添加特定的前缀。
  2. 灵活性:指示微调更灵活,适用于多种任务和领域;前缀微调需为每个任务设计特定前缀。
  3. 任务准备:指示微调任务准备更简单,指示语句简洁明确;前缀微调需更多准备工作,包括设计和调整前缀。
  4. 一致性和可控性:指示微调通过明确指示语句提高生成结果的一致性和可控性;前缀微调的可控性取决于前缀设计。
  5. 可解释性:指示微调的指示语句可解释模型决策过程;前缀微调的可解释性较弱。

    Prompt-tuning与Fine-tuning对比

指示微调(Prompt-tuning)和微调(Fine-tuning)都是对预训练模型进行调整的方法,但存在以下区别:

  1. 调整目标:指示微调通过指示语句指导模型生成内容;微调通过端到端训练优化模型在特定任务上的性能。
  2. 指导方式:指示微调通过人工设计的指示语句引导生成;微调通过任务数据调整模型参数。
  3. 数据需求:指示微调通常需要大规模任务数据;微调可能需要更多任务数据进行端到端训练。
  4. 灵活性和通用性:指示微调更灵活通用,适用于多种任务;微调需针对每个任务单独调整。
  5. 迁移学习程度:指示微调是浅层迁移学习;微调是深层迁移学习,调整模型参数以适应任务。
    选择哪种方法取决于任务需求、数据可用性和应用场景。

P-Tuning

P-tuning 主要是为自然语言理解(NLU)任务设计的,它是Soft prompts的另一种变体。P-tuning 添加了一个可训练的嵌入张量,这个张量可以被优化以找到更好的提示,并且它使用一个提示编码器(一个双向长短期记忆网络或LSTM)来优化提示参数。

P-tuning的特点是将Decoder架构的模型变得适应Encoder架构的任务,如NLU任务。

P-tuning有两个版本,P-tuning v1(2021年)和P-tuning v2(2023年)。P-tuning v1通过使用一个prompt encoder(例如BiLSTM+MLP)来优化prompt参数,但这种方法在一些复杂的自然语言理解(NLU)任务上效果不佳,且只在较大的模型规模上表现良好。

为了解决这些问题,P-tuning v2被提出。P-tuning v2在v1的基础上进行了改进,它不仅在输入层,而且在模型的每一层都加入了可训练的连续提示,这样可以更好地适应各种任务,包括复杂的NLU任务。P-tuning v2通过多任务学习策略和深度提示编码器来优化提示参数,使得它在不同规模的模型上都能取得与全参数微调相媲美的性能。

P-tuning思路

P-tuning(指示微调)是一种通过设计明确指示语句来指导生成模型生成任务相关内容的技术。它能够提高生成结果的一致性和可控性,减少人工设计工作量,支持多样化任务和领域,并提升模型的可解释性。P-tuning广泛应用于生成模型的任务调整和优化。P-tuning的基本思路包括:

  1. 设计明确的指示语句,包含任务要求和关键信息。

  2. 将指示语句与任务输入组合,构建模型输入。

  3. 使用生成模型生成任务相关结果。

  4. 根据评估指标对结果进行评估。

  5. 根据评估结果调整指示语句。

  6. 迭代优化,提升生成结果质量。

    P-tuning优点

  7. 提高生成结果的一致性和可控性。

  8. 减少人工设计和调整的工作量。

  9. 适用于多种生成任务和领域。

  10. 提高模型的可解释性。

    P-tuning缺点

  11. 需要人工设计和调整指示语句。

  12. 需要大量训练数据和计算资源。

  13. 指示语句可能与任务需求不匹配。

  14. 可能牺牲生成结果的多样性和创新性。

    P-Tuning v2

P-tuning v2思路

P-tuning v2是P-tuning的改进版本,旨在解决P-tuning中指示语句与任务需求不匹配、生成结果多样性不足、人工设计工作量大以及对任务和领域的支持有限等问题。P-tuning v2通过引入更灵活的指示语句生成机制、多样性增强策略、自动化方法以及针对特定任务和领域的优化,提升了生成结果的准确性、多样性和效率,同时扩展了其应用范围。P-tuning v2的思路主要包括以下几个方面:

  1. 自动化指示语句生成:利用强化学习等方法自动生成指示语句,减少人工设计工作量。
  2. 多样性增强机制:通过引入随机性和多模态生成方法,增加生成结果的多样性。
  3. 模型结构和优化改进:使用深度神经网络和注意力机制等复杂模型结构,结合迁移学习加速训练。
  4. 面向特定任务和领域的优化:针对不同任务和领域设计定制化的指示语句生成机制和模型结构。

    P-tuning v2优点

P-tuning v2相比于P-tuning具有以下几个优点:

  1. 提高生成结果的准确性:通过改进指示语句生成和模型结构,生成更准确的结果。

  2. 增加生成结果的多样性:通过多样性增强机制,生成更多样化和丰富的结果。

  3. 减少人工设计和调整的工作量:通过自动化方法生成指示语句,提高效率。

  4. 适应更多生成任务和领域:通过定制化优化,扩展到更多应用场景。

    P-tuning v2缺点

  5. 训练和优化复杂度高:引入复杂模型和优化方法,增加训练难度和资源需求。

  6. 指示语句生成的准确性限制:自动化生成的指示语句可能不够准确,需要进一步验证和调整。

  7. 多样性增强可能导致结果不稳定:多样性增强机制可能导致生成结果差异过大,难以保持一致性和可控性。

  8. 需要大量训练数据和标注:复杂模型的训练需要大量高质量数据,获取这些数据可能具有挑战性。

    参考

[1] The Power of Scale for Parameter-Efficient Prompt Tuning

[2] Prefix-Tuning: Optimizing Continuous Prompts for Generation

[3] P-tuning: A Simple Method for Prompt Tuning

本文结束 感谢您的阅读