ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

解密Prompt系列3. 冻结LM微调Prompt: Prefix-Tuning Prompt-Tuning P-Tuning

解密Prompt系列3. 冻结LM微调Prompt: Prefix-Tuning  Prompt-Tuning  P-Tuning 前言这一章我们介绍在下游任务微调中固定LM参数只微调Prompt的相关模型。这类模型的优势很直观就是微调的参数量小能大幅降低LLM的微调参数量是轻量级的微调替代品。和前两章微调LM和全部冻结的prompt模板相比微调Prompt范式最大的区别就是prompt模板都是连续型Embedding而非和Token对应的离散型模板。核心在于我们并不关心prompt本身是否是自然语言只关心prompt作为探针能否引导出预训练模型在下游任务上的特定能力。固定LM微调Prompt的范式有以下几个优点性价比高微调参数少冻结LM只微调prompt部分的参数无人工参与无需人工设计prompt模板依赖模型微调即可多任务共享模型因为LM被冻结只需训练针对不同任务的prompt即可。因此可以固定预训练模型拔插式加入Prompt用于不同下游任务Prefix-TuningPaper: 2021.1 Optimizing Continuous Prompts for GenerationGithubhttps://github.com/XiangLi1999/PrefixTuningPrompt: Continus Prefix PromptTask ModelBART(Summarization), GPT2(Table2Text)最早提出Prompt微调的论文之一其实是可控文本生成领域的延伸因此只针对摘要和Table2Text这两个生成任务进行了评估。先唠两句可控文本生成哈哈其实整个Prompt范式也是通用的可控文本生成不是只不过把传统的Topic控制文本情绪控制Data2Text等更进一步泛化到了不同NLP任务的生成控制~~Prefix-Tuning可以理解是CTRL[1]模型的连续化升级版为了生成不同领域和话题的文本CTRL是在预训练阶段在输入文本前加入了control code例如好评前面加’Reviews Rating:5.0’,差评前面加’Reviews Rating:1.0’, 政治评论前面加‘Politics Title:’把语言模型的生成概率优化成了基于文本主题的条件概率。Prefix-Tuning进一步把control code优化成了虚拟Token每个NLP任务对应多个虚拟Token的Embeddingprefix对于Decoder-Only的GPTprefix只加在句首对于Encoder-Decoder的BART不同的prefix同时加在编码器和解码器的开头。在下游微调时LM的参数被冻结只有prefix部分的参数进行更新。不过这里的prefix参数不只包括embedding层而是虚拟token位置对应的每一层的activation都进行更新。对于连续Prompt的设定论文还讨论了几个细节如下prefix矩阵分解作者发现直接更新多个虚拟token的参数效果很不稳定因此作者在prefix层加了MLP分解成了更小的embedding层 * 更大的MLP层。原始的Embedding层参数是n_prefix * emb_dim, 调整后变为n_prefix * n_hidden n_hidden * emb_dim。训练完成后这部分就不再需要只保留MLP输出的参数进行推理即可个人感觉MLP的加入是为了增加多个虚拟token之间的共享信息因为它们和常规的连续文本存在差异需要被作为一个整体考虑可能对prefix位置编码进行特殊处理也阔以prefix长度prefix部分到底使用多少个虚拟token直接影响模型微调的参数量级以及处理长文本的能力。默认的prefix长度为10作者在不同任务上进行了微调最优参数如下。整体上prompt部分的参数量都在原模型的~0.1%其他作者还对比了把prefix放在不同位置以及使用任务相关的Token来初始化prefix embedding的设定前者局限性较大后者在后面的paper做了更详细的消融实验效果上在Table2Text任务上只有0.1%参数量级的prompt tuning效果要优于微调在Xsum摘要任务上prompt的效果要略差于微调。Prompt-TunningPaper: 2021.4 The Power of Scale for Parameter-Efficient Prompt TuningpromptContinus Prefix PromptGithub: https://github.com/google-research/prompt-tuningTask: SuperGLUE NLU任务Model: T5 1.1在原T5上进行了细节优化Prompt-Tunning是以上prefix-Tunning的简化版本面向NLU任务进行了更全面的效果对比并且在大模型上成功打平了LM微调的效果~简化对比Prefix-Tunningprompt-tuning的主要差异如下论文使用100个prefix token作为默认参数大于以上prefix-tuning默认的10个token不过差异在于prompt-Tunning只对输入层(Embedding)进行微调而Prefix是对虚拟Token对应的上游layer全部进行微调。因此Prompt-Tunning的微调参数量级要更小且不需要修改原始模型结构这是“简化”的来源。相同的prefix长度Prompt-Tunning(0.01%)微调的参数量级要比Prefix-Tunning(0.1%~1%)小10倍以上如下图所示为什么上面prefix-tuning只微调embedding层效果就不好放在prompt-tuning这里效果就好了呢因为评估的任务不同无法直接对比个人感觉有两个因素一个是模型规模另一个是继续预训练前者的可能更大些在下面的消融实验中会提到效果消融实验在SuperGLUE任务上随着模型参数的上升PromptTunning快速拉近和模型微调的效果110亿的T5模型(上面prefix-tuning使用的是15亿的GPT2)已经可以打平在下游多任务联合微调的LM模型并且远远的甩开了Prompt DesignGPT3 few-shot作者也做了全面的消融实验包括以下4个方面最核心的感受就是只要模型足够够大一切都好说prompt长度(a)固定其他参数作者尝试了{1520100150}, 当模型规模到百亿后只要prompt长度大于1更长的prompt并不能带来效果提升Prompt初始化(b): 作者尝试了随机uniform初始化用标签文本空间初始化和用Top5K高频词采样初始化在10^8规模标签词初始化效果最好。作者发现预测label也会在对应prompt空间内。不过到百亿规模后初始化带来的影响就会消失T5继续预训练©:作者认为T5本身的Span Corruption预训练目标和掩码词并不适合冻结LM的场景因为在微调中模型可以调整预训练目标和下游目标的差异而只使用prompt可能无法弥合差异。其实这里已经能看出En-Dn框架在生成场景下没有GPT这样的Decoder来的自然。因此作者基于LM目标对T5进行继续预训练继续预训练step(d)以上的继续预训练steps继续预训练步数越高模型效果在不同模型规模上越单调。可解释考虑Prompt-Tunning使用Embedding来表征指令可解释性较差。作者使用cosine距离来搜索prompt embedding对应的Top5近邻。发现embedding的近邻出现语义相似的cluster例如{ Technology / technology / Technologies/ technological / technologies }, 说明连续prompt实际可能是相关离散prompt词的聚合语义当连续prompt较长len100, 存在多个prompt token的KNN相同个人认为这和prefix-tuning使用MLP那里我的猜测相似prompt应该是一个整体使用标签词初始化微调后标签词也大概率会出现在prompt的KNN中说明初始化可以提供更好的prior信息加速收敛P-TuningPaper: 2021.3, GPT Understands, ToopromptContinus Prefix PromptTask: NLU任务, 知识探测任务github: https://github.com/THUDM/P-tuningModel: GPT2 BERTP-Tuning和Prompt-Tuning几乎是同时出现思路也是无比相似。不过这个在prompt综述中被归类为LMPrompt同时微调的范式不过作者其实两种都用了。因此还是选择把p-tuning也放到这一章毕竟个人认为LMPrompt的微调范式属实有一点不是太必要。。。论文同样是连续prompt的设计。不过针对上面提到的Prompt的整体性问题进行了优化。作者认为直接通过虚拟token引入prompt存在两个问题离散性如果用预训练词表的embedding初始化经过预训练的词在空间分布上较稀疏微调的幅度有限容易陷入局部最优。这里到底是局部最优还是有效信息prior其实很难分清整体性多个token的连续prompt应该相互依赖作为一个整体不谋而合了针对这两个问题作者使用双向LSTM2层MLP来对prompt进行表征, 这样LSTM的结构提高prompt的整体性Relu激活函数的MLP提高离散型。这样更新prompt就是对应更新整个lstmMLP部分的Prompt Encoder。下面是p-tuning和离散prompt的对比作者分别对LAMA知识探测和SuperGLUE文本理解进行了评测。针对知识抽取作者构建的prompt模板如下以下3是虚拟prompt词的数量对应prompt encoder输出的embedding数BERT(3, sub,3,obj,3)GPT3sub,3,obj在知识探测任务中默认是固定LM只微调prompt。效果上P-tuning对GPT这类单项语言模型的效果提升显著显著优于人工构建模板和直接微调使得GPT在不擅长的知识抽取任务中可以基本打平BERT的效果。针对SuperGLUE作者是做了LMPrompt同时微调的设定。个人对LMprompt微调的逻辑不是认同毕竟112同时微调它既破坏了预训练的语言知识也没节省微调的参数量级感觉逻辑上不是非常讲的通哈哈坐等之后被打脸。结论基本和以上知识探测相似开头说优点结尾说下局限性可解释性差这是所有连续型prompt的统一问题收敛更慢: 更少的参数想要撬动更大的模型需要更复杂的空间搜索可能存在过拟合只微调prompt理论上是作为探针但实际模型是否真的使用prompt部分作为探针而不是直接去拟合任务导致过拟合是个待确认的问题微调可能存在不稳定性prompt-tuning和p-tuning的github里都有提到结果在SuperGLUE上无法复现的问题最后感谢你们的阅读和喜欢我收藏了很多技术干货可以共享给喜欢我文章的朋友们如果你肯花时间沉下心去学习它们一定能帮到你。因为这个行业不同于其他行业知识体系实在是过于庞大知识更新也非常快。作为一个普通人无法全部学完所以我们在提升技术的时候首先需要明确一个目标然后制定好完整的计划同时找到好的学习方法这样才能更快的提升自己。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】一、全套AGI大模型学习路线AI大模型时代的学习之旅从基础到前沿掌握人工智能的核心技能二、640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。三、AI大模型经典PDF籍随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。四、AI大模型商业化落地方案五、面试资料我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
返回列表