【论文速读】Prompt Tuning:The Power of Scale for Parameter-Effificient Prompt Tuning

arxiv:2104.08691v2

摘要

在这项工作中,我们探索了“prompt tuning(提示调优)”,这是一种简单而有效的机制,用于学习“soft prompts(软提示)”,以条件下冻结的语言模型来执行特定的下游任务。**与GPT-3使用的离散文本提示不同,软提示是通过反向传播来学习的,并且可以进行调优,以合并来自任意数量的标记示例的信号。**我们的端到端学习方法比GPT-3的少量镜头学习效果更好。更值得注意的是,通过使用T5对模型大小进行消融,我们证明了提示调优随着规模的增加而变得更有竞争力:随着模型超过数十亿参数,我们的方法“缩小差距”,并匹配模型调优的强大性能(其中所有模型权重都被调优)。这一发现特别相关,因为大型模型的共享和服务成本很高,而为多个下游任务重用一个冻结模型的能力可以减轻这种负担。我们的方法可以看作是对Li和Liang(2021)最近提出的“前缀调优”的简化,并与这种方法和其他类似的方法进行了比较。最后,我们展示了使用软提示条件处理冻结模型有利于域转移的鲁棒性,并能够实现高效的“提示集成”。

导言

  • ELMo(Peters et al.,2018)提出冻结预先训练好的模型,并学习其每层表示的任务特定权重。

  • GPT和BERT主导的适应技术是模型调整(或“微调”),在适应过程中所有模型参数都被调整

  • T5的标准模型调优实现了很强的性能,但需要为每个结束任务存储单独的单独副本。

最近,Brown等人(2020)表明,prompt design(提示设计)(或“priming”)通过文本提示调节冻结的GPT-3模型的行为是惊人的有效的。提示通常由一个任务描述和/或几个规范示例组成。这种对“冻结”预训练模型的回归是很有吸引力的,特别是随着模型规模的不断增加。一个单一的通用模型可以同时服务于许多不同的任务,而不是为每个下游任务需要一个单独的模型副本。

在这里插入图片描述

不幸的是,基于提示的适应有几个关键的缺点。任务描述容易出错,需要人类的参与,而提示的有效性受到模型输入中有多少条件反射文本的限制。因此,下游任务的质量仍然远远落后于调优后的模型。

在本文中,我们提出了prompt tuning(提示调优),作为自适应语言模型的进一步简化。我们冻结了整个预先训练过的模型,并且只允许每个下游任务在输入文本中添加额外的k个可调标记。这种“soft prompt(软提示)”是端到端训练的,可以压缩来自完整标记数据集的信号,使我们的方法优于few-shot prompts,并通过模型调优缩小质量差距。与此同时,由于单个预先训练过的模型可以被循环用于所有下游任务,因此我们保留了冻结模型的有效服务好处。

总之,我们的主要贡献是:

  1. 在大型语言模型体系中提出快速调优并显示其与模型调优的竞争力。

  2. 去除许多设计选择,并显示质量和鲁棒性随着规模的扩大而提高。

  3. 在域移位问题上,prompt tuning调优优于模型调优。

  4. 提出“prompt ensembling(提示集成)”,并显示其有效性。

Prompt Tuning

遵循T5的“text-to-text”方法,我们将所有任务转换为文本生成。我们不是将分类建模为给定一些输入的输出类的概率, P r ( y ∣ X ) Pr(y|X) PryX,其中X是一系列标记,y是一个单一的类标签,我们现在将其建模为条件生成,其中Y是一个表示类标签的token序列。T5模型分类为 P r θ ( Y ∣ X ) Pr _\theta(Y |X) PrθYX,由组成其编码器和解码器的变压器的权重θ参数化。

Prompting是在模型生成Y的过程中为模型添加额外信息的方法。

Prompt tuning消除了提示P被θ参数化的限制;相反,提示符有它自己的专用参数, θ P θ_P θP,可以更新。prompt tuning可以被认为是使用特殊的固定提示,其中只能对这些prompt tokens的embeddings进行更新,而prompt design涉及从冻结嵌入的固定词汇表中选择prompt tokens。我们的新的条件生成现在是 P r θ ; θ P ( Y ∣ [ P ; X ] ) Pr_{θ;θ_P}(Y|[P;X]) Prθ;θP(Y[P;X]),可以通过反向传播最大化Y的可能性来训练,而只对 θ P θ_P θP应用梯度更新。

给定一系列的n个标记, { x 1 , x 2 , … , x n } \{x1,x2,…,xn\} {x1,x2,,xn},T5所做的第一件事就是嵌入令牌,形成一个矩阵 X e ∈ R n × e X_e ∈ R^{n×e} XeRn×e,其中,e为embedding空间的维数。我们的soft-prompts被表示为一个参数$P_e ∈ R^{p×e} ,其中, p 是 p r o m p t 的长度。然后将我们的提示符连接到 e m b e d d e d 的输入中,形成一个单一的矩阵 ,其中,p是prompt的长度。然后将我们的提示符连接到embedded的输入中,形成一个单一的矩阵 ,其中,pprompt的长度。然后将我们的提示符连接到embedded的输入中,形成一个单一的矩阵[P_e; X_e] ∈ R^{(p+n)×e} ,然后正常地通过编解码器。我们的模型被训练以使 Y 的概率最大化,但只有提示参数 ,然后正常地通过编解码器。我们的模型被训练以使Y的概率最大化,但只有提示参数 ,然后正常地通过编解码器。我们的模型被训练以使Y的概率最大化,但只有提示参数P_e$被更新。

在这里插入图片描述

Model tuning(模型调优)需要为每个下游任务的整个预训练模型制作一个特定于任务的副本,并且推理必须在单独的批次中执行。

Prompt tuning(提示调优)只需要为每个任务存储一个特定于任务的小提示,并使用原始的预训练模型启用混合任务推理。对于T5“XXL”模型,每个调优模型的副本需要110亿个参数。相比之下,我们调整后的提示每个任务只需要20,480个参数——减少了超过5个数量级——假设提示长度为5个令牌。

Design Decisions

有许多可能的方法来初始化提示符表示法。最简单的方法是使用随机初始化从头开始训练。一个更复杂的选择是将每个提示标记初始化为从模型的词汇表中提取的嵌入。从概念上讲,我们的软提示以与输入前的文本相同的方式调节冻结网络的行为,因此,一个类似单词的表示可以作为一个很好的初始化点。对于分类任务,第三个选项是使用枚举输出类的嵌入来初始化提示符,类似于Schick和Schutze(2021)的“语言表达器”。由于我们希望模型在输出中生成这些标记,因此使用有效目标标记的嵌入来初始化提示符应该会启动模型,从而将其输出限制为合法的输出类。

另一个设计上考虑的因素是提示符的长度。该方法的参数代价为EP,其中E为标记嵌入维数,P为提示符长度。提示符越短,必须调整的新参数就越少,因此我们的目标是找到一个仍然表现良好的最小长度。

Prompt Tuning和T5区别

  • Prompt Tuning使用预训练模型微调;T5是训练预训练模型。

  • Prompt Tuning输入:提示词+原输入进入 【提示词embedding(训练)+原输入embedding(冻结)】;

  • T5输入:提示词+原输入进入embedding;

num_virtual_tokens:8为要使用的虚拟令牌的数量。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/896094.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB智能算法 - AntColonyOptimization蚁群算法

AntColonyOptimization蚁群算法 智能算法是路线规划、深度学习等等一系列领域所使用的优化算法,是算法进阶之路的必备之路。 前言:本文主要围绕解决TSP旅行商问题展开,对于机器人的路线规划以及非线性方程求解的问题等解决方案 对于一些其他优…

leetcode289:生命游戏

根据 百度百科 , 生命游戏 ,简称为 生命 ,是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态: 1 即为 活细胞 &am…

Nest.js 实战 (十四):如何获取客户端真实 IP

问题解析 在 Nest.js 应用中,当你试图通过 request.ip 获取客户端的 IP 地址时,如果总是返回 ::1 或者 ::ffff:127.0.0.1,这通常意味着请求来自本地主机。 因为在前后端分离应用中,前端请求后端服务一般的做法都是通过代理&…

springboot051医院管理系统(论文+源码)_kaic

医院管理系统 摘要 随着信息互联网信息的飞速发展,医院也在创建着属于自己的管理系统。本文介绍了医院管理系统的开发全过程。通过分析企业对于医院管理系统的需求,创建了一个计算机管理医院管理系统的方案。文章介绍了医院管理系统的系统分析部分&#…

R语言机器学习遥感数据处理与模型空间预测技术及实际项目案例分析

随机森林作为一种集成学习方法,在处理复杂数据分析任务中特别是遥感数据分析中表现出色。通过构建大量的决策树并引入随机性,随机森林在降低模型方差和过拟合风险方面具有显著优势。在训练过程中,使用Bootstrap抽样生成不同的训练集&#xff…

2024大模型应用实践报告|附35页PDF文件下载

前言 今天分享的是大模型专题系列深度研究报告:《大模型专题:2024大模型应用实践报告:战略一致性,企业成功落地大模型的隐藏秘钥》 (报告出品方:爱分析) 报告共计:35页 1.报告综述…

某MDM主数据管理系统与微软Dynamic CRM系统(国内节点)集成案例

一、需求分析 需要完成的核心场景: 客户主数据:通过SAP PO集成中间件平台,某MDM主数据实时推送客户主数据信息至微软CRM系统,方便微软CRM系统进行客户方面的管理,并供微软CRM查询员工信息,修改员工&…

大数据-180 Elasticsearch - 原理剖析 索引写入与近实时搜索

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

【Eclipse系列】解决Eclipse中xxx.properties文件中文乱码问题

问题描述:由于eclipse对Properties资源文件的编码的默认设置是ISO-8859-1,所以在打开.properties文件时,会发现中文乱码了,如图: 解决方法: 1、一次生效法 右击该properties文件–>properties–>Re…

暖水毯/取暖毯语音识别控制芯片IC方案

暖水毯、取暖毯作为现代家居生活的温暖伴侣,其智能化升级已是大势所趋。在暖水毯与取暖毯中融入语音识别控制芯片IC方案,为用户的冬日取暖体验带来了革命性的变革。 一、暖水毯/取暖毯增加语音识别控制芯片方案,让产品能通过对话来调节&…

5种边界填充

目录 边界填充需要知道的两个东西什么算边界边界的范围是多少举例 复制填充反射法反射101法外包装法数值填充法原图代码最终效果 边界填充需要知道的两个东西 什么算边界 顾名思义:就是图片的最外边 边界的范围是多少 根据你自己的需要而设置 举例 这里我选择…

SpringBoot中集成海康威视SDK实现布防报警数据上传/交通违章图片上传并在linux上部署(附示例代码资源)

场景 需对接海康威视交通产品中的交通违章检测功能,实现车辆闯红灯时获取抓拍数据(车牌号)并获取上传的抓拍图片。 根据其官方资料设备网络SDK使用手册中说明,此流程需要可以通过报警布防方式进行。 访问官方下载SDK文档等资料 海康威视-引领智能物联…

【C++】stack(STL)

stack的介绍 stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成…

幂律分布笔记

一、幂律分布的数据拟合 数据分箱: 所谓分箱就是对原始数据进行分组,然后对每一组内的数据进行平滑处理。常见的分箱方式主要有等深分箱、等宽分箱、用户自定义等 对数分箱: 对原数据进行分箱,第i个箱的宽度为bi,b…

双十一购物节有哪些好物值得入手?2024双十一好物清单合集分享

一年一度的双十一购物狂欢节即将来临,各大平台纷纷开启预热活动,伴随着品牌的疯狂折扣和满减优惠,众多商品即将迎来超值的价格。现在正是大家“剁手”换新装备的大好时机。作为一名深耕智能产品多年的资深达人,今天这期我将从不同…

【python】OpenCV—Sort the Point Set from Top Left to Bottom Right

文章目录 1、功能描述2、代码实现3、效果展示4、更多例子5、参考 1、功能描述 给出一张图片,里面含有各种图形,取各种图形的中心点,从左到右从上到下排序 例如 2、代码实现 import cv2 import numpy as npdef process_img(img):img_gray c…

Xshell使用密钥远程登录Ubuntu 22.04报错:所选的用户密钥未在远程主机上注册。请再试一次

报错截图如下: 问题原因: Ubuntu 22.04 不支持 Xshell使用的私钥。 查看系统支持的私钥:sudo sshd -T | egrep "pubkey" ~$ sudo sshd -T | egrep "pubkey" pubkeyauthentication yes pubkeyacceptedalgorithms ssh-ed…

2024最新Selenium自动化测试面试题!

1、什么是自动化测试、自动化测试的优势是什么? 通过工具或脚本代替手工测试执行过程的测试都叫自动化测试。 自动化测试的优势: 1、减少回归测试成本 2、减少兼容性测试成本 3、提高测试反馈速度 4、提高测试覆盖率 5、让测试工程师做更有意义的…

LeetCode刷题日记之贪心算法(四)

目录 前言柠檬水找零根据身高重建队列用最少数量的箭引爆气球总结 前言 在前几篇文章中,我们已经覆盖了贪心算法的基本思路和多种题型。这次我将继续分享几道具有挑战性的贪心题目。希望这篇文章能为大家带来更多解题灵感和技巧✍✍✍ 柠檬水找零 LeetCode题目链接…

openai swarm多智能体框架使用案例;调用第三方deepseek大模型接口服务

参考: https://github.com/openai/swarm 安装: pip install git+ssh://git@github.com/openai/swarm.git pip install python-dotenv 代码: .env OPENAI_BASE_URL="https://api.deepseek.com/v1" OPENAI_API_KEY