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

P-Tuning v2:一种普遍有效的提示调整方法

 人工智能咨询培训老师叶梓 转载标明出处

预训练语言模型通过微调(fine-tuning)来适应特定任务虽然效果显著,但存在训练成本高、参数存储量大等问题。为了解决这些问题,清华大学的研究者们提出了一种名为P-Tuning v2的提示调整(prompt tuning)方法,该方法在不同规模的模型和多种自然语言理解(NLU)任务中表现出与微调相媲美的性能,同时大幅减少了训练时的存储和内存使用。

图1显示在SuperGLUE开发集上,不同规模的预训练模型(从330M到10B参数)在RTE、BoolQ和CB任务上的平均得分。P-Tuning v2的关键特点包括:

  • 多层面的提示调整:与传统的仅在输入层进行提示调整的方法不同,P-Tuning v2在模型的每一层都添加了提示,使得模型能够更直接地响应任务特定的需求。
  • 参数效率:P-Tuning v2只需要调整极小比例的参数(0.1%-3%),大大降低了训练时的内存成本和任务存储成本。
  • 通用性和简单性:P-Tuning v2在不同规模的模型和多种NLU任务上都表现出色,证明了其通用性和作为未来研究强基线(strong baseline)的潜力。

论文链接:https://arxiv.org/pdf/2110.07602

方法

图 2 展示了P-Tuning v2与其他提示调整方法的区别。图中橙色块表示可训练的提示嵌入(trainable prompt embeddings),而蓝色块表示由冻结的预训练语言模型存储或计算的嵌入。这种设计使得P-Tuning v2在不同规模和任务上都能达到与微调相媲美的性能。

(a):这一部分展示了Lester et al. (2021) 和 P-tuning 方法的结构,主要用于处理简单任务,且模型规模为10亿参数级别。在这种方法中,可训练的提示嵌入被添加到输入序列中,而预训练模型的参数则被冻结。尽管Lester et al. (2021) 和 Liu et al. (2021) 在许多自然语言处理(NLP)应用中表现出色,但在模型规模和任务上的普遍性不足,限制了它们替代微调的能力。特别是对于中等规模的模型(参数量从100M到1B),提示调整的性能远不如微调。

(b):这一部分展示了P-tuning v2 方法的结构,它适用于大多数模型规模和任务。P-Tuning v2采用了深度提示调整策略。与之前的方法相比,P-Tuning v2在模型的多个层次上引入了可训练的连续提示,而不仅仅是输入层。这种策略不仅增加了可训练参数的数量,提高了任务特定性能,而且通过在更深层次添加提示,直接增强了模型预测的能力。

如图2所示P-Tuning v2的结构中,提示被添加到不同的Transformer层作为前缀标记。一方面,P-Tuning v2具有更多的可训练任务特定参数(从0.01%到0.1%-3%),这允许更多的任务特定容量,同时保持参数效率;另一方面,添加到更深层次的提示对模型预测有更直接的影响。

为了实现最佳性能,P-Tuning v2在优化和实现方面进行了细致的调整。例如:

重参数化:研究发现其对不同任务和数据集的效果不一。在某些数据集(如RTE和CoNLL04)上,使用MLP(多层感知机)作为重参数化编码器可以带来一致的性能提升;而在其他数据集(如BoolQ和CoNLL12)上,MLP的效果则不明显。

提示长度: 提示长度在P-Tuning v2中起着至关重要的作用。研究者们发现,不同的NLU任务通常需要不同长度的提示来达到最佳性能。简单分类任务倾向于较短的提示,而复杂序列标注任务则需要更长的提示。

多任务学习: P-Tuning v2支持多任务学习,这可以在微调各个任务之前,通过共享连续提示共同优化多个任务,从而提供更好的初始化,进一步提升性能。

表 1 展示了P-Tuning v2与现有提示调整方法的概念比较。表中列出了不同方法在任务、重参数化、深度提示调整和多任务学习等方面的支持情况。P-Tuning v2在这些方面都表现出了较高的灵活性和适应性。

通过这些优化和实现细节,P-Tuning v2不仅在技术上实现了显著的改进,而且在实际应用中也展现出了广泛的适用性和高效性。研究者们的这些发现为未来NLU任务的研究和应用提供了新的视角和工具。

想要掌握如何将大模型的力量发挥到极致吗?2024年10月26日叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。

留言“参加”即可来叶老师的直播间互动,1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

实验

表 2 展示了 P-Tuning v2 在不同模型规模上的表现。研究者们使用了从 335M 到 10B 不同规模的模型进行实验,包括 BERT-large、RoBERTa-large、GLMxlarge/xxlarge。

在 SuperGLUE 基准测试中,P-Tuning v2 在小于 10B 规模的模型上超越了 Lester et al. (2021) 和 P-tuning,与微调(fine-tuning)的性能相匹配。特别是在 RTE 任务上,P-Tuning v2 显著优于微调。

对于更大的模型规模(2B 到 10B),P-Tuning v2 与微调之间的性能差距逐渐缩小。在 10B 规模上,P-Tuning v2 显示出与微调相当的性能,但仅需要 0.1% 的任务特定参数。

表 3 展示了 P-Tuning v2 在命名实体识别(NER)、抽取式问答(Extractive QA)和语义角色标注(SRL)等任务上的表现。

P-Tuning v2 在所有任务上通常与微调相当。特别是在 QA 任务上,P-Tuning 和 Lester et al. (2021) 显示出较差的性能,这可能是因为 QA 任务的复杂性。多任务学习为 P-Tuning v2 在大多数任务上带来了显著的性能提升,除了 QA 任务。

表 4 比较了在 RoBERTa-large 模型上使用 [CLS] 标签与线性头和使用 verbalizer 与语言模型头的效果。研究者们发现,使用 [CLS] 标签与线性头与使用 verbalizer 与语言模型头在性能上没有显著差异。

图 3 展示了在 BERT-large 模型上进行的关于提示深度的消融研究。研究者们探讨了在不同 Transformer 层添加连续提示的影响。结果显示,将相同数量的提示添加到更接近输出层的深层(例如,17-24 层)比添加到较浅层能带来更好的性能。

通过这些实验,研究者们证明了 P-Tuning v2 在不同规模的模型和多种 NLU 任务上的普遍有效性。P-Tuning v2 通过深度提示调整,不仅提高了模型的性能,还显著减少了所需的任务特定参数数量,使其成为一种高效的参数调整方法。这些发现为未来 NLU 任务的研究和应用提供了新的视角和工具。

相关文章:

P-Tuning v2:一种普遍有效的提示调整方法

人工智能咨询培训老师叶梓 转载标明出处 预训练语言模型通过微调(fine-tuning)来适应特定任务虽然效果显著,但存在训练成本高、参数存储量大等问题。为了解决这些问题,清华大学的研究者们提出了一种名为P-Tuning v2的提示调整&am…...

微信小程序启动不起来,报错凡是以~/包名/*.js路径的文件,都找不到,试过网上一切方法,最终居然这么解决的,【避坑】命运的齿轮开始转动

app.json "resolveAlias": {"~/*": "/*"},文件代码也没有问题,网上的方法试过来了,大模型AI也问过遍,熬夜到凌晨2点半,最不可思议的是居然是因为微信开发者工具版本的问题,我真的是笑死…...

C#串口温度读取

背景:每天学点,坚持 要安装好虚拟串口和modbus poll,方便调试(相关资源在文末,也可以私信找我要) 传感器部分使用的是达林科技的DL11B-MC-D1,当时42软妹币买的(官网上面有这个传感…...

2.5 Spring Boot整合Spring MVC框架

今天,我将向大家介绍如何在Spring Boot中整合Spring MVC框架,并展示如何创建和测试控制层(Controller)。 首先,让我们简要回顾一下Spring MVC。Spring MVC是一个基于Servlet的MVC框架,它简单、侵入性小&am…...

Java 归并排序

归并排序(Merge Sort)是一种基于分治法的排序算法。它将一个大数组分成两个较小的子数组,分别对每个子数组进行排序,然后再将这两个已排序的子数组合并成一个完整的已排序数组。归并排序的时间复杂度为 O(n log n),其中…...

20241008深度学习动手篇

文章目录 1.如何写一个神经网络进行训练?1.1创建一个子类,搭建你需要的神经网络结构1.2 加载数据集1.3 自定义一些指标评估函数1.4训练1.5 结果展示 2.参考文献 1.如何写一个神经网络进行训练? 1.1创建一个子类,搭建你需要的神经网络结构 # File: 241008LeNet.py # Author:…...

对序列化反序列化在项目中的使用优化

文章目录 序列化是什么?常见的序列化协议使用序列化反序列化序列化List反序列化List 查看源码,分析不足进行改善 序列化是什么? 如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中,或者在网络传输 Java 对象&#xff0c…...

查看 git log的过程中看到 :说明日志输出可能超出屏幕大小,系统进入了分页模式

在命令行提示符中,通常 : 表示系统等待进一步的输入。如果你在查看 git log 的过程中看到 :,说明日志输出可能超出屏幕大小,系统进入了分页模式,默认使用 less 命令查看内容。 此时你可以: 按 q 退出日志查看。按 En…...

Linux--信号量详解

目录 一、信号量 1、信号量相关函数 2、多线程环形队列生产消费模型 3、实现代码 信号量是将整体的资源分割成多份使用 信号量本质是对资源的预定机制 一、信号量 1、信号量相关函数 创建信号量: sem_init: int sem_init(sem_t *sem, int pshared, unsigned int value); …...

【重学 MySQL】五十一、更新和删除数据

【重学 MySQL】五十一、更新和删除数据 更新数据删除数据注意事项 在MySQL中,更新和删除数据是数据库管理的基本操作。 更新数据 为了更新(修改)表中的数据,可使用UPDATE语句。UPDATE语句的基本语法如下: UPDATE ta…...

Web3与人工智能的交叉应用探索

随着数字技术的发展,Web3与人工智能(AI)之间的结合正逐渐成为一个重要的研究领域。Web3技术旨在实现更加去中心化和透明的互联网,而人工智能则在数据分析、自动化决策和增强人类能力方面展示了巨大的潜力。 1. 去中心化数据管理与…...

【springboot9736】基于springboot+vue的逍遥大药房管理系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 项目描述 伴随着全球信息化发展,行行业业都与计算机技…...

四.网络层(上)

目录 4.1网络层功能概述 4.2 SDN基本概念 4.3 路由算法与路由协议 4.3.1什么是路由协议? 4.3.2什么是路由算法? 4.3.3路由算法分类 (1)静态路由算法 (2)动态路由算法 ①全局性 OSPF协议与链路状态算法 ②分散性 RIP协议与距离向量算法 4.3.…...

Leecode热题100-56.合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: 输入:intervals [[1,3…...

安全帽未佩戴预警系统 劳保防护用品穿戴监测系统 YOLO

在建筑、矿山、电力等高危行业中,工人面临着各种潜在的危险,如高空坠物、物体打击等。安全帽能够有效地分散和吸收冲击力,大大降低头部受伤的严重程度。一旦工人未正确佩戴安全帽,在遭遇危险时,头部将直接暴露在危险之…...

【python机器学习】线性回归 拟合 欠拟合与过拟合 以及波士顿房价预估案例

文章目录 线性回归之波士顿房价预测案例 欠拟合与过拟合线性回归API 介绍:波士顿房价预测数据属性:机器学习代码实现 拟合 过拟合 欠拟合 模拟 及处理方法(正则化处理)导包定义函数表示欠拟合定义函数表示拟合定义函数表示过拟合 正则化处理过拟合L1正则化L2正则化 线性回归之波…...

IT招聘乱象的全面分析

近年来,IT行业的招聘要求似乎越来越苛刻,甚至有些不切实际。许多企业在招聘时,不仅要求前端工程师具备UI设计能力,还希望后端工程师精通K8S服务器运维,更有甚至希望研发经理掌握所有前后端框架和最新开发技术。这种招聘…...

一入递归深似海,算法之美无止境

最近在刷leetcode hot100,在写二叉树中最大路径和的时候,看到了一个佬对递归的理解,深受启发,感觉自己对于递归的题又行了!!! 这里给大家分享一下(建立大家先去尝试一下这道题再来看 124. 二叉树中的最大路径和 二叉树中的 路径 被定义为一条节点序列,序列中每…...

进程的状态的理解(概念+Linux)

文章目录 进程的状态并行和并发物理和逻辑 时间片进程具有独立性等待的本质运行阻塞标记挂起等待 Linux下的进程状态(一)运行状态(R - running)(二)睡眠状态(S - sleeping)&#xff…...

Apache Linkis + OceanBase:如何提升数据分析效率

计算中间件 Apache Linkis 构建了一个计算中间件层,以实现上层应用程序和底层数据引擎之间的连接、治理和编排。目前,已经支持通过数据源的功能,实现用户通过Linkis 对接并使用 OceanBase数据库。 本文详细阐述了在 Apache Linkis v1.3.2中&a…...

【位运算】消失的两个数字(hard)

消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

MMaDA: Multimodal Large Diffusion Language Models

CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

二维FDTD算法仿真

二维FDTD算法仿真&#xff0c;并带完全匹配层&#xff0c;输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...