P-Tunning V2简单理解

P-tuning V2论文和代码实现详解 论文题目:P-Tuning v2: Prompt Tuning Can Be Comparable to Finetuning Universally Across Scales and Tasks网上已经有很多关于论文理论的介绍了,这里只简单提一提。P-tuning V2不是一个新东西,它是Deep Prompt Tuning (;)的一个优化和适应实现。与深度提示调整类似,P-tuning v2被设计用于生成和知识探索,但最重要的改进之一是将连续提示应用于预训练模型的每个层,而不仅仅是输入层。 阅读详情

之前看过P-tunning V2, 知道他的思想,最近突然想到了这件事,仔细看了一下他的代码实现,重新看了一遍,记录一下。
图片源于:https://zhuanlan.zhihu.com/p/423902902
在这里插入图片描述
P-Tunning V2的思路,仅仅通过微调连续的一些虚拟Token进行训练,固定模型的其它参数,从而实现低成本微调。但是P-Tunning V2采用一种模型内部继续微调,上图(b)所示,是一种深层的微调方式,而不是像P-Tunning v1,仅仅微调embeding 层的一些嵌入的虚拟Token,直观上理解,这种是一种比较浅层的方式。而P-tunning V2具体是怎么实现呢?可以参考,以下内容大量参考:P-tuning V2论文和代码实现解析

简单表述一下思路:

就是利用KVCache的方式进行深入微调

  • 确定微调参数数量
self.embedding = torch.nn.Embedding(
                config.pre_seq_len,
                config.num_hidden_layers * 2 * config.hidden_size)

pre_seq_len虚拟token数量
config.num_hidden_layers * 2 * config.hidden_size因为是深层的,和你模型层数是一致的,所以config.num_hidden_layers,2 其实表示深层微调,类似于KV的方式,所以是2,最后是隐藏层维度。

  • 将维度进行拆解,拆成KVCache的方式,利用past_key_values进行传参,从而是实现深度调参的方式,所谓深度调参即不仅仅局限于embedding 层的参数,我理解本质上就是嵌入层的参数,不过,他把虚拟token参与注意力的计算。

简单模拟一下:
原来的Q, K, V维度为:batch seq dim
通过past_key_values,则使K, V维度变为,batch new_seq(pre_seq_len+seq) dim
Q K T QK^T QKT维度为batch seq new_seq
Q K T V QK^TV QKTV batch seq dim
就是以上原理,从而实现深度调参。

Fine-tuning: 深度解析P-tuning v2在大模型上的应用 我们使用不同规模的大模型进行了实验,以验证P-tuning v2在大模型上的性能。P-tuning v2的优化策略主要包括两个方面:一是采用前缀提示策略,将提示信息添加到模型的每一层中,以提高模型的输出准确性;二是采用自适应优化策略,根据模型在训练过程中的表现,动态调整微调参数的权重,以提高模型的收敛速度和性能。P-tuning v2是一种基于预训练模型的微调方法,其基本原理是在预训练模型的基础上,通过添加少量的可训练参数,对模型的输出进行微调。这种方法在保持预训练模型性能的同时,提高了模型的泛化能力。 阅读详情

相关推荐

基础学习:(9)vit -- vision transformer 和其变体调研

transformer 是一条新的思路, 可以在 paper with code 上看到 vit 的火爆程度其中 vit相关变体网络, 在 paper with code 上累计大概2000篇论文,如果一次都看没有意义,因此我这里统计了 前40 人气论文.

mikhailbran的博客 1525

大模型微调之P-tuning方法解析

Bert时代,我们常做预训练模型微调(Fine-tuning),即根据不同下游任务,引入各种辅助任务loss和垂直领域数据,将其添加到预训练模型中,以便让模型更加适配下游任务的方式。每个下游任务都存下整个预训练模型的副本,并且推理必须在单独的批次中执行。那么能不能将所有自然语言处理的任务转换为语言模型任务?就是所有任务都可以被统一建模,任务描述与任务输入视为语言模型的历史上下文,而输出则为语言模型需要预测的未来信息。

qq_41771998的博客 1万+

【LLM】浅析chatglm的sft+p-tuning v2

# note - GLM将针对不同类型下游任务的预训练目标统一为了自回归填空,结合了混合的注意力机制和新的二维位置编码。 - 本文浅析sft,并基于GLM在广告描述数据集上进行sft+p-tuning代码的数据流讲解 自回归空格填充任务: - 初始文本输入:x1, x2,x3,x4,x5,x6 - 随机掩码mask - PartA 部分:x1,x2,M,x4,M ,其中M表示mask的跨度 - PartB 部分: S,x5,x6,S,x3(刚才mask掉的那几坨,随机排

发现问题,并解决问题,批判性思维 2787

提示学习系列:P-tuning v2微调BERT实现文本多分类

P-tuning v2是清华团队在P-tuning基础上提出的一种提示微调大模型方法,它旨在解决提示学习在小尺寸模型上效果不佳,以及无法对NLU下游任务通用的问题,本文对该方法进行简要介绍和实践。P-tuning v2理论方法简介P-tuning v2微调BERT实践P-tuning v2、PET、Fine-Tuning效果对比1.为了增强对下游任务的通用性,使用类似Fine-tuning的[CLS]为作为任务的预测表征。

qkh1234567的博客 1870

人工智能_大模型046_模型微调006_轻量化微调原理_Prompt-Tuning原理_P-Tunning原理_Prefix-Tuning原理_LoRA微调原理_低秩矩阵---人工智能工作笔记0181

但是实际上,我们说,之前transformer中内部结构那里,实际上只是一个头的,当然,gpt-3.5有12个,就是假设有12个矩阵,每个矩阵,前面都需要添加这个可训练的低秩矩阵. 但是当然每个层前面添加的。他俩,组成A B 矩阵,相乘,然后得到一个 跟原来 参数矩阵 一样形状 shape的矩阵,然后,训练以后把,训练以后的矩阵和原来的矩阵一叠加 就出来一个新的模型了.P-Tuning这样的方法,他的做法是,用生成器,生成上诉的伪embeddings,不过这个生成器的参数是可以训练的,其实。

添柴程序猿的专栏 273

python爬虫入门教程(非常详细)

爬虫指的是一种自动化程序,能够模拟人类在互联网上的浏览行为,自动从互联网上抓取、预处理并保存所需要的信息。爬虫运行的过程一般是先制定规则(如指定要抓取的网址、要抓取的信息的类型等),紧接着获取该网址的HTML源代码,根据规则对源代码进行解析和抽取,最后进行处理和保存。爬虫在实际应用中广泛使用,如搜索引擎、大数据分析、交易数据采集等领域,都需要用到爬虫技术来实现信息的定向采集和处理。

工宗浩生财指南针 2万+

Prefix Tuning、P-Tuning V1/V2基本原理总结

对于transformer的每一层 (不只是输入层,且每一层transformer的输入不是从上一层输出,而是随机初始化的embedding作为输入),都在真实的句子表征前面插入若干个连续的可训练的"virtual token" embedding,这些伪token不必是词表中真实的词,而只是若干个可调的自由参数。3.针对不同任务采用不同的提示长度。在实验中,我们发现不同的理解任务通常用不同的提示长度来实现其最佳性能,这与Prefix-Tuning中的发现一致,不同的文本生成任务可能有不同的最佳提示长度。

qq_43605231的博客 3770

手把手教你用支付宝密钥工具生成RSA2密钥对(含Windows/Mac操作截图)

本文详细介绍了如何使用支付宝密钥工具生成RSA2密钥对,包括Windows和Mac平台的操作步骤与截图。从工具下载、安装到密钥生成、配置支付宝平台,再到开发环境集成实战,手把手教你完成支付宝支付接口对接。特别强调密钥安全管理和最佳实践,帮助开发者避免常见安全隐患。

mongodb5scout的博客 257

大模型微调技术(Adapter-Tuning、Prefix-Tuning、Prompt-Tuning(P-Tuning)、P-Tuning v2、LoRA)

(1) Fine-Tuning(标准微调)优点:简单易用:直接在预训练模型上进行微调。适应性强:可以针对特定任务调整整个模型的参数。效果显著:通常能显著提高模型在特定任务上的表现。缺点:计算成本高:需要调整模型的大量参数。数据需求较高:为了有效微调,通常需要较多的标注数据。适用场景:当有足够的标注数据和计算资源时,适用于大多数NLP任务。优点:参数高效:只修改或优化模型的一小部分参数。节省计算资源:比完全微调需要的资源少。

shanguicsdn000的博客 1859

从零到一:基于Blazor和Elsa Workflows的工作流系统开发实战

本文详细介绍了如何利用Blazor和Elsa Workflows构建高效的工作流系统,从技术选型到生产环境部署,涵盖动态工作流建模、Blazor前端集成及性能优化等核心内容。通过实战案例,展示如何实现订单处理系统的自动化与灵活性,提升企业流程效率。

weixin_26875109的博客 428

ContextCapture系列教程(三):大疆精灵4RTK版无人机POS数据提取、处理(处理后勉强达到免相控要求)

大疆精灵 Phantom 4 RTK于2018年发布,是大疆为高精度建图与精准飞行设计的行业级无人机,在精灵4无人机外形的基础上,机身增加了RTK模块,可以实现高精度 RTK 定位导航,相机与 RTK 系统采用微秒级时间同步,可以通过app 进行航线规划飞行

pausau的博客 1万+

人工智能大语言模型微调技术:SFT 监督微调、LoRA 微调方法、P-tuning v2 微调方法、Freeze 监督微调方法

SFT监督微调时监督微调时,学习率通常会设置得很小常见误区:1.监督微调需要大量的训练时间和数据 2.监督微调将复制源模型的所有参数至目标模型 3.监督微调只需要几十条监督数据即可监督微调常见任务:1.用中文预训练BERT模型完成中文实体识别任务 2.训练语言模型GPT3 3.UIE模型在垂直领域的数据集上微调常见误区:在ImageNet上的预训练的模型再来训练目标检测任务 (则不是)目前,主流的SFT监督方法包括:LoRA、P-tuning v2、Freeze。

xhw79的专栏 2356

Hermes Agent 常见报错排查与问题解决

Hermes Agent 常见报错排查指南 摘要 本文全面梳理了 Hermes Agent 使用过程中的10类常见报错,按阶段划分为安装期、运行期认证类、后端基础设施类和长任务执行类四大类,并提供了系统化的排查流程: 安装期问题:包括命令未找到和Python版本不兼容,主要检查PATH环境和Python版本是否符合要求 认证类问题:涉及API Key认证失败和速率限制,需要验证密钥配置和配额状态 基础设施问题:包含Docker报错、MCP连接失败和OAuth令牌过期,需检查相关服务状态 执行类问题:主要是上

简简单单Onlinezuozuo 1343

知识图谱:【知识图谱问答KBQA(七)】——P-tuning V2训练代码核心网络层解析

在P-Tuning V2代码中,包括四类NLP任务: token_classification:对应序列标注任务 sequence_classification:对应文本分类任务 question_answering:对应问答任务 multiple_choice:对应阅读理解任务 class TaskType(Enum): TOKEN_CLASSIFICATION = 1, SEQUENCE_CLASSIFICATION = 2, QUESTION_ANSWERING = 3,

u013010473的博客 1468

system.img解包打包工具

最近需要对system.img进行解包,修改系统属性和添加自己的APK,再打包烧录,整理俩个方法。 system.img解包打包工具方法一 1、把system.img转换成ext4格式 ./simg2img system.img system_ext4.img 2、挂载ext4到systemMount目录进行修改 sudo mount system_ext4.img systemMount/ -o loop 3、修改完成后 unmount 退出挂载使用如下命令

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 9704

【ESP32CAM+Android+OpenCV】自定义目标数据集、训练自己的OpenCV模型部署到手机APP并对ESP32CAM无线图传显示并实时检测识别目标_资料编号30

本项目实现自定义目标数据集(想检测什么就检测什么,按照本文教程自己来更换目标)、训练自己的OpenCV模型实时检测识别(pycharm工程)。手机APP(Android studio工程)部署OpenCV模型实现对ESP32CAM(arduino工程)无线WIFI图传过来的图像实时检测识别。 本文以火焰检测识别为例进行演示,通过该过程,结合本文可自定义尝试更换为其它目标的检测,例如更换为车辆、车牌、手势、人脸面部活动、人脸表情、火焰烟雾、行人、口罩、行为、水果、植物、农作物、建筑、损伤等等部署进行检测。

嵌入式阿齐Archie 3477

解析大模型常用微调方法:P-Tuning、Prefix Tuning、Adapter、LoRA

预训练大模型虽然具有强大的泛化能力和广泛的知识,但它们通常是针对大量通用数据集进行训练的,这使得它们在处理特定任务时可能无法达到最佳效果,比如ChatGPT、混元、文心一言在回答一些常识性问题时表现的非常出色,但在物理、化学或编程等专业性问题上往往变的傻了吧唧。怎样让大模型更好地适用于特定场景?此时我们就需要利用特定任务的数据集来进一步训练模型,通过模型精调让全能型大模型变的专而精。这种针对性的精调训练能够使模型更加专注于目标任务的特征,从而提高其在特定任务上的准确性和效率。

qq_46094651的博客 820

VisionMaster脚本调试(VS)

使用VS调试VisionMaster 脚本

yu_fujiang的专栏 3292

【大模型实战笔记 1】Prompt-Tuning方法

主要介绍模型Prompt-Tuning的各个方法。

Wilber的blog。心若有所向往,又何惧道阻且长。 1289

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

大模型Tuning分类

语言模型的参数需要一起参与梯度更新。

lqm1094583745的博客 890

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

相机调效果 说的IQ tuning 是什么意思

tuning 英['tju:nɪŋ] 美['tju:nɪŋ] n. 调谐,调整,调音; v. 调整; 调音( tune的现在分词 ); (给收音机、电视等) 调谐; 使协调; 可以把tuning理解为 优化,调优。 相机中调IQ可以理解为Image Qualit...

weixin_30559481的博客 1791

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

NLU-预训练模型-2018:Bert(一)【“Masked LM”缺点:①预训练与微调不一致;②忽略了掩码位置间的依赖关系】【复杂度:O(n^2·d);n:输入序列长度(规定最长512)】

BERT是2018年10月由Google AI研究院提出的一种预训练模型. - BERT的全称是:**B**idirectional **E**ncoder **R**epresentations from **T**ransformers; - BERT在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩: 全部两个衡量指标上全面超越人类, 并且在11种不同NLP测试中创出SOTA表现. 包括将GLUE基准推高至80.4% (绝对改进7.6%), MultiNLI准确度达到86.7% (绝对改进5

u013250861的博客 2324

TDengine 安装前预配置工具 taospreset 实战指南:一键完成集群环境初始化

`taospreset` 是 TDengine Enterprise 运维工具集(Inspection Tools)中的安装前预配置工具,负责在安装 TDengine 之前,对单台主机或集群全部节点完成系统时区、防火墙、SELinux、内核与用户资源限制、coredump、主机名及域名解析等环境预配置。阅读本文后,你将掌握 taospreset 的命令行参数、配置文件编写方法、预配置范围以及它与

gitblog_00610的博客 698

基于prefix tuning + Bert的标题党分类器

传统的fine-tuning是在大规模预训练语言模型(如Bert、GPT2等)上完成的, 针对不同的下游任务, 需要保存不同的模型参数, 代价比较高,解决这个问题的一种自然方法是轻量微调(lightweight fine-tunning),它冻结了大部分预训练参数,并用小的可训练模块来增强模型,比如在预先训练的语言模型层之间插入额外的特定任务层。适配器微调(Adapter-tunning)在自然语言理解和生成基准测试上具有很好的性能,通过微调,仅添加约2-4%的任务特定参数,就可以获得类似的性能。

qq_44193969的博客 2455

05阶段:NLP自然语言处理基础(2)

本文系统讲解了NLP中的迁移学习,重点介绍了fastText工具的使用及其模型原理。主要内容包括: fastText工具概述:fastText是Facebook开发的NLP工具包,具有文本分类和词向量训练两大功能,优势在于速度快、精度高。其安装简单,通过pip即可完成。 fastText模型架构:基于类似CBOW的三层结构,使用层次softmax和负采样提升效率。层次softmax通过哈夫曼树实现多类别高效分类;负采样通过随机选择部分负样本来降低计算量。 应用实践:详细演示了使用fastText进行文本分类

专注前端开发领域,深耕 Python AI Agent应用开发,热爱探索 Web 与人工智能的前沿技术。 501

Prompt-Tuning基础

整个发展历程是朝着精度更高、少监督,甚至无监督的方向发展的。

weixin_43940118的博客 397
上一篇: Gemma中RoPE代码详细讲解
下一篇: Mixtral MOE代码理解
Re:fused
博客等级 码龄9年 474粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值