大模型Prompt-Tuning技术入门

Prompt-Tuning方法

在这里插入图片描述


1 NLP任务四种范式

目前学术界一般将NLP任务的发展分为四个阶段,即NLP四范式:

  • 第一范式:基于「传统机器学习模型」的范式,如TF-IDF特征+朴素贝叶斯等机器算法;
  • 第二范式:基于「深度学习模型」的范式,如word2vec特征+LSTM等深度学习算法,相比于第一范式,模型准确有所提高,特征工程的工作也有所减少;
  • 第三范式:基于「预训练模型+fine-tuning」的范式,如Bert+fine-tuning的NLP任务,相比于第二范式,模型准确度显著提高,模型也随之变得更大,但小数据集就可训练出好模型;
  • 第四范式:基于「预训练模型+Prompt+预测」的范式,如Bert+Prompt的范式相比于第三范式,模型训练所需的训练数据显著减少。

在整个NLP领域,整个发展历程是朝着精度更高、少监督,甚至无监督的方向发展的。而 Prompt-Tuning是目前学术界向这个方向进军最新也是最火的研究成果。


2 Fine-Tuning(微调)💥

Fine-Tuning属于一种迁移学习方式,在自然语言处理(NLP)中,Fine-Tuning是用于将预训练的语言模型适应于特定任务或领域。Fine-Tuning的基本思想是采用已经在大量文本上进行训练的预训练语言模型,然后在小规模的任务特定文本上继续训练它.

经典的Fine-Tuning方法包括将预训练模型与少量特定任务数据一起继续训练。在这个过程中,预训练模型的权重被更新,以更好地适应任务。所需的Fine-Tuning量取决于预训练语料库和任务特定语料库之间的相似性。如果两者相似,可能只需要少量的Fine-Tuning,如果两者不相似,则可能需要更多的Fine-Tuning.

但是,在大多数下游任务微调时,下游任务的目标和预训练的目标差距过大导致提升效果不明显(过拟合),微调过程中需要依赖大量的监督语料等等。至此,以GPT3、PET等为首的模型提出一种基于预训练语言模型的新的微调范式–Prompt-Tuning.该方法的目的是通过添加模板的方法来避免引入额外的参数,从而让模型可以在小样本(few-shot)或者零样本(zero-shot)场景下达到理想的效果。

Prompt-Tuning主要解决传统Fine-Tuning方式的两个痛点:

  • 降低语义偏差:预训练任务主要以MLM为主,而下游任务则重新引入新的训练参数,因此两个阶段目标差异较大。因此需要解决Pre-Training和Fine-Tuning之间的Gap。
  • 避免过拟合:由于Fine-Tuning阶段需要引入新的参数适配相应任务,因此在样本数量有限的情况下容易发生过拟合,降低模型泛化能力。因此需要解决预训练模型的过拟合能力。

3 Prompt-Tuning(提示微调)

3.1 什么是Prompt?💥

prompt顾名思义就是“提示”的意思,应该有人玩过你画我猜这个游戏吧,对方根据一个词语画一幅画,我们来猜他画的是什么,因为有太多灵魂画手了,画风清奇,或者你们没有心有灵犀,根本就不好猜啊!这时候屏幕上会出现一些提示词比如3个字,水果,那岂不是好猜一点了嘛,毕竟3个字的水果也不多呀。看到了吧,这就是prompt的魅力.

3.2 Prompt-Tuing定义💥

基于Fine-Tuning的方法是让预训练模型去迁就下游任务,而基于Prompt-Tuning的方法可以让下游任务去迁就预训练模型, 其目的是将Fine-tuning的下游任务目标转换为Pre-training的任务。那么具体如何工作呢?我们以一个二分类的情感分析为例子,进行简单理解:

  • eg: 定一个句子[CLS] I like the Disney films very much. [SEP]
  • 传统的Fine-tuning方法: 将其通过BERT的Transformer获得 [CLS]表征之后再喂入新增加的MLP分类器进行二分类,预测该句子是积极的(positive)还是消极的(negative),因此需要一定量的训练数据来训练。
  • Prompt-Tuning执行步骤:
    • 1.构建模板(Template Construction): 通过人工定义、自动搜索、文本生成等方法,生成与给定句子相关的一个含有[MASK]标记的模板。例如It was [MASK].,并拼接到原始的文本中,获得Prompt-Tuning的输入:[CLS] I like the Disney films very much. [SEP] It was [MASK]. [SEP]。将其喂入BERT模型中,并复用预训练好的MLM分类器(在huggingface中为BertForMaskedLM),即可直接得到[MASK]预测的各个token的概率分布。
    • 2.标签词映射(Label Word Verbalizer) :因为[MASK]部分我们只对部分词感兴趣,因此需要建立一个映射关系。例如如果[MASK]预测的词是“great”,则认为是positive类,如果是“terrible”,则认为是negative类。
    • 3.训练:根据Verbalizer,则可以获得指定label word的预测概率分布,并采用交叉信息熵进行训练。此时因为只对预训练好的MLM head进行微调,所以避免了过拟合问题。

注意思考:不同的句子应该有不同的template和label word,没错,因为每个句子可能期望预测出来的label word都不同,因此如何最大化的寻找当前任务更加合适的template和label word是Prompt-tuning非常重要的挑战。

其实我们可以理解,引入的模板和标签词本质上属于一种数据增强,通过添加提示的方式引入先验知识。


4 Prompt-Tuning技术发展历程


Prompt-Tuning自GPT-3被提出以来,从传统的离散、连续的Prompt构建、走向面向超大规模模型的In-Context Learning、Instruction-tuning和Chain_of_Thought.💬


5 Prompt-Tuning的主要方法

Prompt-Tuning具体如何实现,其有什么困难和挑战?这里我们挑选一些具有代表性的.

5.1 Prompt-Tuning的鼻祖----GPT3和PET

Prompt-Tuning最早是在GPT-3《Language Models are Few-Shot Learners》中被提出来的。其开创性的提出了In-context Learning(ICL, 情景学习)的思想。即无须修改模型即可实现few-shot、zero-shot的learning。同时引入了Demonstrate Learning, 即让模型知道与标签相似的语义描述,提升推理能力.

  • In-context Learning: Prompt前身,通过从训练集挑选一些样本作为任务的提示,来实现免参数更新的模型预测。
  • Demonstration Learning:添加一些新的样本作为提示。模型可以根据新添加的样例句子就可以"照猫画虎"式的预测结果了.

常用的In-context learning方法包括:

  • zero-shot learning
    • 定义: 给出任务的描述, 然后提供测试数据对其进行预测, 直接让预训练好的模型去进行任务测试.
    • 示例: 向模型输入“这个任务要求将中文翻译为英文. 销售->”, 然后要求模型预测下一个输出应该是什么, 正确答案应为“sell”.
  • one-shot learning
    • 定义: 在预训练和真正翻译的样本之间, 插入一个样本做指导. 相当于在预训练好的结果和所要执行的任务之间, 给一个例子, 告诉模型英语翻译为法语, 应该这么翻译.
    • 示例: 向模型输入“这个任务要求将中文翻译为英文. 你好->hello, 销售->”, 然后要求模型预测下一个输出应该是什么, 正确答案应为“sell”.
  • few-shot learning
    • 定义: 在预训练和真正翻译的样本之间, 插入多个样本(一般10-100条)做指导. 相当于在预训练好的结果和所要执行的任务之间, 给多个例子, 告诉模型应该如何工作.
    • 示例: 向模型输入“这个任务要求将中文翻译为英文. 你好->hello, 再见->goodbye, 购买->purchase, 销售->”, 然后要求模型预测下一个输出应该是什么, 正确答案应为“sell”.

但是这类方法有一个明显的缺陷是——其建立在超大规模的预训练语言模型上,此时的模型参数数量通常超过100亿,在真实场景中很难应用,因此众多研究者开始探索GPT-3的这套思路在小规模的语言模型(如Bert)上还是否适用?事实上,这套方法在小规模的语言模型上是可行的,但是需要注意:

  • 模型参数规模小了,prompt直接用在zero-shot上效果会下降,因此需要考虑将In-context Learning和Demonstrate Learning应用在Fine-Tuning阶段,也就是后面要讲到的Prompt-Tuning。
  • GPT-3中提供的提示(Natural Language Prompt)过于简单,泛化性能低。

因此,PET模型问世.


5.2 PET模型

PET(Pattern-Exploiting Training)出自《Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference》(EACL2021),根据论文题目则可以猜出,Prompt-Tuning启发于文本分类任务,并且试图将所有的分类任务转换为与MLM一致的完形填空。


PET模型提出两个很重要的组件:

  • Pattern(Template) :记作T, 即上文提到的Template,其为额外添加的带有[mask]标记的短文本,通常一个样本只有一个Pattern(因为我们希望只有1个让模型预测的[mask]标记)。由于不同的任务、不同的样本可能会有其更加合适的pattern,因此如何构建合适的pattern是Prompt-Tuning的研究点之一
  • Verbalizer :记作V, 即标签词的映射,对于具体的分类任务,需要选择指定的标签词(label word)。例如情感分析中,我们期望Verbalizer可能是 (positive和negative是类标签)。同样,不同的任务有其相应的label word,但需要注意的是,Verbalizer的构建需要取决于对应的Pattern。因此 如何构建Verbalizer是另一个研究挑战

上述两个组件被称为Pattern-Verbalizer-Pair(PVP),在后续的大多数研究中均采用这种PVP组件。基于这套框架,目前的研究主要关注如何选择或构建合适的Pattern和Verbalizer 。一种简单的方法是根据特定任务的性质和先验知识人工设计模板。例如上文例子中通常会选择It was [mask]. 作为情感分析类的模板。人工构建方法虽然直观简单,但是致命问题也很突出。有相关工作在实验中发现,在同样的数据集和训练条件下, 选择不同的Pattern和Verbalizer会产生差异很大的结果 ,如下图所示(一般情况下,Template等同于Pattern,Verbalizer等同于Label word)


在相同Pattern时,选择不同的label word对结果影响很大,同理,不同的Pattern对结果影响也很明显,在真正应用中,调参者需要尝试多个不同的模板和标签词以穷举出最好的结果,并不能充分发挥Prompt简单快捷的优势。因此我们总结人工设计方法的缺陷:

  • 采用人工构建的方法成本高,需要与领域任务相关的先验知识;
  • 人工设计的Pattern和Verbalizer不能保证获得最优解,训练不稳定,不同的PVP对结果产生的差异明显,方差大;
  • 在预训练阶段MLM任务并非完全按照PVP的模式进行训练的(比如MLM训练通常都是长文本,mask的数量也并非只有1个,预测的概率分布也并非是有限的),因此人工构建的Pattern和Verbalizer使得Prompt-Tuning与MLM在语义和分布上依然存在差异。

因此如何能够自动地挑选合适的PVP? 目前构建Verbalizer的方法也有很多,不过这里不进行详细解释,我们主要着重介绍构建Pattern的方法:Prompt-Tuning.接下来我们根据使用场景的不同,分别介绍几种成熟的Prompt-Tuning方法.


5.3 Prompt-Oriented Fine-Tuning

Prompt-Oriented Fine-Tuning训练方法的本质是将目标任务转换为适应预训练模型的预训练任务,以适应预训练模型的学习体系。


例如我们利用BERT模型来实现情感分类任务:

传统Fine-Tuning方式: 将训练文本经过BERT编码后,生成向量表征,再利用该向量表征,连接全连接层,实现最终的情感类别识别。但是这种方式存在一个显式的弊端:预训练任务与下游任务存在gap。回忆BERT的预训练任务:MLM与NSP,简单来说,MLM任务是通过分类模型识别被MASK掉的词,类别大小即为整个词表大小;NSP任务是预测两个句子之间的关系。

而Prompt-Oriented Fine-Tuning方式: 将情感分类任务转换为类似于MLM任务的[MASK]预测任务,具体来说,我们构建如下的prompt文本: prompt = It was [MASK]. 将prompt文本与输入文本text = The film is attractive.进行拼接生成: It was [MASK].The film is attractive.,输入预训练模型中,训练任务目标和MLM任务的目标一致,即识别被[MASK]掉的词。通过这种方式,可以将下游任务转换为和预训练任务较为一致的任务,实验证明,Prompt-Oriented Fine-Tuning相对于常规的Fine-Tuning,效果会得到明显提升(Prompt进行情感分类)。


基于上述内容可以了解,在Prompt-Oriented Fine-Tuning方法中,预训练模型参数是可变的。其实将Prompt-Oriented Fine-Tuning方法放在Prompt-Tuning这个部分合理也不合理,因为它其实是Prompt-Tuning+Fine-Tuning的结合体,将它视为Fine-Tuning的升级版是最合适的。

Prompt-Oriented Fine-Tuning方法在BERT类相对较小的模型上表现较好,但是随着模型越来越大,如果每次针对下游任务,都需要更新预训练模型的参数,资源成本及时间成本都会很高,因此后续陆续提出了不更新预训练模型参数,单纯只针对prompt进行调优的方法,例如Hard PromptSoft Prompt


5.4 Hard Prompt & Soft Prompt

Hard Prompt (离散提示):是一种固定的提示模板,通过将特定的关键词或短语(真实的文本字符串)直接嵌入到文本中,引导模型生成符合要求的文本。这种提示方法的特点在于,提示模板是固定的,不能根据不同的任务和需求进行调整。

  • 上述我们讲述的PET 是一种较为经典的硬模板方法,该方法主要思想:将问题建模成一个完形填空问题,然后优化最终的输出词。虽然 PET 也是在优化整个模型的参数,但是相比于传统的 Finetuning 方法,对数据量需求更少
  • 但是硬模板产生依赖两种方式:根据经验的人工设计 & 自动化搜索;从上图介绍中可以看出硬模板 对于prompt,改变prompt中的单个单词 会给实验结果带来巨大的差异, 所以也为后续优化提供了方向,如索性直接放弃硬模板,去优化 prompt token embedding即Soft Prompt。

Soft Prompt (连续提示) :是指通过给模型输入一个可参数化的提示模板,从而引导模型生成符合特定要求的文本。这种提示方法的特点在于,提示模板中的参数可以根据具体任务和需求进行调整,以达到最佳的生成效果。

接下来,我们主要针对soft Prompt方式进行讲述:


5.4.1 连续提示模板

Soft Prompt目的其将模板转换为可以进行优化的连续向量,换句话说,我们不需要显式地指定这些模板中各个token具体是什么,而只需要在语义空间中表示一个向量即可。


这样,不同的任务、数据可以自适应地在语义空间中寻找若干合适的向量,来代表模板中的每一个词,相较于显式的token,这类token称为 伪标记(Pseudo Token) 。下面给出基于连续提示的模板定义:

假设针对分类任务,给定一个输入句子 x x x,连续提示的模板可以定义为 T = [ x ] , [ v 1 ] , [ v 2 ] , . . . , [ v n ] [ M A S K ] T=[x],[v1],[v2],...,[vn][MASK] T=[x],[v1],[v2],...,[vn][MASK]:其中[v1]则是伪标记,其仅代表一个抽象的token,并没有实际的含义,本质上是一个向量。

总结来说:Soft Prompt方法,是将模板变为可训练的参数,不同的样本可以在连续的向量空间中寻找合适的伪标记,同时也增加模型的泛化能力。因此,连续法需要引入少量的参数并在训练时进行参数更新,但预训练模型参数是不变的,变的是prompt token对应的词向量(Word Embedding)表征及其他引入的少量参数。


目前基于连续提示的Prompt-Tuning的实现方法,以下列三篇论文为代表,分别作简要介绍:

  • 《The Power of Scale for Parameter-Efficient Prompt Tuning》:代表方法为Prompt Tuning
  • 《GPT Understands, Too》:代表方法为P-tuning
  • 《PPT: Pre-trained Prompt Tuning for Few-shot Learning》:代表方法PPT

5.4.2 Prompt Tuning(NLG任务)

Prompt Tuning(基于T5模型来做的)方法为每一个输入文本假设一个固定前缀提示,该提示表由神经网络参数化,并在下游任务微调时进行更新,整个过程中预训练的大模型参数被冻结。


形式化的描述如下:

给定 n n n个tokens,记作​ x 1 , . . . , x n x1, ...,xn x1,...,xn ,通过一个预训练模型对应的embedding table,可以将​ n n n个token表示为一个向量矩阵​ ( X e − > R n ∗ e ) (X_e->R^{n*e}) (Xe>Rne),其中​ e e e是向量的维度(其与预训练模型的配置有关,例如BERT-base是768)。连续模板中的每个伪标记​ v i v_i vi可以视为参数,也可以视为一个token,因此,可以通过另一个embedding table获得​ p p p个伪标记token标记为向量矩阵​ ( P e − > R p ∗ e ) (P_e->R^{p*e}) (Pe>Rpe),然后将文本和Prompt拼接获得新的输入​ [ P e : X e ] − > R ( p + n ) ∗ e [P_e:X_e]->R^{(p+n)*e} [Pe:Xe]>R(p+n)e.这个新的输入将会喂入一个MLP获得新的表征。注意,只有prompt对应的向量表征参数P ( P e − > R p ∗ e ) (P_e->R^{p*e}) (Pe>Rpe)会随着训练进行更新


每个伪标记的初始化可以有下列几种情况:

  • 最简单的是随机初始化:即随机初始化一个面向所有伪标记的embedding table,可采用正态分布或者均匀分布等;
  • 每个token使用预训练模型已有的embedding table进行初始化,此时,每一个伪标记先随机指定词表中的一个词,并取对应词的embedding作为这个伪标记的初始化;
  • 在分类任务上,使用label word(verbalizer)对应的embedding作为初始化,可以有效限制模型输出的是预设的输出类对应的word。

因此,在训练过程中,每个伪标记以及对应的MLP参数都可以得到训练,对于不同的输入句子 ,这些伪标记对应的embedding也各不相同,达到了预期的目的。

Prompt Tuning特点:

  • 优点:

    • 大模型的微调新范式
    • 模型参数规模大了之后,可以将大模型参数固定,指定附加参数来适配下游任务,而且适配性能基本和全参数微调相当。
  • 缺点:

    • 在小样本学习场景上表现不太行
    • 收敛速度比较慢
    • 调参比较复杂
5.4.3 P-tuning(NLU任务)

P-tuning的详细内容请参考论文解读:GPT Understands, Too。

P-tuning是另一个具有代表性的连续提示方法,主要针对的是NLU任务,方法图如下所示(图中的 P i P_i Pi等价于上文的 v i v_i vi ,表示伪标记), 谷歌于2021年发表。


P-Tuning方法中四个技巧点:

  • 考虑到这些伪标记的相互依赖关系 :认为 [ P 1 ] [P_1] [P1] [ P 2 ] [P_2] [P2]是有先后关系的,而transformer无法显式地刻画这层关系,因此引入Prompt Encoder,实际过程中采用一层Bi-LSTM+两个前馈神经网络组成;
  • 指定上下文词 :如果模板全部是伪标记,在训练时无法很好地控制这些模板朝着与对应句子相似的语义上优化,因此选定部分具有与当前句子语义代表性的一些词作为一些伪标记的初始化(例如上图中“capital”、“Britain”等);
  • 重参数(Reparameterization) :具体到代码实现上,P-tuning先通过一个Prompt Encoder表征这些伪标记后,直接将这些新的表征覆盖到对应的embedding table上,换句话说,Prompt Encoder只在训练时候会使用到,而在推理阶段则不再使用。
  • 混合提示(Hydride Prompt) :将连续提示与离散token进行混合,例如 [ x ] [ i t ] [ v 1 ] [ m a s k ] ​ [x][it][v1][mask]​ [x][it][v1][mask]

P-Tuning V2是升级版本,该方法在模型的每一层都应用连续的 prompts 并对 prompts 参数进行更新优化。同时,该方法是也是针对 NLU 任务优化和适配的。

5.4.4 PPT(Pre-trained Prompt Tuning)

Prompt-Tuning通常适用于低资源场景,但是由于连续的模板是随机初始化的,即其存在新的参数,少量样本可能依然很难确保这些模板被很好地优化。因此简单的方法就是对这些连续的模板也进行预训练。PPT旨在通过先让这些连续提示在大量无标注的预训练语料进行预训练(注意,预训练过程中,Pre-train-model参数固定不变,只改变soft prompt),然后将其加载到对应下游任务的PLM上进行训练,如下图所示(图中的 P ​ P​ P即连续的提示模板, < X > ​ <X>​ <X>并表示为mask token):

每一类任务都会预训练一个soft Prompt, 预训练后的soft Prompt可以直接运用到相似任务中

  • 首先在大量无标注语料上进行预训练,获得训练好的连续提示(初始化下游微调任务的soft prompt);
  • 对下游任务(是非问答、NLI、文本匹配等),加载这些训练好的提示之后,进行微调,或者直接进行zero-shot预测。

💫PPT的特点:

  • 优点:
    • 预训练soft-prompt带来了 小样本学习场景上的显著提升
    • 缓解了prompt-tuning收敛慢的问题
  • 缺点
    • 合并同类人物需要人工设计

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

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

相关文章

解决CentOS的yum命令失效的问题

近日笔者对一台装有 CentOS 7.9 系统的服务器反复折腾&#xff0c;玩到最后发现 yum 命令用不了&#xff0c;总是报下面的错误信息&#xff1a; There was a problem importing one of the Python modules required to run yum. The error leading to this problem was:/usr/l…

Vitis HLS 学习笔记--Vitis Accelerated Libraries介绍

1. 简介 Vitis Accelerated Libraries&#xff0c;包含很多现成的库&#xff0c;这些库都是开源的&#xff0c;也就是说代码是公开的&#xff0c;而且已经优化过&#xff0c;可以让程序运行得更快。你不需要改变太多你的代码&#xff0c;就能让你的程序速度提升。 这些库有很…

ROS 自动驾驶多点巡航

ROS 自动驾驶多点巡航&#xff1a; 1、首先创建工作空间&#xff1a; 基于我们的artca_ws&#xff1b; 2、创建功能包&#xff1a; 进入src目录&#xff0c;输入命令: catkin_create_pkg point_pkg std_msgs rospy roscpptest_pkg 为功能包名&#xff0c;后面两个是依赖&a…

H5的3D展示有可能代替PC传统3D展示么?

H5的3D展示技术正在快速发展&#xff0c;并且随着5G网络的普及和手机硬件性能的提升&#xff0c;H5的3D展示在某些方面已经能够接近甚至超越传统PC上的3D展示效果&#xff0c;比如 博维数孪 的渲染能力及效果。但H5和PC的3D展示互相之间是各有优势领域和行业支持&#xff0c;短…

齐普夫定律在循环神经网络中的语言模型的应用

目录 齐普夫定律解释公式解释图与公式的关系代码与图的分析结论 使用对数表达方式的原因1. 线性化非线性关系2. 方便数据可视化和分析3. 降低数值范围4. 方便参数估计公式详细解释结论 来自&#xff1a;https://zh-v2.d2l.ai/chapter_recurrent-neural-networks/language-model…

自动驾驶---Perception之视觉点云雷达点云

1 前言 在自动驾驶领域&#xff0c;点云技术的发展历程可以追溯到自动驾驶技术的早期阶段&#xff0c;特别是在环境感知和地图构建方面。 在自动驾驶技术的早期技术研究中&#xff0c;视觉点云和和雷达点云都有出现。20世纪60年代&#xff0c;美国MIT的Roberts从2D图像中提取3D…

手把手教程本地调试Datax

背景&#xff1a;使用Datax做数仓同步数据得工具&#xff0c;有时需要自己开发或者修改某个reader或writer插件&#xff0c;那么本地调试就很重要。 一. 下载 从GitHub上下载或者clone下来Datax项目。 https://github.com/alibaba/DataX 找到Core模块&#xff0c;运行入口就…

windows 下 docker 入门

这里只是具体过程&#xff0c;有不清楚的欢迎随时讨论 1、安装docker &#xff0c;除了下一步&#xff0c;好像也没有其他操作了 2、安装好docker后&#xff0c;默认是运行在linux 下的&#xff0c;这时我们需要切换到windows 环境下&#xff0c; 操作&#xff1a;在右下角d…

知从科技获得ASPICE CL3认证证书

近日&#xff0c;知从科技正式通过Automotive SPICE CL3&#xff08;汽车软件过程改进及能力评定&#xff09;评估认证&#xff0c;这是继23年3月通过ASPICE CL2级评估的又一个重要里程碑。ASPICE CL3级是目前国内汽车软件领域最高的评估认证等级&#xff0c;这标志着知从科技的…

hw面试总结

在这里给大家推荐一个阿里云的活动&#xff0c;可白嫖一年2h4g服务器 活动链接&#xff1a;https://university.aliyun.com/mobile?clubTaskBizsubTask…11404246…10212…&userCodeks0bglxp 一、漏洞分析 1.SQL注入 原理&#xff1a; 当Web应用向后台数据库传递SQL…

C#|Maui|BootstrapBlazor|Bootstrap Blazor 组件库改模板 | Bootstrap Blazor 组件库改布局,该怎么改?

先copy一个项目下来&#xff1a;Bootstrap Blazor 组件库 一套基于 Bootstrap 和 Blazor 的企业级组件库 发现不是很满足我的需求&#xff0c;我要把右下角的admin移动到左边去&#xff0c;该怎么移动&#xff1f; 先改代码 点进去到Layout.razor 文档&#xff0c;改成如下&am…

净化机应用领域广泛 美国是我国净化机主要出口国

净化机应用领域广泛 美国是我国净化机主要出口国 净化机&#xff0c;又称为空气清洁设备或空气清新机&#xff0c;是一种专门设计用于滤除或杀灭空气污染物、提升空气清洁度的装置。净化机具备高效的过滤功能&#xff0c;能够滤除空气中的悬浮微粒、细菌、病毒和花粉等污染物&a…

KTH4603 3D Hall传感器在强磁入侵检测中的应用

背景介绍 电子系统一直面临强磁干扰的威胁&#xff0c;保护这些设备免受强磁干扰成为一个重要课题。非法者通过施加强磁意图篡改或干扰它们&#xff0c;窃取产品或服务。强磁场可以对电子设备产生严重的影响&#xff0c;包括但不限于&#xff1a;数据损坏、功能故障、安全隐患…

Ubuntu的文件权限介绍

Linux系统是一个多用户系统&#xff0c;每个用户都会创建自己的文件。为了防止其他人擅自改动他人的文件&#xff0c;需要拥有一套完善的文件保护机制。在Linux系统中&#xff0c;这种保护机制就是文件的访问权限。文件的访问权限决定了谁可以访问和如何访问特定的文件。 为了…

深度学习500问——Chapter11:迁移学习(1)

文章目录 11.1 迁移学习基础知识 11.1.1 什么是迁移学习 11.1.2 为什么需要迁移学习 11.1.3 迁移学习的基本问题有哪些 11.1.4 迁移学习有哪些常用概念 11.1.5 迁移学习与传统机器学习有什么区别 11.1.6 迁移学习的核心及度量准则 11.1.7 迁移学习与其他概念的区别 11.1.8 什么…

服务器再升级!64线程服务器震撼上线,全新渲染体验等你来解锁

秉承着 “科技赋能创意&#xff0c;连接创造价值”的使命&#xff0c; 经过精心的策划和筹备&#xff0c; 蓝海创意云 64线程服务器&#xff0c; 以全新的面貌&#xff0c;优惠的价格&#xff0c; 与大家见面了&#xff01; 诚邀您一起&#xff0c;解锁全新的渲染体验&am…

《软件定义安全》之八:软件定义安全案例

第8章 软件定义安全案例 1.国外案例 1.1 Fortinet&#xff1a;传统安全公司的软件定义方案 Fortinet的软件定义安全架构强调与数据中心的结合&#xff0c;旨在将安全转型为软件定义的模式&#xff0c;使安全运维能够与数据中心的其他部分一样灵活、弹性。在Fortinet看来&…

亿达四方:一站式SolidWorks代理服务,打造设计竞争力

在当今瞬息万变的设计与制造领域&#xff0c;高效、精准的3D设计软件已成为推动企业创新与发展的核心驱动力。作为业界知名的SolidWorks一站式代理服务商&#xff0c;亿达四方致力于为企业搭建从软件采购到技术应用的全方位桥梁&#xff0c;全面赋能设计团队&#xff0c;助力企…

stable-diffusion.cpp 文字生成图片

纯 C/C 中 [Stable Diffusion] 的推断 https://github.com/CompVis/stable-diffusion ## 特点 - 基于 [ggml]&#xff08;https://github.com/ggerganov/ggml&#xff09; 的普通 C/C 实现&#xff0c;工作方式与 [llama.cpp]&#xff08;https://github.com/ggerganov/llam…

微信小程序请求request封装

公共基础路径封装 // config.js module.exports {// 测试BASE_URL: https://cloud.chejj.cn,// 正式// BASE_URL: https://cloud.mycjj.com };请求封装 // request.js import config from ../config/baseUrl// 请求未返回时的loading const showLoading () > wx.showLoadi…