当前位置: 首页 > news >正文

Prompt Learning 的几个重点paper

Prefix Tuning: Prefix-Tuning: Optimizing Continuous Prompts for Generation

在输入token之前构造一段任务相关的virtual tokens作为Prefix,然后训练的时候只更新Prefix部分的参数,PLM中的其他参数固定。针对自回归架构模型:在句子前面添加前缀,针对编码器-解码器架构模型:Encoder和Decoder都增加了前缀,得到 z = [PREFIX; x; PREFIX0; y]。Encoder端增加前缀是为了引导输入部分的编码,Decoder 端增加前缀是为了引导后续token的生成。该方法其实和构造Prompt类似,只是Prompt是人为构造的“显式”的提示,并且无法更新参数,而Prefix则是可以学习的“隐式”的提示。为了防止直接更新Prefix的参数导致训练不稳定和性能下降的情况,在Prefix层前面加了MLP结构,训练完成后,只保留Prefix的参数。通过消融实验证实,只调整embedding层的表现力不够,将导致性能显著下降,因此,在每层都加了prompt的参数。实验还对比了位置对于生成效果的影响,Prefix-tuning也是要略优于Infix-tuning的。其中,Prefix-tuning形式为 [PREFIX; x; y],Infix-tuning形式为 [x; INFIX; y]

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

该方法可以看作是Prefix Tuning的简化版本,它给每个任务定义了自己的Prompt,然后拼接到数据上作为输入,但只在输入层加入prompt tokens,并且不需要加入 MLP 进行调整来解决难训练的问题。Prompt Tuning 还提出了 Prompt Ensembling,也就是在一个批次(Batch)里同时训练同一个任务的不同 prompt(即采用多种不同方式询问同一个问题),这样相当于训练了不同模型,比模型集成的成本小多了。

P-Tuning: GPT Understands, Too

清华;针对Prompt Tuning的改进,该方法将Prompt转换为可以学习的Embedding层,并用MLP+LSTM的方式来对Prompt Embedding进行一层处理。相比Prefix Tuning,P-Tuning加入的可微的virtual token,但仅限于输入层,没有在每一层都加;另外,virtual token的位置也不一定是前缀,插入的位置是可选的。

P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks

清华;针对Prefix Tuning的改进;该方法在每一层都加入了Prompts tokens作为输入,而不是仅仅加在输入层。移除重参数化的编码器(以前的方法利用重参数化功能来提高训练速度和鲁棒性如:Prefix Tuning 中的 MLP 、P-Tuning 中的 LSTM,但这里作者发现重参数化的改进很小,还会影响模型的表现)。针对不同任务采用不同的提示长度。引入多任务学习。回归传统的分类标签范式,而不是映射器(P-Tuning v2回归传统的CLS标签分类范式,采用随机初始化的分类头(Classification Head)应用于tokens之上)。

http://www.lryc.cn/news/292182.html

相关文章:

  • 中科大计网学习记录笔记(三):接入网和物理媒体
  • 设计模式:工厂方法模式
  • HTML 相关知识点记录
  • 系统架构设计师考试大纲2023
  • sqli.labs靶场(第18~22关)
  • 【tensorflow 版本 keras版本】
  • 嵌入式学习第十六天
  • Java过滤器拦截器的区别和实现
  • Android 12 系统开机动画
  • C++:异常体系
  • 民事二审案件庭审应如何准备?
  • WebRTC系列-H264视频帧组包(视频花屏问题)
  • Common Mistakes in German
  • Java基础数据结构之反射
  • 【实战系列----消息队列 数据缓存】rabbitmq 消息队列 搭建和应用
  • 【云原生kubernetes系列】---亲和与反亲和
  • 【极简】Pytorch中的register_buffer()
  • J-Link:STM32使用J-LINK烧录程序,其他MCU也通用
  • 从0到1入门C++编程——06 类和对象之多态、文件操作
  • elementUI实现selecttree自定义下拉框树形组件支持多选和搜索
  • 使用 Spring Boot 构建 Docker 镜像的简易指南
  • 「数据结构」3.ArrayList
  • H.264与H.265的主要差异
  • 【数据结构】 归并排序超详解
  • Debezium系列之:深入理解GTID全局事务标识,并记录一次数据库重启造成数据丢失的原因和解决方案
  • 格式化内存卡后,如何找回丢失的监控视频?
  • 《动手学深度学习(PyTorch版)》笔记4.8
  • 助力水下潜行:浮力调节系统仿真
  • Mysql常用sql语句
  • dubbo rpc序列化