紧接着Stanford的Prefix Tuning论文,Google迅速发表了Prompt Tuning技术论文。Google声称该技术比Prefix Tuning更易上手且成本更低,因此该技术随后也成为了微调技术中的一个重要分支。

本文解读论文**《The Power of Scale for Parameter-Efficient Prompt Tuning》**,与大家共同感受Prompt Tuning技术的奇妙之处。

image-20240403122759085

1.Abstract(摘要)

首先我们看一下论文摘要,快速理解论文的核心内容

  • 问题Prompt TuningPrefix Tuning一样,都是以任务为中心的思路解决问题。

    • 以任务为中心:它们都在试图解决FFT针对不同的下游任务都需产生一个新的微调后大模型而导致的成本效率问题。
  • 解决方案:论文提出的Prompt Tuning,也是一种使用Soft Prompt(软提示)进行迁移学习的方法。统一不同下游任务的训练数据格式,并将这些不同下游任务的训练数据汇总成一个乱序的数据集,微调预训练模型,最终获得一个能处理不同下游任务的大模型。

  • 实验效果

    • 在小参数规模的T5上,Prompt Tuning略差于FFT性能。
    • 在中参数规模的T5上,Prompt Tuning快速接近于FFT性能。
    • 在大参数规模的T5上,Prompt Tuning与FFT性能持平。
    • 因此,Prompt Tuning在大参数规模的模型上,更具成本效率优势。

image-20240403092613314

2.Introduction(介绍)

  • 背景技术1:论文中提到的Prompt Design可以理解为大家耳熟能详的提示词及提示词工程

    • 经过工程实践,大家都知道提示词工程有一定的效果,但效果远不及FFT。为什么呢?论文中总结了提示词工程的两个短板:the discrete space of words(离散空间的单词)requires human involvement(人类的投入)
    • the discrete space of words(离散空间的单词):提示词工程中的提示词是数学意义上的离散,大语言模型不能很好地学习其隐含的特征。隐含特征不是提示词内容本身的显式特征,而是诸如提示词的句式、问法、潜台词等隐式特征。业界针对提取离散空间词汇也提出了一些算法(如:a search algorithm over the discrete space of words),但效果也非常限。
    • requires human involvement(人类的投入):提示词工程依赖有经验的提示词工程师,针对不同下游任务设计提示词,工作量巨大,并且对大模型推理能力的提升又极其有限。
  • 背景技术2:论文中提到的Model TuningModel Tuning(Multi Task),可以理解为FFT

    • Model Tuing(Multi Task)Model Tuning(Multi Task)是针对每个下游任务都微调出一个大模型,而Model Tuning是将N个下游任务都微调到一个大模型中。
  • Prompt Tuning的核心思想

    • 统一下游任务的数据格式:论文中提到an additional k tunable tokens per downstream task to be prepended to the input text,就是为了达成统一下游任务的数据格式。如:['[CLS]’, ‘中’, ‘国’, ‘的’, ‘春’, ‘节’, ‘是’, ‘[MASK]’, ‘[MASK]’, ‘。’, ‘[SEP]']。
    • 合并下游任务的数据集合:当我们统一了下游任务的数据格式,就可以将这些下游任务数据集合混合在一起。
    • LLM具备学习数据集合隐式特征的能力:论文假设LLM是具备学习上述数据格式隐式特征的能力,并通过实验验证了这个假设。
    • Prompt Tuning的本质:该技术的本质是LLM的核心能力之一就是提特征。如果特征很明显,LLM就可以低成本提取。如果特征很隐晦,LLM无法低成本提取、甚至无法提取,Prompt Tuning就是改变数据集,将隐式特征转为显式特征。

image-20240403101321581

  • 实验效果
    • 在小规模T5模型上,提示词工程效果最差、FFT效果最好、Promp Tuning效果中等。
    • 在大规模T5模型上,Promp Tuing效果与FFT持平。
    • 因此,在大规模模型上,Promp Tuning具备巨大的成本优势。

image-20240403101305842

3.Design Decisions(实验设计)

(1)下游任务数据格式归一化的理论基础

论文的实验对象是T5,因为T5有一个有趣的观点:

  • Following the “text-to-text” approach of T5 (Raffelet al., 2020), we cast all tasks as text generation:所有的下游任务都可以等效于文本生成。这个观点就可以支撑Prompt Tuning将所有下游任务的训练数据格式统一起来。
  • 如:翻译下游任务,可以将训练数据构造为:“translate English to German: hello world!”
  • 如:摘要下游任务,可以将训练数据构造为:“summarize: xxxxxxxxxxxxxxxxxxx”

image-20240403112458776

(2)问题建模

论文对问题进行了数学建模:

  • Prθ(Y|X):在不同下游任务的训练数据可归一化的前提下,大语言模型可被建模为Prθ(Y|X),X是用户输入的Tokens,Y是在X发生的概率下模型的输出。
  • Prompt Design的短板:提示词工程需要人类不断尝试寻找出合适提示词,这种不断尝试方法可能是人工寻找的,也可能采用了非可微的搜索方法(如:前文提到的a search algorithm over the discrete space of words)。
  • Prθ;θP (Y|[P; X]):这个公式表达了Prompt Tuning的核心思想——在训练数据中植入特殊Token,大模型除了学习训练数据中的显式特征外,还能学习Prompt形式训练数据的隐式特征。对于Prompt隐式特征的学习最终影响的不是预训练模型的参数θ,而是在修正θP
  • [Pe; Xe] ∈ R(p+n)×e:Prompt中的普通标记被大模型嵌入后得到Xe(e是向量空间的维度),Prompt中的特殊标记被大模型嵌入后得到Pe(e是向量空间的维度)。[Pe; Xe]则表示输入给大模型后续神经网络层的高维向量。训练的影响并不会修正Xe关联的模型参数,只会修正Pe关联的模型参数。

image-20240403115838249

image-20240403115900991

因此,实验的关注点如下:

  • Pe的初始值:和Prefix Tuning一样,都需要关注软提示的初始值,以提升训练速度和效果。
  • Pe的长度:和Prefix Tuning一样,也需要关注软提示的长度,以降低训练成本。
    • Prompt Tuning的参数成本=E*P:E是普通标记的向量维数,P是特殊标记的长度。

(3)如何消减特殊标记的影响

由于增加了特殊标记,大模型学习的内容就不再是原汁原味的"人类自然语言"了。这样就可能导致大模型无法用自然语言作答——这就好像你在训练大模型鸟语但又期待它能说人话、你在用中文教英语最后学会的是Chinglish。

论文中提出了**Span Corruption(跨度损失)**的概念:

  • Span Corruption(跨度损失):比如,训练数据Thank you [X] me to your party [Y] week 、[Y]就是特殊标记,将这种特殊标记植入自然语言的目的是"问题模式等隐式特征的显性化”,但弊端就是让大语言模型学会了非人类的自然语言。
  • 论文提出了三种解决方法
    • Span Corruption法:啥都不做,任由大语言模型输出特殊标记,忽略这种影响。
    • Span Corruption+Sentinel法:在大语言模型中增加Sentinel,一定程度地降低这种影响。
    • LM Adaptation法:采用Raffel提出的一个小模型,纠正大语言模型输出特殊标记的倾向,最终输出纯粹的自然语言。

image-20240403115956245

4.Experiments(实验结果)

4.1.实验结果

论文阐述了详细的实验过程、实验数据,最终的实验结果如前文所述:

  • 在小规模T5模型上,提示词工程效果最差、FFT效果最好、Promp Tuning效果中等。
  • 在大规模T5模型上,Promp Tuing效果与FFT持平。

image-20240403120117025

  • 当模型规模逐渐变大,Promp Tuning涉及的参数相较于Prefix Tuning更少,但微调效果持平,因此Prompt Tuning具备巨大的成本优势

image-20240403120213717

4.2.重要发现

论文在前述实验结果下,有如下重要发现:

论文从可解释性方面发现了语义聚合现象,进一步证明了Prompt形式的数据更有利于大语言模型学习其隐式特征:

  • 语义聚合现象:观测被大语言模型嵌入后的特殊标记和普通标记,可以发现出现了物以类聚的现象:
    • 如:Technology / technology / Technologies / technological / technologies相关的训练数据,向量相似度发生了语义聚合。
    • 语义聚合的出现,说明了大语言模型学习到了Prompt形式的训练数据中的隐式特征,因此可以举一反三地处理为见过的下游任务相关输入。

论文还证明了Prompt Ensembling(提示集成能力)

  • 基于Prompt Tuning的技术思想,可以做到数据格式统一、不同下游任务的训练数据混合训练,进而达到”一个大模型支持多种不同下游任务"。
  • 这种思想可以在超大规模的模型上极大地降低训练成本、使用成本。

image-20240403101321581

在工程实践方面,论文也给出了Prompt长度、Prompt初始值的相关推荐:

  • Prompt长度的影响

    • 在中小参数规模的模型上,Prompt长度越长,提示效果越好,但过犹不及(实验长度的临界值是150)——超过了一定的阈值,就会出现推理性能下降。
    • 在大参数规模的模型上,Prompt长度反而没有什么影响了。
  • Prompt的初始值选择的影响:随机初始化Prompt的效果远差于用下游任务相关联提示词做初始值的效果。

image-20240403121146629

最后,论文还通过消融实验,补充了消减Span Corruption的建议:

  • LM Adaptation:在中小规模模型上,采用LM Adaptation,对大语言模型的纠正效果更好。LM Adaptation增加步数会达到更好的纠正效果。
  • 在大规模模型上,Span Corruption的影响也可以忽略不计了。

image-20240403121223051

5.总结

从上述论文解读中,我们收获了如下技术观点:

  • Prompt Tuning的价值:追求一套预训练模型,搞定多个下游任务。
  • Prompt Tuning的核心思想:通过归一化不同下游任务的训练数据,并将隐式特征显性化,帮助大语言模型学习。
  • Prefix Tuning的工程实践经验
    • Prompt形式的训练数据有助于LLM学习隐式特征。
    • 采用Prompt Tuning可用一套模型搞定多个下游任务。
    • 对于大规模参数的模型,Prompt长度和初始化影响很小。
    • 对于中小规模参数的模型,Prompt长度和初始值可参考Prefix Tuning的实践。

论文链接:https://arxiv.org/pdf/2104.08691.pdf