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

项目地址: 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)

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

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

相关文章

重庆有哪些媒体资源?活动展会媒体邀约

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 重庆作为中国的一个直辖市,拥有丰富的媒体资源,涵盖电视台、广播电台、报纸、杂志以及网络媒体等各个领域。这些媒体不仅是传播新闻和信息的重要渠道,…

Elasticsearch:向量相似度计算 - 可笑的速度

作者:Chris Hegarty 任何向量数据库的核心都是距离函数,它确定两个向量的接近程度。 这些距离函数在索引和搜索期间执行多次。 当合并段或在图表中导航最近邻居时,大部分执行时间都花在比较向量的相似性上。 对这些距离函数进行微观优化是值…

昇腾芯片解析:华为自主研发的人工智能处理器全面分析

在当今科技发展的浪潮中,昇腾芯片作为一种新兴的处理器,正引起广泛的关注和讨论。升腾芯片究竟是由哪家公司生产的?这个问题一直困扰着许多人。下面小编将全面介绍、分析升腾芯片的生产商及各类参数、应用,以便读者对其有更全面的…

【神经网络与深度学习】时间卷积网络(TCN)

概述 时间卷积网络(Temporal Convolutional Network,TCN)是一种用于处理时序数据的深度学习模型。它基于卷积神经网络(CNN)的思想,通过卷积操作来提取和学习时序数据中的特征,并在一系列时序预…

MyCAT学习——在openEuler22.03中安装MyCAT2(网盘下载版)

准备工作 因为MyCAT 2基于JDK 1.8开发。也需要在虚拟机中安装JDK(JDK官网就能下载,我这提供一个捷径) jdk-8u401-linux-x64.rpmhttps://pan.baidu.com/s/1ywcDsxYOmfZONpmH9oDjfw?pwdrhel下载对应的tar安装包,以及对应的jar包 安装程序包…

C++:Vector的模拟实现

创作不易,感谢三连 !! 一,前言 在学习string类的时候,我们可能会发现遍历的话下标访问特别香,比迭代器用的舒服,但是下标其实只能是支持连续的空间,他的使用是非常具有局限性的&am…

开发一套小程序所需的费用取决于多个因素

随着移动互联网的发展,小程序已经成为许多企业和个人推广业务和服务的重要工具。 不过,对于很多想要开发小程序的人来说,最大的疑问就是开发一套小程序要花多少钱。 这个问题的答案并不是固定的,因为开发一个小程序的成本取决于几…

Linux 学习笔记(12)

十二、 系统服务 1 、系统服务分类,根据其使用的方法来分,可以被分为三类 a、由 init 控制的服务:基本都是系统级别的服务,运行级别这一章讲的就是这一类的服务 b、由 System V 启动脚本启动的服务:和我们打交道最多…

紧跟潮流,再整一个短剧搜索网站

前面一大批的转存量太大了,有些小伙伴用不上,所以整了个搜索网站,输入关键词搜索即可。 搜短剧 http://wjsyyx.top/sdj/ 界面依旧主打朴实无华,搜索一步到位。 ▼ 网站界面 ▼ 搜索结果 剩下的就都会了。 ▼ 往期推荐 【Python】…

NLP_文本数据分析_3(代码示例)

目标 了解文本数据分析的作用.掌握常用的几种文本数据分析方法. 1 文件数据分析介绍 文本数据分析的作用: 文本数据分析能够有效帮助我们理解数据语料, 快速检查出语料可能存在的问题, 并指导之后模型训练过程中一些超参数的选择. 常用的几种文本数据分析方法: 标签数量分布句…

CMU 10-414/714: Deep Learning Systems --hw0

hw0 宏观上的步骤: softmax loss: 实现softmax loss代码 概念 softmax就是将结果映射到0~1之间,且所有结果相加为1(概率形式)cross-entropy loss就是计算 p ( x ) log ⁡ q ( x ) p(x)\log {q(x)} p(x)logq(x),此值可用于衡量实际输出与期望输出的距离,进而衡量预测模…

【蓝牙协议栈】【BR/EDR】【AVDTP】音视频分布传输协议

1. AVDTP概念 AVDTP即 AUDIO/VIDEO DISTRIBUTION TRANSPORT PROTOCOL(音视频分配传输协议),主要负责 A/V stream的协商、建立及传输程序,还指定了设备之前传输A/V stream的消息格式. AVDTP的传输机制和消息格式是以 RTP为基础的。RTP由 RTP Data Transfer Protocol (RTP)和…

小迪安全31WEB 攻防-通用漏洞文件上传js 验证mimeuser.ini语言特性

#知识点: 1、文件上传-前端验证 2、文件上传-黑白名单 3、文件上传-user.ini 妙用 4、文件上传-PHP 语言特性 #详细点: 检测层面:前端,后端等 2、检测内容:文件头,完整性,二次渲染…

【使用imgaug库调整图像大小并修改对应的XML标签框】

使用imgaug库可以方便地进行图像增强操作,包括调整图像大小。以下是使用imgaug库调整图像大小并修改对应的XML标签框的示例脚本: 注意修改输入文件夹路径、输出文件夹路径和目标尺寸为自己内容。 input_folder "path/to/your/input_folder" …

[LeetBook]【学习日记】数组内乘积

题目 按规则计算统计结果 为了深入了解这些生物群体的生态特征,你们进行了大量的实地观察和数据采集。数组 arrayA 记录了各个生物群体数量数据,其中 arrayA[i] 表示第 i 个生物群体的数量。请返回一个数组 arrayB,该数组为基于数组 arrayA …

PaddleOCR基于PPOCRv4的垂类场景模型微调——手写文字识别

PaddleOCR手写文字识别 一. 项目背景二. 环境配置三. 数据构造四. 模型微调五. 串联推理六. 注意事项七. 参考文献 光学字符识别(Optical Character Recognition, OCR),ORC是指对包含文本资料的图像文件进行分析识别处理,获取文字…

Linux x86_64 平台下系统调用的实现

文章目录 前言一、简介二、Defining a syscall with SYSCALL_DEFINEn()2.1 SYSCALL_METADATA2.2 __SYSCALL_DEFINEx 三、Syscall table entries四、x86_64 syscall invocation参考资料 前言 本文来自 https://lwn.net/Articles/604287/ 一、简介 系统调用(system…

Unity 角色控制(初版)

角色控制器组件,当然是将组件放在角色上了。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class c1 : MonoBehaviour {// 获取角色控制器private CharacterController player;void Start(){// 加载角色控制器player …

【物联网】stm32芯片结构组成,固件库、启动过程、时钟系统、GPIO、NVIC、DMA、UART以及看门狗电路的全面详解

一、stm32的介绍 1、概述 stm32: ST:指意法半导体 M:指定微处理器 32:表示计算机处理器位数 与ARM关系:采用ARM推出cortex-A,R,M三系中的M系列,其架构主要基于ARMv7-M实现 ARM分成三个系列: Cortex-A&…

机器人工具箱学习(二)

一、机械臂及运动学 1.1 机械臂构成 机械臂多采用关节式机械结构,一般具有6个自由度,其中3个用来确定末端执行器的位置,另外3个则用来确定末端执行装置的方向(姿态)。   如图所示,一个机械臂是由一组可做相对运动的关节连接的连…