P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks

P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks

  • Introduction
  • Method
    • 结构
    • 优化方法
  • 实验

Introduction

作者首先阐述了当前行业的痛点:

  1. Fine-tune LLM现在虽然可以为下游任务提供很好的表现,但是这个过程会受到算力、时间的限制,为多个task同时储存它们各自的权重也是比较贵的事情。
  2. GPT3 那篇文章提出了 One-shot,Few-shot等0样本学习的prompt方法,但是找到一个很好的prompt犹如大海捞针,作者表示离散的prompt可能不是最好的选择,它们可能让结果变好,同时也可能让结果变得更差。
  3. Prompt- Tuning 的方法是通过训练来学习一个连续的prompt,如prefix tuning 、lora、P-tuning,但是这类对参数比较少的模型效果不是很友好(10B以下), 并且对hard sequence 的 labeling task 表现也不是很好。

这篇文章的主要贡献是基于前缀学习的一个新的经验性的发现,并提升了微调任务的通用性并且提升了在底参数下的性能。
P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks_第1张图片

Method

结构

在V1 和prefix中,都是在input的上做修改,但是作者认为着面临两个挑战:

  1. 由于序列长度的限制,可调节的参数不多。
  2. 模型层数很多,随着层数的提升,这个prompt可能不会直接影响最重的结果。
    为了解决上述问题,作者把采用了 deep prompt tuning的方法,如下图:
    P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks_第2张图片
    在每一层都引入了Layer Prompt(prefix token),这使得需要微调的参数从0.01%-》0.1-3%,然后作者又通过实验对比,发现在更深层的prompt 的效果要比浅层的作用要好。

优化方法

重参数化,就是在外面套一层MLP或者LSTM,作者发现它的使用范围与下游任务与数据集有关:

Prompt Length:作者认为数据prompt的长度与任务的复杂度有关,复杂一些的任务可能需要更多的token,反之则相反。

Multi-task Learning:主要是说在多任务上联合训练的效果要比单独的要好。
Classification Head:以前的方法是输出一个tensor,然后在词表相似度对比,作者通过实验证明直接引入一个linear的效果更好,但是会略微增加参数量。

实验

P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks_第3张图片

你可能感兴趣的:(深度学习,人工智能)