Genetic Prompt Search via Exploiting Language Model Probabilities
题目
利用语言模型概率的遗传提示搜索
论文地址:https://www.ijcai.org/proceedings/2023/0588.pdf
项目地址:https://github.com/zjjhit/gap3
摘要
针对大规模预训练语言模型(PLMs)的即时调优已经显示出显著的潜力,尤其是在诸如fewshot学习的低资源场景中。此外,无导数优化(DFO)技术可以调整黑盒PLM的提示,以更好地适应下游任务。然而,应用现有的基于DFO的提示调整方法通常有前提条件,例如主干PLM需要提供额外的API,以便隐藏状态(和/或嵌入向量)可以作为连续提示注入其中,或者需要预先提供精心设计的(离散)手动提示,作为调整算法的初始状态。为了放弃这样的前提条件,并使基于DFO的提示调整为普遍使用做好准备,本文引入了一种新的遗传算法(GA ),该算法从空提示进化而来,并使用基于(少量)训练集从主干PLM导出的预测概率来指导提示突变期间的标记选择过程。在不同基准数据集上的实验结果表明,提出的无前提条件方法明显优于现有的需要前提条件的DFO式方法,包括黑盒调节、遗传提示搜索和无梯度教学提示搜索。
引言
预训练语言模型(PLM)最近的成功正在彻底改变自然语言处理(NLP)领域[Devlin等人,2019;拉德福德等人,2019;刘等,2019;拉斐尔等人,2020;克拉克等人,2020]。与此同时,超大型PLM在少量学习场景中显示出巨大的潜力(例如[Brown等人,2020]),这使得它们作为通用的开箱即用工具越来越有吸引力。微调这样的大规模PLM在计算上仍然是昂贵的,即使是在少量的训练集上。
但是一种叫做即时调优的新范式大大缓解了这一问题。提示调谐法[李,梁,2021;高等,2021;莱斯特等人,2021;Shin等人,2020;刘等,2022;刘等;Liu等人,2023]通过在主干PLM的输入(有时还有隐藏状态[Liu等人,2021a])中插入少量可调变量,使其预测概率偏向所需输出,同时在学习过程中保持主干模型的参数不变。这里的可调变量可以是连续向量(即软提示)或表面标记(离散提示),对于这些变量,获得有希望的值是基本目标,可以通过基于梯度的优化器来解决[Kingma和Ba,2015;Loshchilov和Hutter,2019]或无导数优化(DFO)技术[Kolda等人,2003;里奥斯和萨尼迪斯,2013年;于和根,2010]。
为了使对这些超大型PLM的访问民主化,一种常见的做法是仅通过云API将它们作为后台服务交付Brown et al,2020;欧阳等人,2022年。这意味着通过DFO的快速调谐是一个有意义和重要的研究方向,其中主干的参数不需要暴露给调谐器。已有工作证明了应用进行快速调谐的可行性[徐等,2022;普拉萨德等人,2022;孙等,2022b孙等,2022a】。例如,Xu等人[2022]和Prasad等人[2022]引入了搜索试探法,通过释义、完形填空、删除、交换等编辑操作来提炼人类生成的(离散)提示。另一方面,孙等[2022 b;2022a]提出了所谓的“黑盒调节(BBT)”方法,用于基于协方差矩阵适应进化策略的连续即时优化[Hansen et al,2003]。
然而,现有方法的局限性是显而易见的。离散提示搜索启发式搜索[徐等,2022;Prasad et al,2022]要求事先仔细设计可用的手动提示,这会产生额外的人工努力。此外,它们的性能也可能在很大程度上依赖于那些初始手动提示的适用性(参见4.3)。此外,这类方法通常需要辅助语言模型(LMs)来转述现有提示(如[Xu et al,2022]中使用的T511B [Raffel et al,2020]和[Prasad et al,2022]中使用的PEGASUS [Zhang et al,2020]),这涉及到额外的依赖关系。对于式的连续提示优化[孙等,2022bSun et al,2022a],它要求主干PLM提供额外的API,以便连续提示可以作为单词嵌入(或BBTv2的隐藏状态)注入[Sun et艾尔。2022a]),这在实践中可能并不总是可实现的。一种简单的替代方法是与GPT-3(Brown et al,2020)一起提出的情境学习(ICL),它只是将训练样本作为提示添加到输入中。但是,预先考虑太多或太长的例子可能会使最终输入超过主干模型的序列长度阈值,这限制了ICL的适用任务。此外,的表现通常缺乏竞争力,参见[孙等,2022b孙等,2022a徐等,2022;高等人,2021]以及我们的实验(参见4.3)。
本文旨在放弃现有的基于DFO的提示调整方法所要求的上述先决条件,并提出一种新的遗传算法(GA) [Mitchell,1998],该算法从头开始生成离散提示。所提出的方法,命名为预测概率引导提示的通用算法(GAP3) 1,工作如下。
首先,不连续的提示组块被认为是染色体,提示标记是基因。然后,从一个空的开始,GAP3通过染色体交叉和基因突变进化出提示。在每个突变步骤中,要么在随机染色体的随机位置插入新的屏蔽标记,要么屏蔽随机存在的基因。在此之后,掩码槽将由一个令牌填充,该令牌近似地最大化(少数镜头)训练集的基本事实标签的预测概率。该算法迭代预定数量的步骤,由不同染色体/基因组成的个体根据在训练集上计算的适应性分数竞争生存和繁殖。
与现有的基于DFO的提示方法相比,所提出的GAP3的主要优点有三个方面:
- 因为GAP3搜索离散提示,所以不需要额外的用于向量注入的API。
- 不需要手动提示,因为GAP3是用空提示初始化的。
- 对于产生屏蔽记号的预测概率的主干PLM,例如屏蔽语言模型(MLM)[Devlin等人,2019;刘等,2019]或者T5风格的编解码网络[Raffel等,2020;Lewis et al,2020],GAP3直接基于主干本身生成提示令牌,不需要辅助LM,进一步降低了其应用的前提条件。(如果一个不经意的LM[拉德福德等,2018;拉德福德等人,2019]是兴趣的骨干,GAP3将需要一个辅助MLM用于令牌生成(参见4.3),其中MLM也可以是黑盒模型。)
分别以Roberta large[刘等,2019]和2 large[等,2019]为骨干PLMs,在7个基准数据集(与[孙等,2022b]中使用的相同)上评估GAP3的性能,并与现有的同行进行比较,包括[孙等,2022b],遗传提示搜索(GPS)[徐等,2022],无梯度教学提示搜索(GRIPS) [Prasad等,2022],以及实验结果证明了该方法的有效性在建议的GAP3中,它优于所有的DFOstyle基线,在RoBERTaLARGE和GPT-2LARGE的平均分数上分别实现了至少2.9%和2.4%的绝对改善。
相关工作
参数-高效调谐(PET)。PET通过只调整一小部分参数而不是整个模型,降低了大型PLM适应下游任务的成本[Houlsby等人,2019;Pfeiffer等人,2020年】。提示调谐[莱斯特等人,2021;刘等,2022;刘等;刘等;Qin和Eisner,2021]形成PET的子方向,其中可调参数是注入的软提示。尽管PET方法取得了成功,但它们并不适合日益增长的LM即服务部署趋势,因为需要基于梯度的优化。
离散提示搜索。离散提示在黑盒场景中更可取,因为不涉及模型级别的修改。早期研究发现手动创建的直观提示很有帮助[Petroni等人,2019;席克和舒茨,2021bSchick和Sch utze,2021a ],但它们在一般意义上是次优的。对于自动搜索提示的方法,解释是一种常用的方法,用于扩展现有的提示集(通常用手动提示初始化),以便后续的搜索试探法进行筛选[Xu et al,2022;普拉萨德等人,2022年】。此外,侯等[2022]提出通过boosting进行提示集成。但这样的集成同时也增加了推理成本。强化学习(RL)最近被Deng等人[2022]和Diao等人[2023]用于优化黑盒主干的离散提示。值得注意的是,Deng等人[2022]提出的方法涉及在相当大的提示空间中的动作探索,这导致比其同行(如[Sun等人,2022b])明显更多的API调用来训练模型。其他建议的方法包括从网络中挖掘提示模板[Jiang等人,2021]和训练特定提示生成器[Ben-David等人,2022],这对应于额外的计算和人力工作。
混合方法。还可以基于离散提示和可区分参数来调整主干模型,典型示例包括AutoPrompt [Shin等人,2020]和LM-BFF[高等人,2021],AutoPrompt根据梯度搜索离散提示标记,LM-BFF结合了自动提示生成和模型微调。这种方法应该被认为更接近PET,因为它们违反了黑盒假设。
方法论
提示模板
假设下游任务是将输入文本[X]分类到一个标签[Y]。这里的提示模板是指排列[X],[Y]和提示[T]的排列,例如模板’[X][T][Y]'代表在输入文本和标签之间放置提示。我们进一步假设任务的输入可以由多个文本片段组成(例如,当对一对句子进行分类时),并且允许提示组块被放置在多个位置。因此,我们用下标概括了上面的模板表示,例如[X1][T1][X2][T2][Y]'是指分别插入两个文本段之间和第二个文本段与标签之间的两个提示块。
遗传算法
对于给定的下游任务和训练集的提示,所提出的GAP3工作如下。首先,我们定义一个提示模板(参见3.1)。这里的模板只决定文本片段的排列。实际提示的组块在这个阶段被初始化为空集。为了用GA风格解释这个过程,我们把每个提示块[Ti]看作一个染色体,其中要填充的实际标记被看作基因。此外,我们称具有不同染色体的完整提示为个体。在这之后,我们通过随机突变初始空个体的一个基因来产生第一群体的N个个体,其中N是预定义的超参数。具体地说,在第一步中,突变意味着随机选择一条染色体(空白的),并向其插入一个标记。然后算法迭代如下。
- 评估训练集上的每个个体,以获得健康分数;
- 保持top √ N最适合的个体,称为精英;
- 从精英中随机抽取成对的个体来执行(概率)染色体交叉,直到产生一个新的N大小的群体。
- 通过随机插入新标记或用新标记替换随机存在的标记,使每个新个体的基因突变(概率上);在最佳个体被选为最终输出之前,上述过程将被重复M个步骤,其中M也是预定义的超参数。
精英选拔。除了根据个体的适应度分数对当前群体进行排序之外,我们还维护在先前迭代中获得的总体最佳个体。如果‘到目前为止最好的’个体超过了当前的精英,我们会将其添加到当前的精英组中(同时丢弃尾部精英)。这是为了避免优良基因在杂交和突变过程中丢失。
交叉。精英对以加权轮盘赌的方式,根据他们的健康分数抽取。此后,对于每个[Ti],以概率ρc,我们在精英对之间交换相应的染色体,以产生两个新的个体。超参数ρc称为交叉概率。
突变。用概率ρm(称为变异概率),我们变异一个个体。当这种情况发生时,我们在“插入”或“替换”之间随机抽取一个概率相等的动作。如果应用了“插入”动作,则将在随机染色体的随机位置插入掩码标记。否则,(随机染色体的)随机存在的基因将被屏蔽(通过用屏蔽标记替换该标记)。这意味着,无论哪种方式,在当前提示中都会有一个掩码标记。然后,将利用LM概率来实现真实令牌的掩码。
算法1给出了所提出的GAP3的伪代码,其中超参数和常量对象用斜体表示。我们将令牌选择过程的详细解释和适应度函数的相应设计分别留到3.3和3.4,以保持这里对主要算法的讨论的连贯性。
由LM概率符号指导的突变
让(x,y)表示一个数据示例,其中x是输入令牌序列,y是标签(令牌)。不失一般性,对于涉及m段文本作为输入的任务,我们将让x := (x1,.。。xm),每个xi由一个令牌序列组成。则提示T可以被视为根据其相关联的模板将提示令牌应用于数据点(x,y)的函数,以获得最终令牌序列,如t (x,y)。我们用ti来表示T中由I索引的令牌,让T # i代表提示,用掩码令牌代替ti。我们还使用t # i来引用I索引的屏蔽令牌。类似地,(x,y#)代表其标签y被屏蔽的数据点。
首先,假设我们有一个满足贝叶斯规则的“理想”LM。然后,对于任意数据点和任意屏蔽的令牌t # i,我们将有:其中P( |)代表LM给定的条件概率,T # i←t代表用标记T替换屏蔽标记T # i得到的提示,我们称之为Eq。1一个“理想”的假设,因为当且仅当这里的概率是实际概率时,它才成立,这在实践中是不可实现的(因为一般的PLM没有按照这样的约束来训练以满足贝叶斯规则)。
因此,为了使方程有效,我们引入一个偏差项λ并重新表述方程。2的对数形式,如:其中我们以P( |)的形式命名概率,以便在将来的讨论中引用。现在,回想一下3.2中的突变过程。给定一个带有屏蔽记号的任意提示T # i和一个训练集D,人们会希望通过寻找使D上的后验标签最大化的记号T’来揭开T # i,如下所示:
其中V是LM的词汇。如果我们忽略偏差(λs), P(y|t)可以根据等式的右边容易地计算出来。这意味着对每个训练示例(x,y)调用LM两次,分别为其提供T # i (x,y#)和T # i (x,y)。然而,这里的偏差(λs)是不可缺少的,而计算所有可能的数据提示-令牌-掩码组合的偏差显然是困难的。因此,我们设计了一种启发式方法来解决这个问题,如下所示。
设。如果我们替换等式中的λ(x,y,T,T # i)。3对于λ(t),左手边成为原始对数P(y|t)的一个下界。首先,对于所有t ∈ V,我们将λ(t)初始化为0,我们定义log P(y | t):=
(用简化符号表示)。然后,每次提示发生变化时,我们执行两步更新,如下所示:
其中log P(y | tˇ)也是基于LM计算的。这里要注意,P(y | tˇ)本质上是评估训练数据上所获得的提示的性能,这也是适应度函数所使用的(参见3.4)。因此,计算it是不可避免的工作,而不是额外的成本。关于λ的备注。对λ(t)函数更直观的解释是,它惩罚那些倾向于重复出现但会高估标签预测概率的记号。
情商备注。5.实际上,总是采用第一个标记t’可能会产生重复的提示(尤其是在生成初始群体时(参见3.2))。所以我们实际上是基于P D log P(y|t)来收集top-n的令牌。然后,从第一个开始,我们检查之前是否已经看到了基于当前令牌的非屏蔽提示。如果是,我们转到下一个令牌,直到得到一个看不见的结果提示。
假面LM vs休闲LM。所提出的GAP3最优雅的部分是,如果主干PLM是MLM(或类似T5的编码器-解码器网络[Raffel等人,2020;Lewis等人,2020]),所有四个预测概率P(t|y),P(y |∫),P(t |∫)和P(y|t)都可以从主干模型本身获得。然而,如果主干是只能预测P(y|t)的偶然LM,我们可以使用辅助MLM来计算P(t|y),P(y |∫)和P(t |∫),在这种情况下,λ(t)在很大程度上防止了算法重复生成高度偏向辅助的令牌。
适合度函数
对于给定的任务,训练集上的实际客观度量(例如准确度或F1分数)将是GA中产生的那些个体的适合度的直接测量。然而,在少量学习的情况下,很容易让许多人达到相同的指标分数。一个群体中出现太多不可区分的个体可能会导致那些潜在更具竞争力的基因的繁殖机会减少。
所以在GAP3中,我们实际上是把适应度做二维的。特定于任务的目标度量是主要的适合度。如果(且仅如果)两个个体在主导适应度中具有相等的分数,我们根据次要适应度进一步比较它们。第二健康分数计算如下:其中Y表示任务的标签集,δ是Kronecker delta函数。F2nd意味着我们重新归一化标签集上的预测概率,并对“铰链”概率进行平均,其中错误预测的例子贡献零值。这里注意,在加权轮盘赌选择过程中,我们只使用F2nd分数作为权重,因为它们更容易区分,并且部分反映了分类的准确性。
实验
我们进行了一组主要的对比实验和一项烧蚀研究。4.1、4.2和4.3分别描述了主要实验的设置、基线和结果。消融研究的相关内容具体见4.4。
设置数据集
主要实验使用的数据集由7个基准NLP任务组成,与[孙等,2022b]中的相同,包括[张等,2015]的Yelp polarity、AG的News和DBPedia,GLUE基准[王等,2018]的SST-2、和RTE,以及SNLI [Bowman等,2015]。实验是在k-shot学习设置中进行的,其中对于每个任务,我们从原始训练集中为每个标签随机抽取k = 16个样本。对于SST-2、MRPC和RTE,我们使用它们的开发集作为测试集。对于其他任务,我们使用原始的测试集。对于MRPC,F1被用作评估指标,而准确性是所有其他任务的指标。
主干PLM。我们选择Roberta large[刘等,2019]和2 large[等,2019]作为骨干,分别进行两组实验。对于GPT-2大骨架,我们分别使用RoBERTaLARGE和BERTBASE (cased) [Devlin等人,2019]作为GAP3的辅基(参见3.3)。
GAP3的超参数。我们设置GAP3的种群大小N = 64,迭代次数M = 50,交叉和突变概率ρc分别为0.5和ρm = 0.75。对于RoBERTaLARGE主干,上述设置导致M × N × (1 + 2ρm) = 8000个API调用的预期数量(每个数据示例每个个体一个适应性调用加上两个突变调用(概率为ρm))。对于GPT-2大型主干网,相同的设置对应于3200个对GPT-2大型的API调用和4800个对RoBERTaLARGE/BERTBASE的API调用。每个任务上GAP3的提示模板和标签词可以在附录a中找到。
基准
我们选择以下现有的基于DFO的提示方法作为基准。基线的实现都基于它们的作者提供的原始源代码。BBT。[Sun et al,2022b]需要一个额外的kshot开发集,它也是从任务的原始训练集中随机抽取的,不与k-shot训练实例重叠。将的API调用预算设置为8000(同[Sun et al,2022b]),提示长度为50。
全球定位系统。GPS [Xu et al,2022]是另一种基于遗传算法的提示方法,它通过使用T511B [Raffel et al,2020]来解释提示而发展。由于GPS需要多次手动提示来初始化第一个群体,因此我们只在Yelp polarity、AG’s News、SNLI和RTE上为其进行了实验。
我们使用[Schick和Schutze,2022]中提供的手动提示来初始化Yelp极性和AG的新闻实验。SNLI上的实验使用[Sanh等人,2022]中提供的ANLI手动提示进行初始化。桑等人艾尔。[2022]还提供了RTE的手动提示集,这里直接采用。我们将GPS的群体大小设置为25,迭代次数设置为10。
握把。GRIPS [Prasad等人,2022]也是一种基于启发式搜索的提示方法,它基于PEGASUS [Zhang等人,2020]和通用令牌级编辑来发展提示。GRIPS需要手动指令进行初始化。对于GPT-2大型实验,我们基于自然指令数据集[Mishra等人,2022]对其进行初始化,并将迭代次数设置为50,每次迭代生成100个候选。然而,基于同样的设置,我们未能获得任何合理的结果。
GRIPS要么找不到有效的更新,要么只能随机产生结果。(这可能是因为GRIPS本身或最初的指导手册提示不适合MLM主干网。)因此,我们省略了与RoBERTaLARGE主链的比较。
此外,我们还将GAP3的性能与(Brown et al,2020)、手动提示、基于梯度的提示调谐(PT) [Li and Liang,2021]以及全模型微调(FT)进行了比较。对于ICL,我们以随机顺序连接k-shot训练示例(但是具有平衡的标签分布),以形成输入的前缀提示。关于手动提示,对于Yelp polarity,AG的News,SNLI和RTE,我们测试了所有可用的提示,选择了最好的分数。对于其他任务,我们只使用[Sun et al,2022b]中给出的简单提示模板。对于PT和全模型FT,采用Adam优化器[Kingma和Ba,2015]。对于PT,学习速率为5e-4,批量大小为16,运行1000个历元。对于全模型FT,具有相同的批量大小,但是学习速率为1e-5,我们运行它200个时期。
我们没有选择BBTv2 [Sun等人,2022a]作为这项工作的基线,因为我们认为隐藏状态注入是对黑盒假设的更强违反,这对其他方法是不公平的。
标注单词。我们使用的标签词与[Sun et al,2022b]中的略有不同。因为在我们的例子中,从自然语言的角度来看,我们直觉地期望标签词更容易相互替换。为了消除这种差异给实验结果带来的偏差,对于和,我们分别用[Sun et al . 2022 b]中的标签词和我们的标签词进行实验,选择得到的较好的结果。对于GPS和夹点,标签文字嵌入在它们的初始手动提示中,我们保持不变。
使用资源的公平性。对于RoBERTaLARGE主干,我们在相同的API调用预算下比较了GAP3和BBT。然而,BBT使用了一个额外的k-shot开发集,这意味着所需的标签样本数量增加了一倍。如果我们假设API调用的总成本与后面模型的规模成线性关系,对于GPT2LARGE主干,GAP3将比BBT更具成本效益,因为其60%的API调用花费在比GPT2LARGE小得多的辅助RoBERTaLARGE/BERTBASE上。基于同样的假设,我们可以认为GAP3、GPS和GRIPS使用的资源大致相当。
表1:罗伯塔拉格主链的实验结果。所有的数字都是百分数,省略了“%”。基于3次不同分割计算的平均值和标准偏差。粗体结果是无梯度组中最好的结果。下划线的结果是两组中总体最好的结果。
表2:GPT-2大型骨干网的实验结果。所有的数字都是百分数,省略了“%”。基于3次不同分割计算的平均值和标准偏差。粗体结果是无梯度组中最好的结果。下划线的结果是两组中总体最好的结果。
结果
以罗伯塔拉格和GPT-2拉格为骨架的实验结果分别示于表1和表2中。可以发现,在这两种情况下,建议的GAP3都比无梯度组中的其他基线有显著的优势。有趣的是,对于GPT-2大型骨干,伯特基地(110米)辅助工程几乎一样好罗伯塔大型(354米)辅助。虽然前者的平均分略低,但在SST-2、DBPedia和MRPC上的得分甚至高于后者。这也表明GAP3对特定辅助MLM的依赖性很弱。此外,GAP3在RoBERTaLARGE上超过了基于梯度的PT,在GPT-2LARGE上取得了接近基于梯度的PT的平均分。
然而,全模型FT似乎仍然是最具竞争力的范例。尽管有能力调整黑盒主干,但无梯度组中没有一种方法达到可与全模型FT相比的总体分数。最近的一项研究[Chen等人,2022]也表明了类似的发现,该研究专门用于分析这一方面。此外,在RTE上,没有一种无梯度方法的性能明显好于chance,这表明存在DFO式算法更难解决的特定问题。
消融研究
消融实验基于SST-2和AG的News数据集和RoBERTaLARGE主干进行,其中我们改变一个超参数,同时保持其他参数不变。默认的超参数值与4.1中的相同,除了我们在本节中默认使用32次学习,以减少3次不同运行的方差。
k歌。我们增加每个标签的训练样本的数量(即k),k分别是16、32、64和128并将GAP3的相应性能绘制在图1中。可以发现,在两个数据集上获得的准确度分数随着k而增长。此外,直到k = 128,没有出现明显的收敛趋势,这表明GAP3具有从更大的训练集学习的潜在能力。
API调用预算。GAP3的预期API调用次数由三个超参数共同决定,即群体大小(N)、迭代次数(M)和突变概率(ρm)。我们将上述超参数的消融结果一起绘制在图2中,与它们产生的API调用的数量相对比。可以理解的是,更多的API调用通常对应于更好的结果。然而,由于GAP3策略的随机性,例外可能会偶然发生,其中API调用较少的设置恰好优于API调用较多的设置。
其他超参数。如图3所示,GAP3在某种程度上对交叉概率很敏感。这表明将来需要设计一些进一步的试探法,以寻找ρc的最佳值。此外,我们还试验了一个替代的二级适应度函数(参见3.4),该函数通过省略等式中的Kronecker delta获得。7.结果表明,这样做将使SST-2的平均精度降低1.0%,使AG的News的平均精度降低0.5%。
图1:训练样本数量的消融研究(每个标签)。
图2:关于迭代次数、群体大小和突变概率的预期API调用次数的消融研究。
进一步讨论
标签选词。这部作品中的标签词是人工指定的。基于[高等人,2021]中提出的方法,进行了自动搜索标签词的初步尝试,然而,这导致了严重的过拟合。为GAP3获取标签词的更好策略将在我们的特征研究中提出。提示长度。在GAP3中,提示长度不是预定义的,但是迭代次数超参数将确定最大可能提示长度的上限。另外,3.1中定义的模板并不一定意味着每个提示槽[Ti]最后都会有令牌。有可能最后存活下来的个体有一些染色体是空的。上述特性使得GAP3生成的提示更加灵活,并且对超参数依赖性更小。提示的可解释性。一般来说,GAP3生成的提示是人类无法理解的,因为它不是为了获得人类可读的文本而设计的。尽管如此,人们仍然可以在提示中找到一些可以解释的“关键词”。4.3中学习的提示示例可在辅助材料2中找到。
图3:交叉概率的消融研究。
限制。由于在GAP3的发展过程中产生了M×N×(1+2ρm)个API调用,因此将其直接应用于完整规模的训练集在计算上将是昂贵的。这也是现有的基于DFO的提示方法的共同局限。在我们的GAP3案例中,以k倍的方式重塑进化和评估过程可能会缓解计算复杂性问题,这将在未来的研究中进一步探讨。
结论
介绍了一种LM概率导向遗传算法GAP3,用于自动搜索黑盒PLM主干的提示。尽管它在不同的基准测试中表现出色,但GAP3最显著的优势是放弃了现有的基于DFO的提示方法所需的前提条件,如注射API或手动提示。GAP3对额外资源的依赖性为零或最小,这表明它是那些LMas-a-Service实例的现成补充。将它应用于全尺寸训练问题的计算成本将是GAP3目前的主要限制。解决这一限制将是我们未来的研究方向之一。
附录
a . GAP3的提示模板和标签提示模板和标签词(动词)在我们对罗伯塔大和GPT-2大的gap 3实验中使用主链分别列在表3和表4中。
表3 RoBERTaLARGE主干的模板和标签。
表4:GPT-2大型主干网的模板和标签。–’代表与表3中相同的标签。
相关文章:
Genetic Prompt Search via Exploiting Language Model Probabilities
题目 利用语言模型概率的遗传提示搜索 论文地址:https://www.ijcai.org/proceedings/2023/0588.pdf 项目地址:https://github.com/zjjhit/gap3 摘要 针对大规模预训练语言模型(PLMs)的即时调优已经显示出显著的潜力,尤其是在诸如fewshot学习…...
mysql之表的外键约束
MySQL表的外键约束详细介绍及代码示例 外键约束是数据库中用于维护数据完整性和一致性的重要机制。它确保一个表中的数据与另一个表中的数据相关联,防止无效的数据引用。本文将详细介绍了外键约束的各个方面,并通过具体的代码示例进行演示。 1. 外键约束…...
linux环境变量配置文件区别 /etc/profile和~/.bash_profile
在 Linux 系统中,环境变量可以定义用户会话的行为,而这些变量的加载和配置通常涉及多个文件,如 ~/.bash_profile 和 /etc/profile。这些文件的作用和加载时机各有不同。以下是对它们的详细区别和用途的说明: 文章目录 1. 环境变量…...
C++----STL(vector)
vector的介绍 vector的文档介绍:cplusplus.com/reference/vector/vector/ 1.基本概念 简单来说,vector是表示可以改变大小的数组的顺序容器。使用连续的存储位置来存储元素,因此可以通过常规指针的偏移量来高效访问。 2.内部机制 vector…...
springboot项目适配电科金仓数据库
又接到了信创适配任务,话不多说,直接开始干货 首先安装一下电科金仓的数据库,直接官网下,对应的授权也下90天的专业版,客户肯定是整个采购,365天的开发版本连接数有限制 KES相关下载地址:电科金仓-成为世界卓越的数据库产品与服务提供商 安装就不做赘述了 启动数据库…...
C# 动态创建Label和ComboBox控件并修改Text获取Text
背景:在做项目的时候可能需要根据一定数量创建某些控件并修改其属性,本文以控件label、ConboBox控件进行动态创建。 程序运行前后的的Form动态图 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; …...
HP 笔记本重新安装 Windows 11 无法启动
相信你搜到这篇文章的时候, 你已经看过了网上各种关于如何在 HP 笔记本电脑上安装 Windows 11 的文章。你遇到的问题肯定不是网上那些文章讲的那么简单的问题。你遇到的一定不是你不懂如何安装 Windows,不懂如何对硬盘分区等等小白问题。 问题描述 问…...
BUUCTF_Web( XSS COURSE 1)xss
XSS即跨站脚本攻击(Cross-Site Scripting),是一种常见的网络安全漏洞. 定义 XSS攻击指攻击者在目标网站中注入恶意脚本,当用户访问该网站时,浏览器会执行这些恶意脚本,从而导致用户信息泄露、被控制等安全问…...
STM32补充——IAP
0 前置知识: FLASH相关内容:前往STM32补充——FLASH STM32三种烧录方式(看看就行): 1.ISP:In System Programming(在系统编程) 执行芯片厂商的 Bootloader 程序进入 ISP 模式&…...
APP加固的那些事
APP加固是保护APP代码逻辑的重要手段,通过隐藏、混淆、加密等操作提高软件的逆向成本,降低被破解的几率,保障开发者和用户利益。本文将介绍APP加固常见失败原因及解决方法,以及处理安装出现问题的情况和资源文件加固策略选择。 引…...
数据分析 基础定义
一、大数据的定义 数据分析是基于商业等目的,有目的的进行收集、整理、加工和分析数据,提炼有价值信息的过程。 大数据分析即针对海量的、多样化的数据集合的分析 大数据分析是一种利用大规模数据集进行分析和挖掘知识的方法。随着互联网、社交媒体、移动…...
PyTorch广告点击率预测(CTR)利用深度学习提升广告效果
目录 广告点击率预测问题数据集结构广告点击率预测模型的构建1. 数据集准备2. 构建数据加载器3. 构建深度学习模型4. 训练与评估 总结 广告点击率预测(CTR,Click-Through Rate Prediction)是在线广告领域中的重要任务,它帮助广告平…...
嵌入式入门(二)-STM32CubeMX项目开发
使用STM32CubeMX创建项目 本文使用STM32CubeMX模拟器创建一个嵌入式项目的详细流程。 New Project 根据型号搜索 搜索型号: STM32F103C8T6 启动项目 选择STM32F103C8T6后点击 Start Project 配置时钟 切换到 Clock Configuration 修改HCLK -->72MHZ 修改Input fr…...
MATLAB绘图时线段颜色、数据点形状与颜色等设置,介绍
MATLAB在绘图时,设置线段颜色和数据点的形状与颜色是提高图形可读性与美观性的重要手段。本文将详细介绍如何在 MATLAB 中设置这些属性。 文章目录 线段颜色设置单字母颜色表示法RGB 值表示法 数据点的形状与颜色设置设置数据点颜色和形状示例代码 运行结果小结 线段…...
Java菜鸟养成计划(java基础)--java运算符
java中的运算符 1、java中的运算符1.1 、 、-、 * 、/ 、 %1.2 、、-、 *、/、%1.3 、、--【自增\自减运算符】1.4、>、 <、 > 、< 、 、! 、! 1.5、&&、||、|、&1.6、&、|、~、^1.7、>> 、 <<、>>>位运算1.8、?:三目运算符…...
学习笔记——动态规划
递推 1.递推和动态规划有什么关系? 递推问题包括动态规划,动态规划一定是递推,递推不一定是动态规划。 动态规划是一种决策性的问题,是在状态中做最优决策的一种特殊递推算法,通常的问法包括求最大最小值等ÿ…...
蓝桥杯备考:红黑树与map和set
搜索二叉树 我们三种树只了解原理,不写代码,因为我们竞赛不做要求,只是为了使用set和map做铺垫 原理记不住,没关系,我们只要会各种操作的时间复杂度 二叉搜索树的定义 1若左子树非空,左子树所有结点的权…...
第二届生成式人工智能与信息安全国际学术会议(GAIIS 2025)
在线投稿: 学术会议-学术交流征稿-学术会议在线-艾思科蓝 【征文主题】(包括但不限于) 深度学习 自然语言处理 算法应用 计算机视觉 视觉识别 模式识别 强化学习 生成对抗网络 生成建模技术 语言预训练 视觉预训练 联合预训练…...
后端面试题分享第一弹(状态码、进程线程、TCPUDP)
后端面试题分享第一弹 1. 如何查看状态码,状态码含义 在Web开发和调试过程中,HTTP状态码是了解请求处理情况的重要工具。 查看状态码的步骤 打开开发者工具: 在大多数浏览器中,您可以通过按下 F12 键或右键单击页面并选择“检查…...
Python 常用运维模块之OS模块篇
Python 常用运维模块之OS模块篇 OS 模块获取当前工作目录更改当前工作目录返回当前目录路径返回上一级目录路径递归生成目录路径删除目录创建目录删除目录列出特定目录下文件和子目录删除某个特定文件重命名某个文件获取某个文件/目录的信息输出目录路径分隔符输出文件行终止符…...
前沿技术趋势洞察:2024年技术的崭新篇章与未来走向!
引言 时光飞逝,2024年已经来临,回顾过去一年,科技的迅猛进步简直让人目不暇接。 在人工智能(AI)越来越强大的今天,我们不再停留在幻想阶段,量子计算的雏形开始展示它的无穷潜力,Web …...
HTML语言的数据结构
HTML语言的数据结构 引言 HTML(超文本标记语言)是构建网页的标准语言。尽管HTML本身不是一种编程语言,它为我们提供了一种结构化的信息表示方法,使得网页内容能够有序地展现给用户。HTML的核心在于其标记(标签&#…...
怎么创建一个能在线测试php的html5网页?
代码示例: 一、搭建服务器环境 首先,你需要在服务器上搭建 PHP 运行环境。如果你使用的是 Linux 服务器,可以使用 Apache 或 Nginx 作为 Web 服务器,并安装 PHP 解释器。对于 Windows 服务器,可以使用 WAMP(…...
docker安装elk6.7.1-搜集nginx-json日志
docker安装elk6.7.1-搜集nginx-json日志 如果对运维课程感兴趣,可以在b站上、A站或csdn上搜索我的账号: 运维实战课程,可以关注我,学习更多免费的运维实战技术视频 0.规划 192.168.171.130 nginxfilebeat 192.168.171.131 …...
常见的社交媒体平台有哪些?
社交媒体平台有哪些?在跨境电商和全球营销的过程中,海外社交媒体平台是提高品牌曝光率的重要工具。为了有效管理多个平台的账户,并防止账户之间的关联问题,OKBrow指纹指纹浏览器凭借其强大的多账户管理、防关联技术和隐私保护功能…...
nslookup在内网渗透的使用
1. 什么是 nslookup? nslookup(Name Server Lookup)是一个用于查询 DNS(域名系统)记录的命令行工具。通过该工具,用户可以查询域名的解析结果,例如获取某个域名对应的 IP 地址或查找域名的相关记…...
Linux:修改用户名
Linux:修改用户名 0. 注意事项1.创建并切到临时用户tempuser2.更改用户名3.删除临时用户tempuser 更多内容:XiaoJ的知识星球 在Ubuntu系统中,更改用户名。 0. 注意事项 备份重要数据:在更改用户名之前,建议备份重要数…...
IP协议特性
在网络层中,最重要的协议就是IP协议,IP协议也有两个特性,即地址管理和路由选择。 1、地址管理 由于IPv4地址为4个字节,所以最多可以支持42亿个地址,但在现在,42亿明显不够用了。这就衍生出下面几个机制。…...
开发环境搭建-3:配置 nodejs 开发环境 (fnm+ node + pnpm)
在 WSL 环境中配置:WSL2 (2.3.26.0) Oracle Linux 8.7 官方镜像 node 官网:https://nodejs.org/zh-cn/download 点击【下载】,选择想要的 node 版本、操作系统、node 版本管理器、npm包管理器 根据下面代码提示依次执行对应代码即可 基本概…...
14_音乐播放服务_字典缓存避免重复加载
首先在游戏根入口下创建空节点 F2重命名为BGAudio 作为播放 背景音乐的对象 在BGAudio对象上挂载组件 AudioSource 关掉PlayOnAwake 因为我们需要通过代码来控制音效 音量大小设置为0.5 Ctrl d 再复制一份背景播放对象BGAudio 重命名为UIAudio 作为UI窗口操作的播放对象 创建…...
pgsql中处理数组类型字段
1、代码中存入和读取 需要使用自定义转换器 Slf4j public class ArrayTypeHandler extends BaseTypeHandler<List<String>> {Overridepublic void setNonNullParameter(PreparedStatement ps, int i, List<String> parameter, JdbcType jdbcType)throws SQL…...
新年好(Dijkstra+dfs/全排列)
1135. 新年好 - AcWing题库 思路: 1.先预处理出1,a,b,c,d,e到其他点的单源最短路,也就是进行6次Dijkstra 2.计算以1为起点的这6个数的全排列,哪种排列方式所得距离最小,也可以使用dfs 1.Dijkstradfs #define int long longusing …...
vscode导入模块不显示类型注解
目录结构: utils.py: import random def select_Jrandom(i:int, m:int) -> int:"""随机选择一个不等于 i 的整数"""j iwhile j i:j int(random.uniform(0, m))return jdef clip_alpha(alpha_j:float, H:float, L:f…...
Stable diffusion 都支持哪些模型
Stable Diffusion 支持多种模型,主要包括以下几类: 官方基础模型: SD 1.x 系列(如 Stable Diffusion 1.4、1.5):这是最经典的模型,适合多种通用场景,使用简单且易于上手。SD 2.x 系列…...
C语言操作符(上)
操作符 一,操作符的分类1,算数操作符2,赋值操作符3,逻辑操作符4,条件操作符4,单目操作符5,函数调用和下表访问操作符 二,原码反码补码三,移位操作符1,左移操作…...
Linux TCP 之 RTT 采集与 RTO 计算
我们来看看 Linux TCP 采集 RTT 的函数 tcp_rtt_estimator,看注释,充满了胶着。 但在那个谨慎的年代,这些意味着什么? RTT 最初仅用于 RTO 的计算而不是用于调速,RTO 的计算存在两个问题,如果过估&#x…...
智慧水务管网在线监测平台(Axure高保真原型)
智慧水务管网在线监测平台是一种集成了物联网、大数据、云计算和人工智能等技术的综合管理系统。平台的主要目的是提高水务管理的效率和安全,确保供水系统的稳定运行。 智慧水务管网在线监测平台的主要特点和功能: 综合监测与管理:智慧水务平…...
Kubernetes 架构图和组件
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:历代文学,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计…...
不建模,无代码,如何构建一个3D虚拟展厅?
在数字化浪潮的推动下,众多企业正积极探索线上3D虚拟展厅这一新型展示平台,旨在以更加生动、直观的方式呈现其产品、环境与综合实力。然而,构建一个既专业又吸引人的3D虚拟展厅并非易事,它不仅需要深厚的技术支持,还需…...
MMDetection学习系列(5)——Mask R-CNN深度探索与实战指南
目录 实例分割 R-CNN系列 R-CNN Fast R-CNN Faster R-CNN Mask R-CNN Mask R-CNN 头部结构细节 两阶段架构 损失函数 掩码 RoIAlign Faster R-CNN中的RoIPool Mask R-CNN 中的RoIAlign 实例分割实验 消融研究 定性结果 SOTA 方法比较 Coovally AI模型训练与…...
Oracle SQL: TRANSLATE 和 REGEXP_LIKE 的知识点详细分析
目录 前言1. TRANSLATE2. REGEXP_LIKE3. 实战 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 1. TRANSLATE TRANSLATE 用于替换字符串中指定字符集的每个字符,返回替换后的字符串 逐一映射输入字…...
PHP语言的软件工程
PHP语言的软件工程 引言 软件工程是计算机科学中的一个重要分支,它涉及软件的规划、开发、测试和维护。在现代开发中,PHP作为一种流行的服务器端脚本语言,广泛应用于网页开发和各种企业应用中。本文将深入探讨PHP语言在软件工程中的应用&am…...
量变引起质变
量变引起质变,这个是最本质的规律,重复进行一件事情,这件事情就会越来越完善,越来越完美,哪怕是菜鸟,重复多了就是大佬。 我从说话结结巴巴,到说话流畅,只是用了15天直播写代码&…...
【专题】为2025制定可付诸实践的IT战略规划报告汇总PDF洞察(附原数据表)
原文链接:https://tecdat.cn/?p39055 在当今瞬息万变的商业环境中,制定有效的 IT 战略规划对于企业的成功与可持续发展至关重要。本报告深入探讨了制定 IT 战略规划的关键活动,旨在为企业和决策者提供全面且实用的指导。 Gartner的《为202…...
Linux内核 -- Linux 的 BIO框架
深入理解 Linux 的 BIO 在 Linux 内核中,BIO(Block I/O)是块层(block layer)用于描述块设备 I/O 请求的核心数据结构。它在文件系统与块设备驱动程序之间充当“载体”,负责把数据页及相关元数据从上层提交…...
Spring WebFlux 和 Spring MVC 的主要区别是什么?
Spring WebFlux 和 Spring MVC 都是 Spring 框架中用于构建 Web 应用的模块,但它们在设计理念、编程模型、性能特性等方面存在显著区别。以下是它们的主要区别: ### 1. **编程模型** - **Spring MVC**: - **同步和阻塞**:Spri…...
卸载和安装Git小乌龟、git基本命令
卸载 Git 打开控制面板: 按 Win R 打开运行对话框,输入 control 并按回车键。或直接在功能搜索里搜索“控制面板”。在控制面板中,选择“程序”或“程序和功能”。 查找并卸载 Git: 在程序列表中找到“Git”或“Git for Windows…...
正向代理与反向代理的主要区别
正向代理与反向代理的主要区别 正向代理与反向代理都是中间服务器 特性正向代理反向代理位置客户端和目标服务器之间客户端和后端服务器之间客户端感知客户端知道代理的存在,并主动连接代理客户端不知道代理的存在,认为直接连接目标服务器主要用途隐藏…...
vue组件学习三(插槽)
目录 1、匿名插槽2、渲染作用域3、默认内容4、具名插槽5、条件插槽6、作用域插槽7、具名作用域插槽最后 1、匿名插槽 父组件调用Mycomponet1组件 <Mycomponet1>click me </Mycomponet1>子组件为 <button><slot></slot> </button>最后结…...
Django 的 `Meta` 类和外键的使用
Django 的 Meta 类和外键的使用 1. Meta 类的常用选项2. 外键(ForeignKey)字段的使用2.1 基本用法2.2 ForeignKey 参数2.3 外键删除选项(on_delete) 3. 外键和查询3.1 获取作者的所有书籍3.2 通过书籍查找作者3.3 使用 select_rel…...