EMLP2021 | Google大模型微调经典论文prompt tuning

news2024/11/27 10:25:35

一、概述

title:The Power of Scale for Parameter-Efficient Prompt Tuning

论文地址:https://arxiv.org/abs/2104.08691

代码:GitHub - google-research/prompt-tuning: Original Implementation of Prompt Tuning from Lester, et al, 2021

1.1 Motivation

  1. 大模型对每个任务训练一个模型,开销和部署成本都比较高(一个大模型的权重可能要40G,多个任务成本比较高)。
  2. discrete prompts(离散prompts)是指人工设计prompts提示语加入到模型中,这样成本比较高,并且效果好像不太行。

1.2 Methods

  1. 方案概述:通过反向传播更新参数来学习prompts,而不是人工设置prompts,同时冻结模型原始权重,只训练prompts参数,训练完以后,用同一个模型可以做多任务推理,而不用像原始model tuning方法一样,对每个任务都训练一个模型了。

  1. 与prefix-tuning的不同:prefix-tuning是更新transformer所有中间层,prompt-tuning只在输入的embedding端添加,所以叫prompt tuning。

1.3 Conclusion

  1. 可以作为一个有竞争力的方案将大模型适配到下游任务中,在SuperGLUE上也取得不错的结果(T5),比GPT-3的few-shot效果好不少。

  1. 随着模型尺寸增加,prompt tuning和model tuning(全参数微调)gap消失。

  1. prompt tuning(全量微调)比model tuning在zero-shot上的效果好很多。说明其有比较强的跨领域的迁移学习,能提升generalization,同时表明冻结大模型的参数,将更新限制在少量轻量级的参数上可能还有防止过拟合的效果。

1.3 Interpretability

  • prompt design:
    • 很好解释
  • prompt tuning:
    • 不好解释,所以利用学到的embeding,利用cosin相似度找到最相近的一些词,来看最终学到了什么prompt,发现还是和理想的prompt词差别不是特别大
    • 用label的embedding进行初始化,发现tuning后embedding基本不变,而随机初始化或者sample初始化,也发现是在label附近继续找,说明模型可能就是想让label作为prompt。
    • prompt设置比较长后(100),发现有些token会找到相同的邻居,说明太长了可能会超过prompt此处的容量。

二、实验

1 模型参数消融实验

  • 在prompt长度,prompt初始化方法,预训练方法,训练步数上都做了消融实验,模型变大后,超参数影响都不大了
    • prompt长度:超过20效果就不错了
    • 初始化方法:随机初始化效果很差
    • 预训练方法:LM比span corruption要好
    • 训练步数:训练越长效果越好

2 参数的量级对比

  • Model Tuning:更新所有参数
  • pre-fix tuning:更新activations
  • WARP:更新输入输出层
  • Prompt Tuning:prompt embedding更新
  • prompt design:只需要添加prompt提示语

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

系列一、RuoYi前后端分离(登录密码加密)

一、部署前后端服务 http://doc.ruoyi.vip/ruoyi-vue/ 二、现象 若依前后端环境分离版本,本地部署好前后端环境后,访问登录接口密码是明文的,这样显然hi不安全的,如下图所示: 三、解决方法 3.1、加密流程 ①、后端…

Linux-0.11 文件系统namei.c详解

Linux-0.11 文件系统namei.c详解 模块简介 namei.c是整个linux-0.11版本的内核中最长的函数,总长度为700行。其核心是namei函数,即根据文件路径寻找对应的i节点。 除此以外,该模块还包含一些创建目录,删除目录,创建目…

Day2:Windows网络编程-TCP

今天开始进入Windows网络编程的学习,在学习的时候总是陷入Windows复杂的参数,纠结于这些。从老师的讲解中,这些内容属于是定式,主要学习写的逻辑。给自己提个醒,要把精力放在正确的位置,不要无端耗费精力。…

【JavaScript】文件分片上传

文章目录 普通文件上传分片上传整体流程技术点分析文件选择方式隐藏input框,自定义trigger拖拽上传 分片动态分片 计算哈希workerrequestIdleCallback抽样 请求并发控制进度展示手动中止/暂停 合并流式并发合并 反思分片命名问题并发控制代码实现的问题 参考文献 普…

ChatGPT桌面客户端支持gpt4模型,附使用说明

#软件核心功能: 1、支持OpenAI官方秘钥及API2D双秘钥使用;如果全局魔法,可以自己用官方秘钥;没魔法国内可直接使用API2D秘钥; 2、内置GPT4模型选项,如果你的官方秘钥支持可直接使用;你也可以注册…

【Labview如何显示数据库表格中的内容】

Labview如何显示数据库表格中的内容 前提操作思路框图 前提 已经成功将数据库与Labview相连接,若还没有链接可以查看:Labview与SQL Server互联 进行操作 操作 思路 首先创建一个表格控件,通过一个按钮启动程序,通过程序调用数…

SAP MM 根据采购订单反查采购申请

如何通过采购订单号查询到其前端的采购申请号。 首先从采购申请的相关报表着手,比如ME5A, 发现它是可以满足需求的。 例如:如下的采购订单, 该订单是由采购申请10003364转过来的。 如果想通过这个采购订单找到对应的采购申请,在…

Packet Tracer – 配置命名标准 IPv4 ACL

Packet Tracer – 配置命名标准 IPv4 ACL 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 R1 F0/0 192.168.10.1 255.255.255.0 N/A F0/1 192.168.20.1 255.255.255.0 N/A E0/0/0 192.168.100.1 255.255.255.0 N/A E0/0/1 192.168.200.1 255.255.2…

第五十五天学习记录:C语言进阶:动态内存管理Ⅲ

柔性数组 C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员。 柔性数组的特点: 。结构体中的柔性数组成员前面必须至少有一个其他成员。 。sizeof返回的这种结构大小不包括柔性数组的内存。 。包含柔性数组成员的结构…

【C++学习】智能指针

🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! 智能指针 🥮智能指针🍢为什么需要智能指针🍢RAII 🥮au…

chatgpt赋能python:Python自动开机:提高效率的必备工具

Python 自动开机:提高效率的必备工具 随着科技的发展,计算机在我们的日常生活中扮演了越来越重要的角色。为了提高工作效率和使用体验,越来越多的人开始探索利用自动化工具来简化日常操作。 Python 称得上是自动化领域中的一把利器。通过代…

SAP-MM费用类采购通过物料组确定科目

一、WRX的配置,分两类GR/IR科目: 1、做库存管理物料的GR/IR科目,需要配置评估类,此评估类就是物料主数据里配置的评估类; 2、非库存管理费用化物料的GR/IR科目,如固定资产、办公用品、低值易耗品等等&#…

chatgpt赋能python:Python生成C代码:如何用Python快速高效地生成C代码

Python生成C代码:如何用Python快速高效地生成C代码 在现代编程中,有许多原因需要编写C代码。C是一种高性能语言,它允许程序员直接操作计算机的硬件。但是,编写C代码需要花费大量的时间和精力。幸运的是,Python可以帮助…

Spring Boot问题汇总

1.IDEA里yaml文件编辑时没有提示 网上很多教程说在设置里的File Types里把yaml格式加入到关联中 但其实我打开IDEA默认就是这么设置的,所以并没有什么用处。 不过在翻看这篇教程(IDEA创建yml文件不显示小树叶创建失败问题的解决方法-eolink官网&#x…

网络安全学习心得分享~

我的学习心得,我认为能不能自学成功的要素有两点。 第一点就是自身的问题,虽然想要转行学习安全的人很多,但是非常强烈的想要转行学好的人是小部分。而大部分人只是抱着试试的心态来学习安全,这是完全不可能的。 所以能不能学成并…

【Python】字符串操作

知识目录 一、写在前面✨二、字符串逆序三、打印菱形四、总结撒花😊 一、写在前面✨ 大家好!我是初心,很高兴再次跟大家见面。(相遇就是缘分啊) 今天跟大家分享的文章是 Python中的字符串操作 ,希望能帮助…

SAP-物料主数据-质量管理视图字段解析

过账到质检库存:要勾选,否则收货后库存不进入质检库存HU检验:收货到启用HU管理的库位时产生检验批,例如某个成品物料是收货到C002库位,该库位启用了HU管理,那么此处要勾选。但是如果勾选了,却收…

全网最全最有用的网络安全学习路线!整整一晚上才整理出来!

正文: 废话不多说,先上一张图镇楼,看看网络安全有哪些方向,它们之间有什么关系和区别,各自需要学习哪些东西。 在这个圈子技术门类中,工作岗位主要有以下三个方向: 安全研发安全研究&#xff1…

Linux-0.11 文件系统pipe.c详解

Linux-0.11 文件系统pipe.c详解 模块简介 在Linux-0.11中提供了管道这种进程间通讯的方式。本程序包含了管道文件读写操作函数read_pipe()和write_pipe()。 函数详解 read_pipe int read_pipe(struct m_inode * inode, char * buf, int count)该函数是读管道的方法。 函数…

python绘图工具matpoltlib的常用操作

目录 1.matplotlib概述2.风格设置3.条形图4.盒图5.直方图和散点图6.3D图7.pie图和布局8.Pandas与sklearn结合实例 1.matplotlib概述 Matplotlib 是一个用 Python 编程语言编写的、基于 NumPy 的开源数据可视化库。它提供了一套完整的兼容 MATLAB 的 API,支持各种常…