Alleviating Hallucination in Multi-Modal Large Language Models

news2024/12/21 20:28:40

OPERA: Alleviating Hallucination in Multi-Modal Large Language Models via Over-Trust Penalty and Retrospection-Allocation

文章汇总

当前的问题发现

image.png
如图,在模型生成幻觉内容时,最后一层的 Self-Attention 权重大概率会在幻觉部分之前呈现出明显的“柱状”特征。这一现象非常类似于人类在处理长文本时也经常使用的阶段性总结的习惯
由于现有多模态大模型的基座取自大语言模型,其因果语言模型的特点使其在浅层时将前文 token 的信息聚合到 summary token,同时在深层时主要利用 summary token 中聚合的信息来预测整个序列的下一个 token(见下图图 a)。
image.png
然而,如图(b)和图©所示,随着序列中 summary token 数量的增多,子句的幻觉程度也在逐渐提升。这说明了在序列中出现越多 summary token 会越容易让模型输出幻觉内容。
因此,越往后生成的 token 越容易忽视 vision tokens,并“过度信赖”某些 summary tokens,从而产生幻觉内容。研究者们将这一现象描述为 “partial over-trust”,并发现大模型的这种阶段性总结可能是导致幻觉问题的一大“元凶”!

动机

对summary token进行惩罚甚至不将其考虑在外

解决办法

预测下一个token时加上summary token的惩罚

image.png
对应其中一个Local Window Attention的Over-trust Penalty如下:
image.png
每个注意力权重乘上 w i , j w_{i,j} wi,j乘上 σ \sigma σ,之后同一列累乘得到 ϕ ( w < t ) \phi(w_{< t}) ϕ(w<t)
通过这种方式,我们将预测限制在候选集内,并将 ϕ ( w ≤ t ) \phi(w_{\le t}) ϕ(wt)与模型logits结合起来预测下一个令牌,即:
image.png

回滚策略

由于这种“over-trust”的特征具有“滞后性”,即只有在解码的过程中输出了若干 token 之后才能发现这样的特征。为了解决这种滞后带来的局限性,研究者们还提出了“回退-再分配”的策略。
具体来说,可以计算最近几个 token 的得分向量的最大值下标,并检查该下标连续出现的次数是否大于一定阈值 r r r。如果高于阈值 r r r,则将当前序列的解码过程回退到这一下标所在 token 的位置,并重新选择词表中概率次高的词(除了之前已经选择的词之外)
image.png
值得注意的是,由于后续回滚可能将比之前的回滚更远,因此我们手动指定回滚位置必须单调地不减小,即后面回滚的位置不能比之前回滚的位置还要前

摘要

幻觉是多模态大型语言模型(MLLMs)面临的普遍挑战,严重阻碍了它们在需要精确判断的现实世界中的使用。现有的方法通过使用特定设计的数据进行培训或使用来自其他来源的外部知识进行推理来缓解这一问题,从而产生不可避免的额外成本。在本文中,我们提出了OPERA,一种基于过度信任惩罚和回顾分配策略的新型MLLM解码方法,作为几乎free lunch来缓解幻觉问题,而无需额外的数据,知识或训练。我们的方法从一个有趣的观察开始,大多数幻觉与自我关注矩阵中表现出来的知识聚合模式密切相关,也就是说,MLLMs倾向于通过关注几个摘要标记来生成新的标记,而不是所有以前的标记。这种片面的过度信任倾向导致了对图像表征的忽视,并以幻觉来描述图像内容。根据观察,OPERA在波束搜索解码期间对模型逻辑引入了一个惩罚术语,以减轻过度信任问题,同时还引入了一个回滚策略,该策略可以回顾以前生成的令牌中是否存在摘要令牌,并在必要时重新分配令牌选择。通过大量的实验,OPERA在不同的MLLMs和指标上显示出显著的减轻幻觉的性能,证明了它的有效性和普遍性。我们的代码可在:https://github.com/shikiw/OPERA。

1. 介绍

image.png
图1所示。OPERA在减少幻觉方面的表现。
多模态大型语言模型(multimodal large language models,MLLMs)的最新进展[1,5,9,10,30,31,44,48]将通用基础模型极大地提升到了前所未有的水平。这些模型使用户能够使用图像作为输入进行交互,促进基于这些图像内容的自由交流。MLLM令人印象深刻的能力使其能够熟练处理各种视觉任务[2,25,45],同时轻松处理一些复杂的内容理解[23]或生成[4,15]。
尽管MLLM具有显著的多功能性,但它也面临着一个被称为“幻觉”问题的重大挑战。具体来说,MLLM经常对用户提供的图像和提示产生不正确的陈述,例如,产生不相关或无意义的响应,根据图像中不存在的颜色,数量和位置识别不准确的物体。这一缺陷给传销在实际应用中成为值得信赖的助手带来了很大的风险。例如,在模型辅助的自动驾驶场景中,这种对道路场景图像的误解可能导致系统的错误判断和严重的交通事故。[29,40,42,47]已经提出了各种方法来减少MLLM的幻觉。而这些方法会产生大量的额外成本,包括用于训练的额外指令数据的标注预算[29]、外部知识或模型的集成等。
image.png
图2。幻觉与知识聚合模式的关系。幻觉被强调。
在本文中,我们深入研究了在不引入额外数据、模型或知识的情况下减轻MLLM在推理过程中的幻觉的挑战。我们的研究开始于一个值得注意的“部分过度信任”的观察发现,而可视化的自我注意图解码序列。如图2所示,我们发现了一个反复出现的模式,其中许多幻觉内容的开始与柱状注意力模式后产生的后续标记一致。值得注意的是,这些柱状注意力模式通常表现在缺乏实质性信息的标记上,例如,句号或引号。直观地说,这种特性揭示了一个奇怪的事实,即表现出柱状注意力模式的令牌通常拥有有限的信息,但对所有后续令牌的预测都有明显的影响。此外,如图3所示,我们发现大多数后续内容都包含推理或幻觉。
image.png
图3。幻觉通常开始于知识聚合模式后的前10个标记。
“聚集模式”似乎是LLMs的本质。我们假设这些令牌作为摘要令牌,它聚集了序列中先前令牌的关键知识,并指导后续令牌的生成。我们的观察结果与最近在NLP领域的“锚定令牌”[41]观察结果一致,后者发现LLM倾向于在浅层的几个锚定令牌上聚合以前的信息,并基于这些锚定在深层预测下一个令牌(图4(a))。
image.png
图4。(a)聚集模式与最近的“锚定标记”观察一致。(b)、©显示了当情境中出现更多锚点标记时,随机选择的5000张MSCOCO图像上的CHAIR分数(更多幻觉)增加。
“聚集模式”导致当前MLLMs的幻觉。当前的MLLMs通常将视觉标记放在序列的开头,并且期望它们专注于视觉标记并提供精确的理解。然而,随着生成的文本越长,在摘要标记之间的信息传递过程中,视觉信息更容易衰减(单个摘要标记无法记住整个上下文所给出的密集而丰富的信息)。具体而言,后续token可能会忽略前额图像token,并通过其更强的关注而过度信任更接近的总结token,从而导致模型偏差引起的幻觉,例如根据前一句中提到的“路”产生幻觉“汽车”。换句话说,摘要符号出现得越多,就越容易引发MLLMs幻觉。为了证明这一点,我们根据摘要令牌的位置对mllm的长回答进行了拆分,并分别计算了不同拆分的CHAIR分数。如图4(b)©所示,CHAIR评分与生成文本的分割数呈明显的正相关关系,即上下文中出现越多的摘要符号,产生的幻觉越多,表现为它们的共现。
为了缓解部分过度信任问题,我们提出了一种基于过度信任惩罚和回溯分配策略的MLLM解码方法OPERA。过度信任惩罚在Beam Search[3,16,37]中为候选人选择步骤引入了一个加权分数,因此具有过度信任模式的候选人将具有较低的优先级被选择。具体来说,对于每个解码标记,我们研究了在解码序列的自关注图上分割的局部窗口,并设计了一个列度量来计算知识聚集模式的强度。该度量产生一个值,该值指示窗口内令牌和摘要令牌之间的过度信任程度。它自然地与Beam搜索中预测的下一个令牌的模型逻辑结合在一起,并惩罚过度信任模式的出现。进一步,考虑到知识聚集模式出现的滞后性,幻觉可能在所有候选人中都存在。我们提出了一种回溯-重新分配策略,以帮助解码过程回滚到摘要令牌的位置,并重新选择可以避免这种模式的更好的候选者。当窗口内处罚分数最大值的位置重叠达到一个阈值时,就会触发这种回溯。
通过对基准和幻觉指标的广泛实验,以及GPT-4/GPT-4V评估,OPERA证明了在各种MLLM模型上,广义幻觉会降低性能。我们的贡献可以总结如下:
•我们的OPERA在不引入任何外部数据、知识或额外训练的情况下,缓解了MLLMs在推理过程中的幻觉问题。
•我们揭示了幻觉和过度信任模式的出现,并提出了一种基于惩罚的解码方法,并配备了回顾-重新分配策略。
•广泛的评估,包括GPT评估证明了OPERA的优越性能,它几乎是一顿 free-lunch,以减轻幻觉。

2. 相关工作

2.1. 多模态大型基础模型

近年来计算资源的发展极大地促进了结合多模态学习的大规模基础模型的研究。在开源大型语言模型(如LLaMA[38,39]和Vicuna[7])的支持下,MLLMs[1,6,9,18 - 20,31,48]通过整合来自文本、图像和音频等不同模式的信息,以更全面的方式理解和生成多样化的内容。CLIP和BLIP系列很好地对齐了文本特征和图像特征。LLaVA[31]、InstructBLIP[9]和MiniGPT-4[48]在这一领域向前迈进了一步,允许用户通过图像和文本作为提示与这些智能进行交互。它们都共享相同的两个训练阶段,即预训练特征对齐和指令微调,以帮助模型理解指令输入的格式。Shikra[5]结合了接地数据,教会模型理解给定图像中的接地知识。上述所有MLLM模型都有严重的幻觉问题。因此,本文主要对这四种模型进行实验。

2.2. 大型基础模型中的幻觉

幻觉(hallucination)[21,43]指的是在给定的上下文中生成的文本要么是不相关的,要么是事实不正确的,要么是无意义的,这在当前的大型基础模型中相当严重。这个问题可能是由于过度拟合训练数据中的特定模式,缺乏对现实世界事实的理解,或者无法有效地将给定的输入上下文化而产生的。LLM中关于幻觉的主要关注是生成内容的事实准确性,即与世界知识或常识相冲突。在MLM中,主要的担忧集中在可信度上,即评估生成的答案是否与用户提供的图像相冲突。缓解当前LLM幻觉问题的研究通常集中在几个方面,包括改进训练过程,使用更大、更多样化的数据集[24],或实施训练后评估[11]和纠正机制[33,34]。而对于传销,相关的研究还很少[29,42,47]。然而,这些对策中的大多数都有一个很大的缺点,即它们要么引入大量的额外数据,要么求助于更强大的外部模型或知识。与他们相比,我们的OPERA几乎是缓解幻觉问题的免费午餐,不需要额外的培训、数据或知识。

2.3. 语言模型中的解码策略

语言模型中的解码策略是决定这些模型如何生成文本的关键。他们在塑造产出的质量、相关性和连贯性方面发挥着关键作用。贪婪解码只是在每一步选择最可能的下一个单词。虽然快速且计算效率高,但贪婪解码通常会导致重复和较少变化的文本。束搜索[3,16,37]是一种更复杂的方法,束搜索在每一步跟踪预定义数量的假设,并在其上扩展以找到更优的序列。Top-k Sampling[12]通过从Top-k可能的下一个单词中随机选择,为生成过程增加了随机性,在输出中引入了多样性,但有时会产生不太连贯的结果。Top-p(Nucleus) Sampling[17]是Top-k的演变,Nucleus Sampling考虑的是累计达到概率p的动态单词数。这种方法在随机性和相关性之间提供了平衡,通常会产生比Top-k抽样更连贯、更有趣的输出。DoLa[8]解码是最近提出的一种解码方法,旨在减轻MLLM中的幻觉,它将成熟层和未成熟层的逻辑进行对比,并将增量重新缩放作为输出。在本文中,我们将我们提出的OPERA与这些常见的解码策略进行了比较,重点研究了MLLM在幻觉问题上的性能。

3. 方法

下面,为了便于理解我们的OPERA,我们首先制定了MLLM的生成过程,然后分别介绍了所提出的过度信任Logit惩罚和回溯分配策略的计算。

3.1 MLLMs生成的思路

LLMs的生成过程可分为三个部分:输入公式、模型正演和解码。
输入构想。MLLMs的输入包括图像和文本。抛开特定的架构差异不讲,MLLMs通常使用视觉编码器从原始图像中提取视觉标记,并使用跨模态映射模块将它们映射到LLM的输入空间。映射的可视标记与文本输入一起用作LLM输入的一部分。我们用 x v = { x 0 , x 1 , . . . , x N − 1 } x^v=\{x_0,x_1,...,x_{N-1}\} xv={x0,x1,...,xN1}记做视觉token。这里 N N N是可视标记的长度,在大多数情况下它是一个固定的数字。相应地,输入文本用标记器进行标记,我们将其表示为 x p = { x N , x N + 1 , . . . , x M + N + 1 } x^p=\{x_N,x_{N+1},...,x_{M+N+1}\} xp={xN,xN+1,...,xM+N+1}。图像和文本标记被连接起来作为最终的输入序列,我们用 { x i } t = 0 T − 1 , T = N + M \{x_i\}^{T-1}_{t=0},T=N+M {xi}t=0T1,T=N+M表示。
模型前向传播。MLLM以自回归的方式使用因果注意掩码进行训练,每个令牌基于前一个令牌预测其下一个令牌,正式形式为:
h = MLLM ( x i ) h=\text{MLLM}(x_i) h=MLLM(xi)
h = { h 0 , h 1 , . . . , h T − 1 } h=\{h_0,h_1,...,h_{T-1}\} h={h0,h1,...,hT1}
其中 h h h为MLLM最后一层的输出隐藏状态。
接下来,MLLMs使用词汇头 H \mathcal{H} H来投影隐藏状态 h h h,并获得下一个令牌预测的logits(或概率),正式形式为:
image.png
其中我们使用 x < t x_{<t} x<t为了简化序列 { x i } i = 0 t − 1 \{x_i\}^{t-1}_{i=0} {xi}i=0t1, X \mathcal{X} X 表示整个词汇集。
解码。基于对数 p ( x t ∣ x < t ) p(x_t|x_{<t}) p(xtx<t)开发了几种译码策略,包括贪婪译码、波束搜索、DoLa等。解码后的标记被连接到下一轮生成的最后一个原始输入文本,直到生成结束。
我们的OPERA基于Beam Search[3,16,37],这是一种基于累积分数的解码策略。简而言之,对于给定的光束大小 N b e a m N_{beam} Nbeam,光束搜索保留 N b e a m N_{beam} Nbeam候选序列,其中每个候选序列是一个解码序列 x N b e a m x^{N_{beam}} xNbeam具有光束分数的 N b e a m N_{beam} Nbeam。在解码令牌 x t x_t xt时,每个候选假设将根据逻辑中的 Top- N b e a m \text{Top-}N_{beam} Top-Nbeam概率选择 N b e a m N_{beam} Nbeam候选令牌。最后,解码过程将输出获得最佳波束分数的假设。

3.2. 过度信任Logit惩罚

正如我们在第1节中分析的那样,幻觉和知识聚集模式之间存在高概率共存。然而,这种模式具有明显的滞后性,即当解码相应的符号时,模式不能立即观察到,但在随后的几个符号被解码后,幻觉可能已经发生了。
为了应对滞后,我们提出了“过度信任Logit惩罚”,这是一种累加的惩罚,在光束得分中加权,它影响当前令牌和候选序列的选择。累积了较大惩罚的候选序列将具有较低的优先级被选择,因此具有幻觉的输出将可能被省略
在实践中,我们研究了自关注权重的局部窗口,并利用列积来计算度量值。将当前生成的序列记为 { x i } j = 0 t − 1 \{x_i\}^{t-1}_{j=0} {xi}j=0t1,它们在下一次token预测中不经意的自关注权值 { ω t − 1 , j } j = 0 t − 1 \{\omega_{t-1,j}\}^{t-1}_{j=0} {ωt1,j}j=0t1,其中权值可以用softmax结果表示为 ω = SoftMax ( Q K T D ) \omega=\text{SoftMax}(\frac{QK^T}{\sqrt{D}}) ω=SoftMax(D QKT)并且 Q , K , D Q,K,D Q,K,D分别为查询特征、关键特征、特征维数。我们考虑在一个局部窗口中收集所有以前的自注意权值来表征知识模式,即将局部窗口注意定义为
image.png
其中 k k k表示我们在注意图上裁剪的局部窗口的大小, ω i , j \omega_{i,j} ωi,j表示第 j j j个标记分配给第 i i i个标记的注意权重。有两点需要澄清:1)我们的窗口不涉及图像标记或提示标记的注意权值,因为我们只关注生成标记上的知识聚集模式,即 t − K ≥ N + M t-K\ge N+M tKN+M。2)我们选择多头关注中的最大权值并重新归一化,因为它通常表明模型的强置信度。
利用局部窗口关注权值 W t − 1 k W^k_{t−1} Wt1k,我们可以计算出一个简单的度量来描述知识聚集模式的大小。具体来说,我们首先在 W t − 1 k W^k_{t−1} Wt1k上做一些预处理,包括用零填充矩阵的上三角形,并扩大注意值,因为这些值通常太小,即:
image.png
其中 { ω i , j } j = i + 1 t − 1 \{\omega_{i,j}\}^{t-1}_{j=i+1} {ωi,j}j=i+1t1为零, σ \sigma σ是一个可配置的比例因子。
image.png
图5。过度信任惩罚期限的计算方案。我们首先在自注意图上切出一个局部窗口,然后将值按比例放大并进行逐列乘法得到一个分数向量,最后选择最大分数作为惩罚项。
如图5所示,然后我们对注意力矩阵的下三角形进行列式乘法,并获得一个列式分数向量。直观地看,分数越大,对应位置存在的格局越强。因此,我们选择逐列得分向量的最大值作为知识聚集模式的特征。在形式上,
image.png
到目前为止,我们有一个显著度量来检测局部窗口内知识聚集模式的发生。考虑到计算效率和惩罚不应使模型产生不合理的输出,我们选择每个beam的logit中的 top- N c a n \text{top-}N_{can} top-Ncan组成一个候选集 Y \mathcal{Y} Y,其中 ∣ Y ∣ = N c a n ∗ N b e a m |\mathcal{Y}|=N_{can}*N_{beam} Y=NcanNbeam, N b e a m N_{beam} Nbeam为梁的个数。通过这种方式,我们将预测限制在候选集内,并将 ϕ ( w ≤ t ) \phi(w_{\le t}) ϕ(wt)与模型logits结合起来预测下一个令牌,即:
image.png
其中 w ≤ t w_{\le t} wt简化了通过前馈序列 { x 0 , x 1 , . . . , x t } \{x_0,x_1,...,x_{t}\} {x0,x1,...,xt}

3.3. 重新回顾分配策略

使用过度信任logit惩罚,我们可以在生成几个后续令牌后成功检测模式的发生。通常,惩罚项能够惩罚具有知识聚集模式的候选对象,并鼓励其他候选对象被预测。
虽然仍然存在一些所有候选人都被惩罚而幻觉已经发生的情况,这种情况促使我们重新思考这种聚合模式的起源:它是由前几个后续令牌过度信任总结令牌造成的,惩罚未能纠正它们。因此,一个直观而激进的想法是,如果我们能排除导致幻觉的标记,并在总结标记之后重新选择合适的前几个标记,这种模式将大大削弱。
为此,我们提出了回溯分配策略。具体地说,当解码过程遇到知识聚集模式并且不可避免地出现幻觉时,它会回滚到摘要标记,并选择除之前选择的候选对象外的其他候选对象进行下一次标记预测。根据经验,解码回溯的条件被设计为对应于几个连续标记的列得分最大值的位置重叠,其中我们手动将阈值计数设置为 r r r。而不是在不同模型之间变化的最大值,位置计数是决策的更健壮和通用的度量。
image.png
图6。提出的回顾策略方案。我们计算过去几个标记的列得分的最大值坐标,并检查重叠次数是否大于 r r r。如果是,我们回顾解码过程并重新选择下一个标记 x s + 1 x_{s+1} xs+1
整个回顾过程如图6所示。基于第3.2节,我们可以通过Eq.(5)轻松地推导出最高分的位置坐标 C \mathcal{C} C。因此,我们可以获得几个最近解码的令牌 x t − l , . . . , x t − 1 x_{t-l},...,x_{t-1} xtl,...,xt1,即
image.png
其中 l > r l>r l>r需要指定。我们默认设 l = k l=k l=k
给定一个序列 { x 0 , x 1 , . . . , x t − 1 } \{x_0,x_1,...,x_{t-1}\} {x0,x1,...,xt1}和它最近的位置坐标集 C \mathcal{C} C,我们可以很容易地检查坐标是否一致。形式上,重叠次数可以通过
image.png
其中 1 \mathbb{1} 1是指示性函数,当条件为真时返回1,当条件为假时返回0,Mode是获取一组值的模式的函数。
如果 N o v e r l a p ≥ r N_{overlap}\ge r Noverlapr,我们考虑实现回溯,将 s = M o d e ( C ) s = Mode(\mathcal{C}) s=Mode(C)作为摘要令牌的位置。假设序列 { x 0 , x 1 , . . . , x s , . . . , x t − 1 } \{x_0,x_1,...,x_s,...,x_{t-1}\} {x0,x1,...,xs,...,xt1},在摘要标记 x s x_s xs处呈现知识聚合模式,我们打算将解码过程回滚到序列 { x 0 , x 1 , . . . , x s } \{x_0,x_1,...,x_s\} {x0,x1,...,xs},并在互补集 Y / { x s + 1 } \mathcal{Y}/\{x_{s+1}\} Y/{xs+1}中选择新的下一个token。由于后续回滚将比之前的回滚更远,因此我们手动指定回滚位置必须单调地不减小。此外,我们为回滚配置了一个最大时间 β \beta β,并考虑回滚到 { x 0 , x 1 , . . . , x s − 1 } \{x_0,x_1,...,x_{s-1}\} {x0,x1,...,xs1}如果 x s x_s xs已达到最大回滚次数}。

4. 实验

image.png
image.png
image.png

参考资料

论文下载(2024 CVPR Highlight)

https://arxiv.org/pdf/2311.17911
image.png

代码地址

https://github.com/shikiw/OPERA

参考文章

https://mp.weixin.qq.com/s/c-Kp35q_gqiLMIVD4EzZcA

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

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

相关文章

【el-table】横向滚动条加粗后,滚动到固定列下被遮挡,已解决

横向滚动条按要求加粗后&#xff0c;遇到的问题&#xff1a;列表的操作列是固定在最右侧的&#xff0c;当滚动条滑动到最右侧的时候&#xff0c;滚动条被遮挡了 我尝试了几种方法都不行&#xff0c;比如找到.el-table__fixed-right .el-table__fixed-footer-wrapper &#xff…

LoadRunner12添加集合点

集合点的含义和意义&#xff1a; 集合点用于保证真正的并发。当脚本运行到集合点函数时&#xff0c;将停止运行并等待其允许运行的条件(即集合点策 略)&#xff0c;达到后才释放集合点开始运行。用来分析软件性能瓶颈。 一般将集合点放在开始事务代码之前。 通常来说集合点不需…

Vue2 axios

1.安装引入 axios npm i axios 2.配置代理 1.配置代理(方式一) module.exports {devServer: {proxy: http://localhost:5000} } 1.发送ajax请求 getStudent(){axios.get(http://localhost:8080/students).then(res>{console.log(请求成功了,res.data);},error>{co…

大咖公开课 | AI自动化应用开发,让创意与效率并驾齐驱!

在这个日新月异的时代&#xff0c;人工智能&#xff08;AI&#xff09;与自动化技术的融合正以前所未有的速度重塑着各行各业。你是否梦想过&#xff0c;在信息的海洋中自动筛选出精华&#xff0c;用创意点亮每一篇内容&#xff0c;同时让繁琐的工作流程变得轻松高效&#xff1…

丰收季遇科技之光:北斗卫星导航引领现代农业新篇章

在这个金风送爽、硕果累累的丰收时节&#xff0c;广袤的田野上洋溢着农民们欢声笑语&#xff0c;每一粒饱满的果实都是大自然与辛勤耕耘者的共同馈赠。而在这片希望的田野上&#xff0c;一项科技革命的浪潮正悄然改变着传统农业的面貌——北斗卫星导航系统&#xff0c;正以它精…

Win10电脑怎么开启远程桌面?

在工作中&#xff0c;远程连接是一种常见的操作需求&#xff0c;而在Windows系统中提供远程连接功能。然而&#xff0c;Windows自带远程控制功能需要电脑设置允许远程连接&#xff0c;才能进行远程控制。那么&#xff0c;Win10如何设置允许远程连接&#xff1f;Win10开启远程桌…

一次异常艰难的渗透测试

0x01 暴力破解 朴实无华的弱口令&#xff0c;我都怀疑是不是交互式蜜罐。 0x02 文件上传 该系统所有文件上传功能均通过同一方式进行上传。 文件列表&#xff0c;可以看到文件上传后&#xff0c;从文件列表处能看到FileDirFilePath为文件路径的存放路径&#xff0c;文件名为G…

mybatis-plus执行delete时报错Prohibition of full table deletion

1.由于mybatis预防全表删除&#xff0c;所以会报错&#xff0c;想要执行全表数据删除需要加注解 2.同时执行语句修改为注解的sql语句 InterceptorIgnore(blockAttack "true")

Python利用xlrd复制一个Excel中的sheet保留原格式创建一个副本(注:xlrd只能读取xls)

目录 专栏导读库的介绍库的安装完整代码总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的双手 &#x1f3f3;️‍&#x1f308; 博客主页&#xff1a;请点击——> 一晌小贪欢的博客主页求关注 &#x1f44d; 该系列文…

阿里云无影?云电脑有心

很高兴收到了阿里云无影云电脑的测试邀请&#xff0c;试用结果让我非常惊讶。我通过该产品看到&#xff0c;阿里云“又”要开拓出一个千亿级的云电脑市场——为什么要说“又”&#xff1f;因为“就”是他们带头开拓了千亿级的公有云市场啊。 本文不仅是在帮企业用户做选型分析&…

npm error,淘宝源过期,切换源

npm error&#xff0c;淘宝源过期&#xff0c;切换源 npm ERR! request to https://registry.npm.taobao.org/file-saver failed, reason: certificate has expired 淘宝源过期&#xff0c;切换源&#xff1a;流水线配置&#xff1a; sh:"npm config set registry https:…

玩转haproxy --花十分钟看看,全是干货

Haproxy是一款开源集群软件&#xff08;在上一篇文章中提到过集群的相关知识&#xff0c;往期点击http://t.csdnimg.cn/qWtQG&#xff09;是法国开发者 威利塔罗(Willy Tarreau) 在2000年使用C语言开发的&#xff0c;是一款具备高并发(万级以上)、高性能的TCP和HTTP负载均衡器 …

有道云docx转换markdown,导入hugo发布到github page,多平台发布适配

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 有道云导出docx 有道云笔记右上角更多按钮选择【导出为Word】&#xff0c;可以导出docx文档 docx转换markdown 尝试了几个docx转markdown的python库后&…

1.2 数据库管理系统的基本原理

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 工&#x1f497;重&#x1f497;hao&#x1f497;&#xff1a;野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

子网掩码是什么?

子网掩码&#xff08;Subnet Mask&#xff09;是用于划分网络的一个32位的二进制数&#xff0c;用于指示IP地址中哪些位用于网络标识&#xff0c;哪些位用于主机标识。 在IPv4网络中&#xff0c;IP地址由32位二进制数组成&#xff0c;通常表示为四个十进制数&#xff0c;每个数…

Leetcode—1006. 笨阶乘【中等】

2024每日刷题&#xff08;156&#xff09; Leetcode—1006. 笨阶乘 实现代码 class Solution { public:int clumsy(int n) {stack<int> st;st.push(n);n--;int idx 0;while(n ! 0) {if(idx % 4 0) {int num st.top() * n;st.pop();st.push(num);} else if(idx % 4 …

plsql如何连接sql server?plsql连接oracle数据库如何配置

在当今企业数据管理和应用开发中&#xff0c;数据库的互联互通已成为常态。特别是在多数据库环境下&#xff0c;如Oracle和SQL Server的结合使用&#xff0c;为企业提供了更广阔的数据处理能力。PL/SQL作为Oracle数据库的过程化扩展语言&#xff0c;能够高效地管理Oracle数据库…

应急响应:病毒处理的方法---实战案例.(手动版)

什么是应急响应. 一个组织为了 应对 各种网络安全 意外事件 的发生 所做的准备 以及在 事件发生后 所采取的措施 。说白了就是别人攻击你了&#xff0c;你怎么把这个攻击还原&#xff0c;看看别人是怎么攻击的&#xff0c;然后你如何去处理&#xff0c;这就是应急响应。 目录&…

带你速通C语言——位运算符、结构运算符与指针运算符(5)

位运算符、结构运算符与指针运算符 C语言的位运算符、结构运算符和指针运算符是对数据的更底层操作&#xff0c;使得C语言尤其适合进行系统编程和处理复杂的内存管理任务。下面详细介绍这些运算符。 1.位运算符 位运算符作用于整数类型的操作数的二进制位。以下是C语言中可用的…

报SBAT self-check failed: Security Policy Violation突然开不了机

台式机一直用的好好的没什么问题&#xff0c;早晨突然开机就关机提示&#xff1a; 查了一下网上资料&#xff0c;在BIOS里面搜“安全启动”改为禁用就行&#xff0c;该电脑微星主板直接由开启改为禁用&#xff0c;重启进入系统。很奇怪&#xff0c;一直用的没啥&#xff0c;突然…