自然语言处理: 第十三章P-tuing系列之P-tuning V1

news2024/11/17 11:46:11

项目地址: P-Tuning

论文地址: [2103.10385] GPT Understands, Too (arxiv.org)


理论基础

正如果上一节介绍LoRA(自然语言处理: 第十二章LoRA解读_lora自然英语处理-CSDN博客)一样,本次介绍的在21年由清华团推提出来的 P-Tuning V1系列也属于PEFT(参数高效微调系列)里的一种,其核心思想就是利用在下游任务中前置添加若干个可更新参数的虚拟[tokens] 所构成的模板prompt 再输入到文本中(不同于BERT添加额外的编码器层或者任务头),从而能达到在模型达到一定量规模以上时,效果就可以媲美全量微调。如同下面的例子,对于一个文本(情感)分类的任务,你输入一个 I love this movie ,LM(language model)通过prompt(模板:就是由 [token] 构成的前缀/后缀,注意下面的例子的模板是自然语言的,但是在p-tuing里这些token是否真的需要有意义? 通过这些模版我们使得下游任务跟预训练任务一致,这样才能更加充分地利用原始预训练模型,起到更好的零样本、小样本学习效果)的加入就会输出[pos] / [neg] 从而自动的完成这个文本分类任务或者其他NLP任务。

在这里插入图片描述


但是这种人为的去构prompt造模板有一系列问题,比如,在GPT-3采用人工构造的模版来做上下文学习(in context learning),最后LM性能对模板的变化特别敏感,加一个词或者少一个词,或者变动位置都会造成比较大的变化。下图就列举出了LAMA 模型在不同的prompt模板下的性能差异。同时,近来的自动化搜索模版工作成本也比较高,以前这种离散化的token的搜索出来的结果可能并不是最优的,导致性能不稳定。针对于模板的设计问题,我们并不关心模版长什么样, 我们只需要知道模版由哪些token组成,该插入到哪里,插入后能不能完成我们的下游任务,输出的候选空间是什么 。模版是不是自然语言组成的,对我们根本没影响,“自然语言”的要求,只是为了更好地实现“一致性”,但不是必须的。

在这里插入图片描述


于是,P-tuning考虑了如下形式的模版:作者提出了P-Tuning,设计了一种连续可微位置可变的virtual token(同Prefix-Tuning类似),通过输入n个虚拟的 token 拼接原始的input后,模型就学会了下游任务跟预训练任务一致。

在这里插入图片描述



那么P-Tuning是如何将这些不具备语义信息的virtual token作为prompt 结合input 输入给模型的呢? 经过预训练的LM的词嵌入已经变得高度离散,如果随机初始化virtual token,容易优化到局部最优值,而这些virtual token理论是应该有相关关联的。作者通过实验将Prompt表征为为可以学习的prompt-encorder层,即用两层MLP(relu)+双向LSTM的方式来对Prompt Embedding进行一层处理。

在这里插入图片描述


相比Prefix Tuning,P-Tuning加入的可微的virtual token,但仅限于输入层,没有在每一层都加(这点在v2中有了改进);另外,virtual token的位置也不一定是前缀,插入的位置是可选的。这里的出发点实际是把传统人工设计模版中的真实token替换成可微的virtual token。在下图中可以看到prompt-encoder生成的虚拟token 会选择性的插入到原始input的不同位置中去,从而更好的接近真实的有语义的token

在这里插入图片描述

实际效果

下图原作者在SuperGLUE上的实验结果,那么: 1)GPT、BERT的效果相比直接finetune都有所提升;2)GPT的效果还能超过了BERT 。这表明GPT不仅有NLG的能力,也有NLU能力,可谓是把GPT的潜能充分“压榨”出来了,当然BERT配合P-tuning也有提升,说明P-tuning对语言模型潜能的释放是较为通用的。相比于全量微调的fine-tuning , P-tuning可以选择只优化几个Token的参数(即prompt-encoder 的参数),因为优化所需要的显存和算力都会大大减少,所以P-tuning实则上给了我们一种在有限算力下调用大型预训练模型的思路。

在这里插入图片描述



关于How P-tuing works? 事实上,提出这个问题的读者,应该是对BERT加个全连接层的直接finetune做法“习以为常”了。很明显,不管是PET还是P-tuning,它们其实都更接近预训练任务,而加个全连接层的做法,其实还没那么接近预训练任务,所以某种程度上来说,P-tuning有效更加“显然”,反而是加个全连接层微调为什么会有效才是值得疑问的。

去年有篇论文 《A Mathematical Exploration of Why Language Models Help Solve Downstream Tasks》 试图回答这个问题,大致的论证顺序是:

1.预训练模型是某种语言模型任务;

2.下游任务可以表示为该种语言模型的某个特殊情形;

3.当输出空间有限的时候,它又近似于加一个全连接层;

4.所以加一个全连接层微调是有效的。

可以看到,该论文的假设主要是第2点,其实就是直接假设了下游任务可以表达为类似PET的形式,然后才去证明的。所以这进一步说明了,PET、P-tuning等才是更自然的使用预训练模型的方式,加全连接直接finetune的做法其实只是它们的推论罢了,也就是说,PET、P-tuning才是返璞归真、回归本质的方案,所以它们更有效。

参考文献资料

【自娱自乐读paper】p-tuning v2论文精读_哔哩哔哩_bilibili

P-tuning:自动构建模版,释放语言模型潜能 - 知乎 (zhihu.com)

大模型参数高效微调技术原理综述(三)-P-Tuning、P-Tuning v2 - 知乎 (zhihu.com)

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

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

相关文章

人类与智能体

1、人类与智能体 人类与智能体之间的关系在当今科技发展中变得日益紧密。智能体,作为人工智能领域的一个核心概念,通常指的是一种能够感知环境、做出决策并采取行动以实现特定目标的实体,它可以是软件系统、机器人或其他类型的自动化装置。 …

Java代码审计安全篇-目录穿越漏洞

前言: 堕落了三个月,现在因为被找实习而困扰,着实自己能力不足,从今天开始 每天沉淀一点点 ,准备秋招 加油 注意: 本文章参考qax的网络安全java代码审计,记录自己的学习过程,还希望各…

离散数学——(3)联结词及对应的真值指派,最小全功能联结词集,对偶式,范式,范式存在定理,小项

目录 1.联结词及对应的真值指派 2.最小全功能联结词集 3.对偶式 4.范式 1.析取范式 5.范式存在定理 6.小项 1.联结词及对应的真值指派 2.最小全功能联结词集 3.对偶式 4.范式 1.析取范式 5.范式存在定理 6.小项

大宗商品现货系统开发撮合交收制度说明

大宗商品现货系统的撮合交收制度是其交易机制的核心部分,确保了交易的顺利进行和市场的公平、公正。以下是该制度的主要说明: 撮合原则: 大宗商品现货系统通常采用价格优先、时间优先的撮合原则。价格优先意味着报价最高的买方和报价最低的…

气相白炭黑外资垄断格局被打破 国内本土企业数量增加

气相白炭黑外资垄断格局被打破 国内本土企业数量增加 气相白炭黑又名气相二氧化硅,是一种无毒、无味、无嗅,无污染的非金属氧化物,主要由硅的卤化物在氢氧火焰中高温水解生成的带有表面羟基和吸附水的无定形的纳米级颗粒。气相白炭黑主要用于…

【C语言基础】:深入理解指针(三)

文章目录 深入理解指针一、冒泡排序二、二级指针三、指针数组3.1 指针数组模拟二维数组 四、字符指针变量五、数组指针变量5.1 数组指针变量是什么?5.2 数组指针变量的初始化 六、二维数组传参的本质 深入理解指针 指针系列回顾: 【C语言基础】&#xf…

[uni-app ] createAnimation锚点旋转 及 二次失效问题处理

记录一下: 锚点定位到左下角, 旋转动画 必须沿Z轴,转动 但是,此时会出现 后续动画在微信小程序失效问题 解决: 清空 this.animationData

关于 OpenAI Sora的一些探索和思考

关于 OpenAI Sora的一些探索和思考 探索 OpenAI 的 Sora:一种突破性的文本到视频 AI,将在 2024 年彻底改变多模态 AI。探索其功能、创新和潜在影响。 OpenAI 最近宣布了其最新的突破性技术——Sora。到目前为止,这种文本到视频的生成式 AI …

基于ACM32 MCU的电动滑板车方案了,助力低碳出行

随着智能科技的快速发展,电动滑板车的驱动系统也得到了长足的发展。国内外的电动滑板车用电机驱动系统分为传统刷式电机和无刷电机两种类型。其中,传统的刷式电机已经逐渐被无刷电机所取代,无刷电机的性能和寿命都更出色,已成为电…

JavaWeb实验 JSP 基本语法(续

实验目的 掌握JSP基本语法;掌握JSP常见用法。 实验内容 【1】创建index.jsp、first.jsp和second.jsp三个jsp文件,页面的内容分别显示“This is my JSP page of index.jsp.”、“This is my JSP page of first.jsp.”和“This is my JSP page of secon…

SpringMVC | SpringMVC的“入门“

目录: Spring MVC入门 :Spring MVC 概述第一个Spring MVC应用SpringMVC 的 “工作流程” Spring MVC入门 : 作者简介 :一只大皮卡丘,计算机专业学生,正在努力学习、努力敲代码中! 让我们一起继续努力学习! 该文章参考学习教材为&a…

docker 部署prometheus+grafana

首先进行部署docker 配置阿里云依赖: curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 配置centos 7的镜像源 yum install -y yum-utils device-mapper-persistent-data lvm2 # 安装一些后期或需要的的一下依…

MVO-CNN-BiLSTM多输入分类预测|多元宇宙优化算法-卷积-双向长短期神经网络分类预测(Matlab)

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&am…

Android14音频进阶:AudioTrack如何拿到AudioFlinger创建的匿名共享内存(六十)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

微软免费AI基础中文课程;马斯克提出撤诉OpenAI条件:“改名ClosedAI”

🦉 AI新闻 🚀 马斯克提出撤诉OpenAI条件:“改名ClosedAI” 摘要:埃隆・马斯克针对OpenAI及其CEO萨姆・阿尔特曼提起诉讼,主因双方在人工智能开发的合作协议上出现分歧。马斯克称,OpenAI的转型为营利组织与…

C语言-----qsort函数的功能以及模拟实现

1.冒泡排序 (1)冒泡排序就是数据两个两个的进行比较每一趟都是一个数和其他的所有的数字比较, (2)这个要的是升序排列,所以前面的大的话,就会调换位置 (3)冒泡排序的缺…

Git 开源的版本控制系统-04-branch manage 分支管理

拓展阅读 Subversion 开源的版本控制系统入门介绍 VCS Git 开源的版本控制系统-01-入门使用介绍 Git 开源的版本控制系统-02-base usage 基本用法 Git 开源的版本控制系统-03-时间数据回溯 Git 开源的版本控制系统-04-branch manage 分支管理 Git 开源的版本控制系统-05-…

蓝桥-求和

目录 法一&#xff1a;暴力 法二&#xff1a;利用前缀和 法一&#xff1a;暴力 通过率60% #include <bits/stdc.h> using namespace std; long long a[200010]; long long s;int main() {int n;cin>>n;for(int i0;i<n;i){cin>>a[i];}for(int i0;i<…

MS9708/MS9710/MS9714

产品简述 MS9708/MS9710/MS9714 是一个 8-Bit/10-Bit/14-Bit 高速、低功耗 D/A 转换器。当采样速率达到 125MSPS 时&#xff0c; MS9708/MS9710/MS9714 也能提供优越的 AC 和 DC 性能。 MS9708/MS9710/MS9714 的正常工作电压范围为 2.7V 到 5.5V &#xff0c;…

GPT-SoVITS项目的API改良与使用

GPT-SoVITS是一个非常棒的少样本中文声音克隆项目&#xff0c;之前有一篇文章详细介绍过如何部署和训练自己的模型&#xff0c;并使用该模型在web界面中合成声音&#xff0c;可惜它自带的 api 在调用方面支持比较差&#xff0c;比如不能中英混合、无法按标点切分句子等&#xf…