DePT: Decoupled Prompt Tuning 论文阅读

news2024/11/15 20:59:09

DePT: Decoupled Prompt Tuning 了论文阅读

  • Abstract
  • 1. Introduction
  • 2. Methodology
    • 2.1. Preliminaries
    • 2.2. A Closer Look at the BNT Problem
    • 2.3. Decoupled Prompt Tuning
  • 3. Experiments
  • 5. Conclusions

文章信息:
在这里插入图片描述

原文链接:https://arxiv.org/abs/2309.07439
源码:https://github.com/Koorye/DePT

Abstract

这项工作突破了提示调整中的基础-新任务权衡(BNT)困境,即调整后的模型对基础(或目标)任务的泛化效果越好,对新任务的泛化效果就越差,反之亦然。具体来说,通过对基础任务和新任务学到的特征进行深入分析,我们观察到BNT源于通道偏置问题 - 绝大多数特征通道被基础特定知识所占据,导致了对新任务重要的任务共享知识的崩溃。为了解决这个问题,我们提出了Decoupled Prompt Tuning (DePT) 框架,它在提示调整过程中将基础特定知识与特征通道分离到一个孤立的特征空间中,以便在原始特征空间中最大程度地保留任务共享知识,从而实现对新任务的更好的零样本泛化。重要的是,我们的DePT与现有的提示调整方法正交,可以在几乎没有额外计算成本的情况下增强它们。在多个数据集上的大量实验显示了DePT的灵活性和有效性。代码可在https://github.com/Koorye/DePT 找到。

1. Introduction

近年来,大型视觉语言预训练模型(VLPMs)取得了显著的进展。其中一个引人注目的成功是由对比语言-图像预训练(CLIP)[38]模型取得的,该模型将学习目标规定为对比损失,以在一个共同的特征空间中建立图像和它们的文本描述之间的对齐。尽管能够捕捉开放式视觉概念,但在上游训练数据和下游任务之间存在严重的类别转移、分布转移或域转移时,VLPMs的零样本泛化性能会大大降低。

受NLP中提示工程成功的启发,提示调整(或称为上下文优化[58])已经成为一种参数高效的学习范式,将强大的VLPMs适应于下游任务,通过优化一个任务特定的提示(即一组可训练向量),利用来自基础(目标)任务的少量训练数据,同时保持VLPMs的权重冻结。尽管这种方法的优势显著,但现有的提示调整方法通常无法摆脱基础-新任务权衡(BNT)困境,即调整/适应模型对基础任务的泛化能力越好,对新任务(具有未见类别)的泛化能力就越差,反之亦然。近年来,已经投入大量的努力[49, 57, 59]来减轻提示调整过程中调整模型在新任务上性能下降的问题,通过开发抗过拟合策略。然而,BNT问题仍然远未解决,其潜在机制也尚未得到充分理解。

在这项工作中,我们提出了Decoupled Prompt Tuning(DePT)框架,首次从特征解耦的角度解决了提示调整中的BNT问题,弥合了这一差距。具体来说,通过对标准的图像文本匹配(ITM)头学习的基础和新任务的特征通道进行深入分析,我们发现BNT源于通道偏置问题:绝大多数特征通道被基础特定知识(即基础任务的任务特定知识)所占据,导致了对新任务重要的任务共享知识的崩溃(第2.2节)。受此启发,解决BNT问题的直接策略是在提示调整过程中解耦特征通道中的基础特定知识和任务共享知识。为了实现这一点,我们引入了一个Channel Adjusted Transfer(CAT)头,以鼓励在一个孤立的特征空间中从特征通道中挖掘基础特定知识,从而促进在原始特征空间中保留任务共享知识,并提高在新任务上的零样本泛化性能(第2.3节)。此外,在推理过程中简单地融合两个特征空间中的基础特定知识和任务共享知识,我们显著提高了基础任务的性能(第3.2节)。

Flexibility and Effectiveness.

在这里插入图片描述
图1. 六种提示调整方法在基础(或已见)和新(或未见)任务上,经过11个数据集的平均分类准确率,使用或不使用我们的DePT框架。

我们的DePT框架与现有的提示调整方法正交,因此可以灵活地用于克服它们的BNT问题。我们使用广泛的基线方法对DePT进行评估,包括视觉提示调整方法VPT [21],文本提示调整方法CoOp [58],CoCoOp [57]和KgCoOp [49],以及多模型提示调整方法MaPLe [25],PromptSRC [26]。在11个不同的数据集上的实验结果表明,DePT始终提高了这些方法的性能,无论基础任务和新任务之间是否存在类别转移、分布转移或域转移,都表明了DePT的强大灵活性和有效性(第3.3节)。值得注意的是,DePT在不牺牲基础任务和新任务性能的情况下增强了这六个基线方法 - 在这11个数据集上,DePT在基础任务(新任务)上平均取得了1.31%∼3.17%(分别为0.71%∼2.23%)的绝对收益(图1)。

Contributions.我们的主要贡献有三个方面。

1)我们对提示调整中的BNT问题进行了深入分析,首次揭示了BNT源于通道偏置问题,这为我们提供了深刻的见解。

2)我们提出了DePT框架,从特征解耦的角度解决了BNT问题,并且DePT与现有的提示调整方法正交。

3)我们在11个不同的数据集上进行了实验,并展示了DePT始终提升了广泛基线方法的性能。

2. Methodology

在本节中,我们首先对提示调整中的BNT问题进行了深入的审视,随后详细阐述了我们提出的DePT框架。

在这里插入图片描述

图2. 我们的DePT框架示意图(以CoOp [58]风格呈现)。与之前的方法(右侧)在基础任务的训练/推断和新任务的零样本泛化中使用相同的图像文本匹配(ITM)头不同,我们的DePT(左侧)采用通道调整传输(CAT)头在隔离的特征空间中捕获基础特定知识,从而最大限度地保留原始特征空间中的任务共享知识,以改善对新任务的零样本泛化。在推断阶段,我们通过简单地融合两个头获得的基础特定和任务共享知识,进一步提高了基础任务的性能。©表示连接操作。

2.1. Preliminaries

Contrastive Language-Image Pre-training (CLIP) [45].CLIP的目标是学习图像编码器和文本编码器分别生成的图像和文本特征之间的对齐。在看到了4亿个图像-文本关联对并在一个共同的特征空间中执行对比学习范式之后,CLIP捕获了各种开放式视觉概念,可以轻松地推广到下游应用中。例如,我们可以通过将分类任务规定为图像-文本匹配问题来实现零样本分类。具体来说,我们首先构建一个提示(例如,“一张照片”),通过将类扩展的提示(例如,“一张照片[CLASS]”)输入文本编码器,获得所有内部任务类别的文本特征。然后,我们使用图像编码器获得输入示例的图像特征,并通过比较图像特征和类别的文本特征之间的余弦距离来预测示例的类别。

Prompt Tuning with the Image-Text Matching Head.与使用手工制作的提示(例如,“一张照片”)不同,提示调整旨在使用来自基础(或目标)任务的少量训练数据学习一个任务特定的提示。设 [ v ] 1 [ v ] 2 . . . [ v ] l [v]_1[v]_2...[v]_l [v]1[v]2...[v]l表示 l l l个可训练向量,我们将类扩展的提示 c i = [ v ] 1 [ v ] 2 . . . [ v ] l [ c_i=[v]_1[v]_2...[v]_l[ ci=[v]1[v]2...[v]l[CLASS]输入文本编码器 g ( ⋅ ) g(\cdot) g()以获得第 i i i个类别的文本特征: g ( c i ) g(\boldsymbol{c}_i) g(ci)。设 f \boldsymbol{f} f表示通过图像编码器获得的示例 x x x的图像特征,则可以使用一个无参数的图像-文本匹配(ITM)头来优化任务特定的提示,其将学习目标规定为:
在这里插入图片描述

其中, y y y是一个one-hot label
在这里插入图片描述
< ⋅ > <\cdot> <>表示余弦相似度, M M M是类别的数量, τ \tau τ是由CLIP学习的温度。在训练过程中,ITM头中计算的梯度可以通过文本编码器 g ( ⋅ ) g(\cdot) g()一直反向传播,以优化提示中的可训练向量。

2.2. A Closer Look at the BNT Problem

由于BNT问题,将预训练模型调整到基础任务 T b a s e \mathcal{T}_\mathrm{base} Tbase会降低模型在新任务 T n e w \mathcal{T}_\mathrm{new} Tnew上的泛化能力,反之亦然。在这部分中,我们提供了一个深入的视角来分析BNT问题。

Deriving an Oracle Model on T b a s e \mathcal{T}_\mathrm{base} Tbase and T n e w \mathcal{T}_\mathrm{new} Tnew.我们通过在提示调整期间将预训练模型联合训练到两个任务的数据上,从而开始研究BNT问题。因此,得到的Oracle模型可以被视为一个不受BNT影响的模型的近似,因为它避免了对 T b a s e \mathcal{T}_\mathrm{base} Tbase T n e w \mathcal{T}_\mathrm{new} Tnew的过拟合。这里我们使用“oracle”这个词,因为该模型是通过利用新任务的数据来推导的,而这些数据在提示调整中是不可访问的。

Calculating Channel Importance for T b a s e \mathcal{T}_\mathrm{base} Tbase and T n e w \mathcal{T}_\mathrm{new} Tnew.将 x j x_j xj示例在学习特征空间中的 d d d维图像特征和文本特征表示为 f j f_j fj e ∗ ∈ { e i = g ( c i ) } i = 1 M e_*\in\{e_i=g(\boldsymbol{c}_i)\}_{i=1}^M e{ei=g(ci)}i=1M,分别。我们计算每个任务的 T b a s e \mathcal{T}_\mathrm{base} Tbase T n e w \mathcal{T}_\mathrm{new} Tnew的第 r r r ( r = 1 , . . . , d ) (r=1,...,d) (r=1,...,d)特征通道的通道重要性(CI),如下所示:
在这里插入图片描述

其中 ⋅ ˉ = ⋅ / ∣ ∣ ⋅ ∣ ∣ 2 , N \bar{\cdot}=\cdot/||\cdot||_2,N ˉ=/∣∣2,N是任务中的样本数。
ReLU[1]用于避免分母等于0。
得到的方程(3)具有直观的解释:如果一个特征通道能更好地区分任务中的类别,即图像特征与实际文本特征接近,并且与该通道上其他类别的文本特征相距较远,则该特征通道的重要性更高。

Analysis.通过标准的提示调整范式学习的模型与通过推导的Oracle模型在计算的Tbase和Tnew的CI分布方面有什么区别?为了回答这个问题,我们以CoOp [58]作为基线方法,绘制了FGVCAircraft [32]和EuroSAT [14]数据集上CoOp和Oracle模型的测试数据的 T b a s e \mathcal{T}_\mathrm{base} Tbase T n e w \mathcal{T}_\mathrm{new} Tnew的CI分布图(详见补充资料(A))。从图中观察到,与CoOp获得的CI分布相比,Oracle模型获得的基础任务和新任务的CI分布显示出更大的一致性。具体来说,从CoOp在( a)( c)中的结果可以看出,在绝大多数特征通道上,新任务的CI值明显低于基础任务的CI值,在(b)(d)中进一步证实了这一点,在这些情况下,“CI-Base: CI-New”的计算值对于CoOp(相对应的)大多数情况下大于1.0。在(b)(d)中,我们展示了CoOp和Oracle模型在新任务上的分类准确率,其中Oracle模型的性能明显优于CoOp,这表明Oracle模型产生的大多数特征通道包含了对新任务泛化至关重要的任务共享知识。简而言之,在提示调整后,大多数学习到的特征通道被基础特定知识所占据,导致了对新任务重要的任务共享知识的崩溃(或灾难性遗忘)-我们在这项工作中将这称为通道偏置问题。受上述观察的启发,我们提出了以下问题:

我们能否同时保留基础特定和任务共享知识在特征通道中,以克服提示调整中的BNT问题?

在这里插入图片描述

图3. 基于数据集FGVCAircraft [32]和EuroSAT [14],由Oracle模型和CoOp [58]使用或不使用我们的DePT学到的基础任务和新任务的通道重要性(CI)分布。在(a)(c)中,x轴上的通道索引根据基础任务的CI重新排序,蓝色/红色点表示一个通道。在(b)(d)中,展示了CI-Base:CI-New的频率分布,其中CI-Base和CI-New分别是基础任务和新任务的CI;“H”表示基础任务和新任务准确率的谐波均值[57]。

2.3. Decoupled Prompt Tuning

在这项工作中,我们通过提出Decoupled Prompt Tuning(DePT)来回答上述问题,这是一个从特征解耦的角度克服提示调整中BNT问题的第一个框架。DePT框架的概述如图2所示

A Plug-and-play Channel Adjusted Transfer Head.一个即插即用的通道调整传输头。由于通道偏置问题,努力在提示调整期间获得基础特定知识将不可避免地触发在学习到的特征通道中任务共享知识的灾难性遗忘。为了解决这个问题,DePT采用了一个通道调整传输(CAT)头,将基础特定知识从特征通道解耦到一个孤立的特征空间中,以最大程度地保留原始特征空间中的任务共享知识。记 S i m g = { f j } j = 1 J S_{\mathrm{img}}=\{\boldsymbol{f}_j\}_{j=1}^J Simg={fj}j=1J S t e x t = { e j } j = 1 J \mathcal{S}_{\mathrm{text}}=\{e_{j}\}_{j=1}^{J} Stext={ej}j=1J分别为一个批次训练样本的图像和文本特征集, f j , e j ∈ R d f_j,e_j\in\mathbb{R}^d fj,ejRd。首先,CAT头利用一个逐通道的变换(cwT)层将 S i m g S_\mathrm{img} Simg S t e x t S_\mathrm{text} Stext转换到一个新的特征空间。形式上, S i m g ′ = { f j ′ } j = 1 J S_\mathrm{img}^{\prime}=\{f_j^{\prime}\}_{j=1}^J Simg={fj}j=1J,并且
在这里插入图片描述

其中, γ , β ∈ R d \gamma,\beta\in\mathbb{R}^d γ,βRd是可训练的缩放和位移向量。
类似地,记 S t e x t ′ = { e j ′ } j = 1 J S_\mathrm{text}^{\prime}=\{e_j^{\prime}\}_{j=1}^J Stext={ej}j=1J。接下来,一个线性分类器以 S ∪ S_\mathrm{\cup} S γ ∪ \gamma_\mathrm{\cup} γ作为输入,以鼓励在孤立特征空间中挖掘基础特定知识,其中 S ∪ = S i m g ′ ∪ S t e x t ′ = { s j } j = 1 2 J S_{\cup }= S_{\mathrm{img}}^{\prime}\cup S_{\mathrm{text}}^{\prime}= \{ s_{j}\} _{j= 1}^{2J} S=SimgStext={sj}j=12J Y ∪ = { y j } j = 1 2 J , y j ∈ R M \mathcal{Y} _{\cup }= \{\boldsymbol{y}_j\}_{j=1}^{2J},\boldsymbol{y}_j\in\mathbb{R}^M Y={yj}j=12J,yjRM s j s_j sj的一个独热标签, M M M是任务的类别数。对于每对 ( s , y ) (s,y) (s,y),CAT头最小化以下交叉熵损失:
在这里插入图片描述
其中,
在这里插入图片描述
其中, W ∈ R M × d \boldsymbol{W}\in\mathbb{R}^{M\times d} WRM×d表示用于分类的投影矩阵, σ \sigma σ表示softmax操作。在训练过程中,由 L C A T \mathcal{L}_\mathrm{CAT} LCAT计算的梯度被反向传播以更新CAT头中的权重(即 γ , β , W \gamma,\beta,W γ,β,W),以及可训练提示(即 [ v ] 1 [ v ] 2 . . . [ v ] l [\boldsymbol{v}]_1[\boldsymbol{v}]_2...[\boldsymbol{v}]_l [v]1[v]2...[v]l)。在第 3.2 \color{red}{3.2} 3.2节的消融研究中表明,使用两个独立的cwT层(每个模态一个)比在CAT头中使用共享的cwT层更有效。

Prompt Tuning with Dual Heads.与仅仅使用设计的CAT头来促进在提示调整期间保留任务共享知识不同,我们的DePT还保留了标准的ITM头,以在原始特征空间中学习图像-文本对的对齐,这对于在新任务上建立更好的零样本泛化是非常重要的(正如在第3.2节证明的那样)。因此,DePT的总体学习目标表示为:
在这里插入图片描述
其中λ是控制两个损失的相对重要性的平衡权重。

Test-time Knowledge Fusion for the Base Task.在推断阶段,标准的ITM头用于在原始特征空间中对新任务进行零样本泛化/预测。对于基础任务,我们的CAT头直接将测试示例的图像特征作为输入,通过线性分类器来预测分布内的类别标签。值得注意的是,我们可以通过在推断时简单地将CAT头中的基础特定知识与ITM头中的任务共享知识融合来进一步提高基础任务的性能。通过连接方程(2)和方程(6),可以计算出分布内测试示例 x x x属于第 i i i类的预测概率:
在这里插入图片描述
其中,Eq.(7)直接用于控制两个头的贡献以简化。用于实现DePT的类似Pytorch的伪代码在Sup.Mat.(B)。

3. Experiments

在这里插入图片描述
在这里插入图片描述

5. Conclusions

在这项工作中,我们提出了Decoupled Prompt Tuning(DePT)框架,以解决提示调整中的基础-新任务权衡(BNT)问题。首先,我们提供了一个富有洞察力的视角来分析BNT问题,并揭示了BNT问题源自通道偏差问题。其次,我们提出了DePT框架来解决BNT问题,并且DePT与现有的提示调整方法是正交的。第三,我们将DePT应用于广泛的基线方法,并在11个数据集上的结果证明了DePT的强大灵活性和有效性。我们希望这项工作能给相关领域带来一些启发。

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

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

相关文章

微软搭建零售新媒体创意工作室大举抢占数字营销广告市场

“微软新零售创意工作室新平台利用生成式人工智能&#xff0c;在几秒钟内轻松定制横幅广告。零售媒体预计到2026年将成为一个价值1000亿美元的行业。” 零售媒体在过去几年中发展迅速。根据eMarketerOpens在新窗口的数据&#xff0c;预计到2024年&#xff0c;仅美国的零售媒体…

COOIS增加增强字段

SAP系统标准的工单信息报表COOIS增加客制化增强字段可以按照以下步骤处理&#xff1b; 1. 在显示抬头信息的输出结构IOHEADER中增加需要显示的增强字段 2. 使用BADI WORKORDER_INFOSYSTEM创建增强实施 3. 在方法TABLES_MODIFY_LAY中处理相应字段的取值逻辑

YoloV8改进策略:Block改进|轻量级的Mamba打造优秀的YoloV8|即插即用,简单易懂|附Block结构图|检测、分割、关键点均适用(独家原创)

摘要 无Mamba不狂欢,今天给大家带来一个基于轻量级Mamba的改进。模块简单易懂,即插即用! 带领大家去征服更高的领域。 论文:《LightM-UNet:Mamba 辅助的轻量级 UNet 用于医学图像分割》 https://arxiv.org/pdf/2403.05246.pdf UNet及其变体在医学图像分割中得到了广泛…

Thread和Runnable

两者都创建线程的方式&#xff0c;不同之处在于前者是类&#xff0c;后者是接口。使用的时候重写他们即可。 预热&#xff1a;操作系统的知识 想象此时有一条马路&#xff0c;走的人多了道路开始变得堵塞&#xff0c;如果拓宽为多车道即可解决该问题。 这便是多线程的例子。…

An Investigation of Geographic Mapping Techniques for Internet Hosts(2001年)第二部分

​下载地址:An investigation of geographic mapping techniques for internet hosts | Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications 被引次数:766 Padmanabhan V N, Subramanian L. An i…

Redis限流插件

Redis限流插件: 1:搭建层级结构 同时对 redis.log 授权 chmod 777 redis.log2:确认 redis 版本 3:下载redis配置文件 redis.conf https://redis.io/docs/management/config/ 4:上传/redis/conf作为原始 redis.conf 5:在/redis_6390/conf下编辑redis.conf docker run -it \ --…

软件测试面试题分享(含答案+文档)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 准备找工作的小伙伴们&#xff0c;今天我给大家带来了一些自动化测试面试题&#xff0c;在这个公…

c++的学习之路:4、入门(3)

摘要 本章将介绍一下auto、for和指针空值&#xff0c;文章末附上入门的所有代码。 目录 摘要 一、auto 二、for 三、指针空值 四、代码 五、思维导图 一、auto 这个关键字是c提出的&#xff0c;可以自动识别变量的类型&#xff0c;可以看出下方图片&#xff0c;auto自…

19.java openCV4.x 入门-Imgproc之图形绘制

专栏简介 &#x1f492;个人主页 &#x1f4d6;心灵鸡汤&#x1f4d6;我们唯一拥有的就是今天&#xff0c;唯一能把握的也是今天建议把本文当作笔记来看&#xff0c;据说专栏目录里面有相应视频&#x1f92b; &#x1f4f0;专栏目录 Imgproc之图像绘制 一、直线绘制字段1…

学习笔记------约束的管理

此篇记录FPGA的静态时序分析&#xff0c;在学习FPGA的过程中&#xff0c;越发觉得对于时序约束只是懂了个皮毛。现在记录一下自己的学习过程。 本文摘自《VIVADO从此开始》高亚军 为什么要进行约束&#xff1f;约束的目的是什么&#xff1f; 简单来说&#xff0c;就是需要在…

onedrive 清理文件历史版本 节省空间

onedrive 清理文件历史版本以节省空间的操作步骤 起因&#xff1a; 用的好好的onedrive高校教育版&#xff0c;突然在2024年4月2日晚上把空间从1T回收到100G&#xff0c;然后文件爆满&#xff0c;虽然没有把文件都给我删了&#xff0c;但是可能几个月窗口期过去就没文件了。而…

科技人才的养成之路

引言 在当今科技行业蓬勃发展的背景下&#xff0c;对于高素质科技人才的需求日益增加。科技人才的培养不仅仅是为了满足市场需求&#xff0c;更是为了推动社会的科技创新和发展。正是这些科技人才&#xff0c;推动着科技的边界不断拓展&#xff0c;创造出各种令人瞩目的技术和…

grpc-教程(golang版)

目录 一、介绍 二、环境准备 三、Golang中使用grpc 1.编写protobuf文件 2.服务端 3.客户端 四、proto文件详解 1.proto语法 2.数据类型 基本数据类型 数组类型 map类型 嵌套类型 编写风格 3.多服务 4.多个proto文件 五、流式传输 1.普通rpc 2.服务器流式 …

java:多线程解决生产者消费者问题

生产者消费者问题 生产者消费者问题&#xff0c;也称有限缓冲问题&#xff0c;是一个多线程同步问题的经典案例。该问题描述了共享固定大小缓冲区的两种线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中…

44.HarmonyOS鸿蒙系统 App(ArkUI)栅格布局介绍

栅格布局是一种通用的辅助定位工具&#xff0c;对移动设备的界面设计有较好的借鉴作用。主要优势包括&#xff1a; 提供可循的规律&#xff1a;栅格布局可以为布局提供规律性的结构&#xff0c;解决多尺寸多设备的动态布局问题。通过将页面划分为等宽的列数和行数&#xff0c;…

Linux Crontab定时任务介绍及检测思路分析

一、Cron介绍 1、定义 crontab为Linux下的计划任务程序&#xff0c;对应的服务为crond。crond是一个守护进程&#xff0c;每分钟会定期检查是否有要执行的任务&#xff0c;如果有要执行的任务&#xff0c;则自动执行该任务。Linux系统上面原本就有非常多的计划性工作&#xff…

深度学习pytorch实战第P3周--实现天气识别

>- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](https://mp.weixin.qq.com/s/0dvHCaOoFnW8SCp3JpzKxg) 中的学习记录博客** >- **&#x1f356; 原作者&#xff1a;[K同学啊](https://mtyjkh.blog.csdn.net/)** 引言 1.复习上周 深度学习pytorch实战-第…

pbootcms百度推广链接打不开显示404错误页面

PbootCMS官方在2023年4月21日的版本更新中&#xff08;对应V3.2.5版本&#xff09;&#xff0c;对URL参数添加了如下判断 if(stripos(URL,?) ! false && stripos(URL,/?tag) false && stripos(URL,/?page) false && stripos(URL,/?ext_) false…

[MySQL]数据库原理8——喵喵期末不挂科

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;大大会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…

Vulnhub靶机 DC-2渗透详细过程

VulnHub靶机 DC-2 打靶 目录 VulnHub靶机 DC-2 打靶一、将靶机导入到虚拟机当中二、攻击方式主机发现端口扫描服务探针爆破目录web渗透信息收集扫描探针登录密码爆破SSH远程登录rbash提权 一、将靶机导入到虚拟机当中 靶机地址&#xff1a; https://www.vulnhub.com/entry/dc…