首页 > 其他分享 >【论文笔记】Prefix-Tuning: Optimizing Continuous Prompts for Generation

【论文笔记】Prefix-Tuning: Optimizing Continuous Prompts for Generation

时间:2024-06-21 12:31:16浏览次数:12  
标签:Optimizing Continuous Tuning 前缀 LM 任务 prefix 参数 tuning

题目:Prefix-Tuning: Optimizing Continuous Prompts for Generation
来源: ACL 2021
模型名称: Prefix-Tuning
论文链接: https://aclanthology.org/2021.acl-long.353/
项目链接: https://github.com/XiangLi1999/PrefixTuning

感觉与prompt的想法很相近,那么问题来了,为什么不一开始就用prompt呢?应该看一下代码,我感觉并没有说prefix是在哪里添加

code-huggingface

0.摘要

微调会修改所有语言模型参数,因此需要为每个任务存储完整副本。作者提出了前缀调整,这是自然语言生成任务微调的一种轻量级替代方案,它保持语言模型参数不变,而是优化**一系列连续的特定于任务的向量,称之为前缀。**灵感来源于prompt,在两个任务上使用prefix-tuning:在GPT-2上table-totext generation,在BART上面总结

1.引言

问题:大模型进行微调的代价很大,应该怎么办?

现有解决办法:Adapter-tuning、in-context learning

考虑生成数据表的文本描述的任务,如图 1 所示,其中任务输入是线性化表(例如,“名称:星巴克 | 类型:咖啡店”),输出是文本描述(例如,“星巴克供应咖啡。”)。Prefix-tuning将一系列连续的特定于任务的向量添加到输入中,我们称之为前缀。Transformer 可以将前缀视为一系列“虚拟token”,但与prompt不同,前缀完全由不对应于真实令牌的自由参数组成

针对不同的任务,是需要微调prefix即可。(图中红色的部分是在微调过程中需要进行优化的地方)

与完全微调相比,前缀调整也是模块化的:我们训练一个上游前缀来引导未修改的 LM,因此,单个 LM 可以同时支持许多任务。在任务与用户相对应的个性化背景下,我们将为每个只接受该用户数据训练的用户设置一个单独的前缀,从而避免数据交叉污染。此外,基于前缀的架构使我们甚至可以在一个批次中处理来自多个用户/任务的示例,这是其他轻量级微调方法(如 adaptertuning)无法做到的。

在table-to-text中,与全量微调效果差不多。在summarization中,只退化了一点点性能。但是在low-data设定下,在两个任务上,prefix效果都要比微调要好。prefix对于未见过的数据处理的更好

在这里插入图片描述

2.相关工作

NLG中进行微调:本文只是用了GPT-2和BART,其实可以用在所有的生成任务和预训练模型上面的、

轻量化微调:关键问题是如何扩充 LM 架构并决定调整哪个预训练参数子集。一项研究学习了特定于任务的参数掩码。另一项研究是插入具有可训练参数的新模块。与Adapter相比,减少了30倍的参数。【我的理解,大模型对文本其实已经理解的很好了,只是不知道要做什么任务罢了】

Prompting:AutoPrompt,采用离散的提示词。尔prefix tuning用的是连续的向量进行表示。前缀调整优化适用于该任务所有实例的任务特定前缀。因此,与以前的应用仅限于句子重建的工作不同,前缀调整可以应用于 NLG 任务。

可控生成:目前没有直接的方法来应用这些可控生成技术来对生成的内容实施细粒度控制,如表到文本和摘要等任务所要求的那样。

P-tuning*:(P*指的是 p-tuning,prompt-tuning,prefix-tuning)调整软提示优于以前的工作

在这里插入图片描述

3.Prefix-tuning

Prompt表明在适当的上下文条件下可以在不更改其参数的情况下引导 LM。例如,如果我们希望 LM 生成一个词(例如 Obama),我们可以将其常见搭配作为上下文(例如 Barack)添加到前面,LM 将为所需词分配更高的概率。将这种直觉扩展到生成单个单词或句子之外,我们希望找到一个上下文来引导 LM 解决 NLG 任务。

我们可以将指令优化为连续词嵌入,而不是对离散标记进行优化,其效果将向上传播到所有 Transformer 激活层,并向右传播到后续标记。这比受限于真实单词嵌入的离散提示更具表现力。通过优化所有层的激活,而不仅仅是嵌入层,前缀调整在提高表现力方面更进了一步。另一个好处是,prefixtuning 可以直接修改网络更深处的表示,因此避免了跨越网络深度的长计算路径

对于自回归模型,加入前缀后的模型输入表示: z = [ P R E F I X ; x ; y ] z=[PREFIX; x; y] z=[PREFIX;x;y]

对于Encoder Decoder模型,加入前缀后的模型输入表示: z = [ P R E F I X ; x ; P R E F I X ; y ] z=[PREFIX; x; PREFIX; y] z=[PREFIX;x;PREFIX;y]

本文构造一个矩阵 P θ ( ∣ P i d x ∣ × d i m ( h i ) ) P_\theta(|P_{idx}| \times dim(h_i)) Pθ​(∣Pidx​∣×dim(hi​))去存储前缀参数,该前缀是自由参数

h i = { P θ [ i , ; ] , if i ∈ P i d x , L M ϕ ( z i , h < i ) , otherwise. h_i=\begin{cases}P_\theta[i,;],&\text{if}i\in\mathsf{P}{\mathrm{idx}},\\ \mathsf{LM}\phi(z_i,h_{<i}),&\text{otherwise.}\end{cases} hi​={Pθ​[i,;],LMϕ(zi​,h<i​),​ifi∈Pidx,otherwise.​

微调的时候参数Φ是固定的,θ是进行训练的

h i h_i hi​ 不属于 p i d x p_{idx} pidx​时, h i h_i hi​仍然依赖于 h θ h_\theta hθ​,因为前缀激活总是在左侧上下文中,因此会影响右侧的任意激活函数

注意!

直接更新 P θ P_\theta Pθ​会导致优化不稳定以及轻微的性能下降。因为对 P θ P_\theta Pθ​矩阵进行了重参数化:

P θ [ i , : ] = MLP θ ( P θ ′ [ i , : ] ) P_{\theta}[i, :]=\text{MLP}_{\theta}(P'_{\theta}[i, :]) Pθ​[i,:]=MLPθ​(Pθ′​[i,:])

现在,可训练的参数包括 P θ P_θ Pθ​和 M L P θ MLP_θ MLPθ​的参数。请注意, P θ P_θ Pθ​ 和 P ′ θ P′_θ P′θ​ 具有相同的行数(即前缀长度),但列数不同。 一旦训练完成,这些重新参数化参数可以被丢弃,只需要前缀 P θ P_θ Pθ​已保存

在这里插入图片描述

4.实验

4.1 table-to-text

在这里插入图片描述

BLEU:双语评估替补,详情 吴恩达视频

**NIST:**在 BLEU 方法上的一种改进

MET 和 BLEU 不同,MET同时考虑了基于整个语料库上的准确率和召回率,而最终得出测度

TER 是 Translation Edit Rate 的缩写,是一种基于距离的评价方法,用来评定机器翻译结果的译后编辑的工作量 详情

R-L 中的 L 指最长公共子序列 (longest common subsequence, LCS),ROUGE-L 计算的时候使用了机器译文 C 和参考译文 S 的最长公共子序列

4.2 summarization

在这里插入图片描述

在这里插入图片描述

4.3 Low-data Setting

在训练数据很小的情况下,优势更加明显。【他们在做实验的时候,直接控制数据集的规模就好了】

在这里插入图片描述

在这里插入图片描述

4.4 归纳推理性能

为了构建一个推测设置,作者将现有的数据集进行分割,以便训练和测试覆盖不同的主题。对于table-to-text,WebNLG数据集被标记为表主题。在train和dev中出现了9个类别,表示为SEEN,5个类别只出现在测试时,表示为UNSEEN。因此,我们通过对SEEN类别的训练和对UNSEEN类别的测试来评估extrapolation能力。例如:在news-to-sports中,训练新闻文章,测试体育文章。在within-news,训练{world, UK, business}新闻,并对其余的新闻类别进行测试(e.g., health, tech)

表2(中间)中的“U”列也表示extrapolation的结果

我们还发现,adapter-tuning 也获得了良好的extrapolation性能,这一共同的趋势表明,保留LM参数确实对extrapolation有积极的影响。然而,prefifix-tuning如何改进外推法是一个悬而未决的问题

【结果详见Table2 中间 S:seen,U:unseen,A:all】

5.评估

5.1 Prefix Length

prefix的长度越长,说明可以训练的参数就越多,当长度超过一定阈值的时候,性能就会出现下降的情况,这说明模型已经开始出现了过拟合的问题。

在这里插入图片描述

5.2 Full vs Embedding-only

discrete prompting < embeddingonly < prefix-tuning.

在这里插入图片描述

5.3 Prefix-tuning vs Infix-tuning

上述Table 5 中的下半部分就是Infix-tuning

作者认为这是因为前缀调整可以影响 x 和 y 的激活,而中缀调整只能影响 y 的激活。

[PREFIX; x; y] →[x; INFIX; y]

5.4 初始化

在low-data设定下:用任务相关的词初始化效果>随机真实词汇初始化>随机初始化

在全量数据下:哪种初始化都没有影响

由于作者使用 LM 计算的真实单词的激活来初始化前缀,因此这种初始化策略与前缀调整的理念一致,它尽可能地保留了预训练的 LM。

在这里插入图片描述

6.讨论

个性化:每个用户都被视为一个独立的任务,每个任务都有独立的prefix

Batching across users:可以进行批量计算,只要把prefix添加到对应层就可以,而adapter做不到这一点

Inductive bias of prefix-tuning:保留 LM 参数可能有助于泛化到训练期间看不到的域。【但具体是如何外推的,并不清楚】prefix并没有破坏LM的结果,Adapter实际上破坏了LM的结果,因此Prefix-tuning比起Adapter能更好的利用LM

Aghajanyan 等人最近的工作。 (2020) 使用内在维度表明存在低维重新参数化,它与全参数化一样有效地进行微调。这解释了为什么仅更新少量参数就可以获得下游任务的良好准确性。作者的工作通过表明也可以通过更新非常小的前缀来获得良好的生成性能来回应这一发现。然而,前缀调整不仅仅是关于可训练参数的大小,更重要的是,要修改参数的哪个子集。因此,探索其他轻量级微调方法以实现更好的精度大小权衡将是有趣的未来工作。

标签:Optimizing,Continuous,Tuning,前缀,LM,任务,prefix,参数,tuning
From: https://blog.csdn.net/weixin_44904205/article/details/139830219

相关文章

  • LLM微调方法(Efficient-Tuning)六大主流方法:思路讲解&优缺点对比[P-tuning、Lora、Pre
    LLM微调方法(Efficient-Tuning)六大主流方法:思路讲解&优缺点对比[P-tuning、Lora、Prefixtuing等]由于LLM参数量都是在亿级以上,少则数十亿,多则数千亿。当我们想在用特定领域的数据微调模型时,如果想要full-tuning所有模型参数,看着是不太实际,一来需要相当多的硬件设备(GPU),二来需要......
  • Dual Instruction Tuning with Large Language Models for Mathematical Reasoning
    本文是LLM系列文章,针对《DualInstructionTuningwithLargeLanguageModelsforMathematicalReasoning》的翻译。数学推理的大语言模型双指令调优摘要1引言2方法3实验4结论局限性摘要最近的进展突出了利用思想链(CoT)数据进行数学推理任务的大型语言模型(LLM)......
  • ALoRA: Allocating Low-Rank Adaptation for Fine-tuning Large Language Models
    本文是LLM系列文章,针对《ALoRA:AllocatingLow-RankAdaptationforFine-tuningLargeLanguageModels》的翻译。ALoRA:为微调大型语言模型分配低秩自适应摘要1引言2相关工作3方法4实验5结论摘要参数有效微调(PEFT)在大语言模型时代因其有效性和效率而......
  • 论文解读——CVPR2024《Learning by Correction: Efficient Tuning Task for Zero-Sho
    一、研究背景  视觉-语言模型是一类能够处理和理解图像及其相关文本信息的模型,它们在多种视觉-语言任务中展示了卓越的性能。这些任务包括图像描述(imagecaptioning)、视觉问题回答(visualquestionanswering)、图像-文本检索(image-textretrieval)等。这些模型通常经过大规......
  • Combining Recurrent, Convolutional, and Continuous-time Models with Linear State
    目录概符号说明LSSL和其它方法的联系代码GuA.,JohnsonI.,GoelK.,SaabK.,DaoT.,RudraA.,andReC.Combiningrecurrent,convolutional,andcontinuous-timemodelswithlinearstate-spacelayers.NeurIPS,2021.Statespacerepresentaion-wiki.概Mamba......
  • 《Optimizing the LINPACK Algorithm for Large-Scale PCIe-Based CPU-GPU Heterogene
    论文标题《OptimizingtheLINPACKAlgorithmforLarge-ScalePCIe-BasedCPU-GPUHeterogeneousSystems》为基于PCIe的大规模CPU-GPU异构系统优化LINPACK算法作者GuangmingTan、ChaoyangShui、YinshanWang、XianzhiYu和YujinYan来自中科院计算所初读摘要......
  • 【简单讲解下Fine-tuning BERT,什么是Fine-tuning BERT?】
    ......
  • Visual Instruction Tuning论文阅读笔记
    Motivation&AbsMotivation:之前基于LLM的通用助手仅能处理文本。数据:使用纯语言的GPT4生成多模态语言-图像指令数据。模型:基于生成数据端到端训练的模型LLaVA,用于通用视觉语言理解。指标:两个benchmark。GPT-assistedVisualInstructionDataGeneration现有的多模态指令数......
  • BERT+P-Tuning文本分类模型
    基于BERT+P-Tuning方式文本分类模型搭建模型搭建本项目中完成BERT+P-Tuning模型搭建、训练及应用的步骤如下(注意:因为本项目中使用的是BERT预训练模型,所以直接加载即可,无需重复搭建模型架构):一、实现模型工具类函数二、实现模型训练函数,验证函数三、实现模型预测函......
  • Optimizing Language Augmentation for Multilingual Large Language Models: A Case
    本文是LLM系列文章,针对《OptimizingLanguageAugmentationforMultilingualLargeLanguageModels:ACaseStudyonKorean》的翻译。优化多语言大型语言模型的语言增强——以朝鲜语为例摘要1引言2相关工作3丰富MLLM词汇4LIMA上的指令调整5定量评估6定......