【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(二)

news2025/1/3 14:35:01

****非斜体正文为原文献内容(也包含笔者的补充),灰色块中是对文章细节的进一步详细解释!

3.1.2  基于注意力的解释(Attention-Based Explanation)

注意力机制可以揭示输入数据中各个部分之间的关系,从而为模型的预测提供解释。许多现有方法尝试仅基于注意力权重或通过分析注意力中编码的知识来解释模型。这些解释技术可以分为三组:可视化方法、基于函数的方法和基于探测的方法。由于基于探测的方法通常用于学习全局解释,因此将在第3.2.1节中讨论。此外,关于注意力权重是否适合解释的研究存在广泛争议。这一主题将在后面的讨论中涵盖。

3.1.2.1 可视化(Visualizations)

(a) 第 6 层句子 A 和句子 B 之间注意力矩阵的二分图注意力表示 (Vig, 2019);

通过使用二部图或热图显示单个输入的注意力模式和统计数据,可视化提供了一种直观的方式来理解模型的工作原理。这些技术涉及在不同尺度上表示关系,以不同形式为不同模型表示注意力。

在输入数据层面,根据前提句和假设句之间的每个单词/token/句子对的注意力得分,以评估模型预测的可信度。一些系统还允许用户手动修改注意力权重以观察效果(通过直接操作注意力权重,可以增加或减少模型对特定单词的关注程度)。

在自然语言处理中,特别是在涉及逻辑推理或问答系统的任务时,“前提句”和“假设句”通常指两个部分:

前提句:提供背景信息或已知事实的句子。
假设句:基于前提句提出的推论或问题。


例如,在问答系统中,前提句可能是一段文本描述,假设句可能是基于该描述的问题。注意力机制会帮助模型识别前提句中哪些部分对回答假设句最为重要。

在神经元层面,可以检查单个注意力头以理解模型行为。

注意力头本质上是一个计算加权平均的机制。每个注意力头都关注输入数据中的不同方面,分析它们的激活模式可以揭示哪些输入部分与模型的输出最为相关。


每个注意力头能够学习到输入数据不同特征或模式,主要是因为它们在训练过程学习到了不同的权重矩阵。 那万一他们学到了相同的权重矩阵呢?

理论上,如果多个注意力头学习到相同的权重矩阵,它们就会关注输入数据的相同方面,导致模型效率低下和冗余。 这相当于多个注意力头在做重复的工作,没有充分利用模型的计算能力。 然而,这种情况在实际训练中很少发生,主要原因如下:

  • 随机初始化: 如前所述,注意力头的权重矩阵是随机初始化的。 这种随机性确保了它们在训练开始时就具有不同的参数,降低了学习到相同权重矩阵的可能性。

  • 反向传播算法和优化器: 反向传播算法和优化器(例如Adam)会不断调整权重矩阵,以最小化损失函数。 这个过程会引导不同的注意力头学习到不同的参数,以更好地捕捉输入数据的不同特征。 如果多个注意力头学习到相同的权重矩阵,损失函数并不会得到显著的降低,因此优化器会倾向于让它们学习到不同的参数。

  • 正则化技术: 一些正则化技术,例如dropout和weight decay,可以防止模型过拟合,并鼓励模型学习到更具泛化能力的参数。 这些技术也能间接地防止多个注意力头学习到相同的权重矩阵。

  • 数据的多样性: 如果训练数据足够多样化,那么不同的注意力头更有可能学习到不同的特征。 如果数据过于单一,则可能导致多个注意力头学习到相同的权重矩阵。

在模型层面,通过可视化模型中不同注意力头(attention heads)和层(layers)之间的注意力分布,可以识别出一些特定的模式或规律。

也有工作侧重于可视化注意力流以追踪注意力的演变,这可用于理解信息转换并实现模型之间的训练阶段比较(DeRose et al., 2020)。因此,注意力可视化提供了一种明确的、交互式的方法来分析偏差、错误和评估决策规则。有趣的是,它还有助于制定解释性假设。

3.1.2.2 基于函数的方法(Function-Based methods)

由于原始注意力不足以完全解释模型预测,人们研发了更佳的变体,以识别解释的重要归因。

梯度作为衡量敏感性与显著性的公认度量标准,故而被广泛融入自定义归因分数内。

这些自定义归因分数在对涉及注意力权重的梯度的定义方式上存在差异。例如,梯度可以是输出相对于注意力权重的偏导数 (Barkan et al., 2021),或者是偏导数的积分 (Hao et al., 2021)。梯度和注意力之间的操作也可以有所不同,例如逐元素乘积

总的来说,这些融合注意力和梯度的归因分数通常比单独使用任何一个表现得更好,因为它们融合了更多有助于突出重要特征和理解网络的信息。

3.1.2.3 关于注意力的辩论(Debate Over Attention)

有大量研究评估注意力头,但关于这种方法有效性的辩论可能短期内不会解决。这场辩论源于几个关键方面。

  • 首先,一些工作将基于注意力的解释与其他方法(如LIME)进行比较发现注意力通常不能识别对预测最重要的特征 (Serrano & Smith, 2019; Jain & Wallace, 2019)。它们提供的解释不如其他方法(Thorne等人,2019),或者不能与其他解释方法相关联(Jain & Wallace, 2019; Liu et al., 2020; Ethayarajh & Jurafsky, 2021)。
  • 其次,一些研究直接批判注意力机制在模型预测中的有效性。他们认为,原始注意力未能捕捉文本中的句法结构,可能不会像通常假设的那样对预测做出贡献(Mohankumar等人,2020)。此外,原始注意力包含冗余信息,降低了其在解释中的可靠性(Bai等人,2021;Brunner等人,2019)。
  • 然而,也有研究反驳了这些主张。例如,评估解释模型一致性的挑战存在于许多方法中,不仅只在基于注意力的方法中(Neely等人,2021)。此外,在不重新训练的情况下操纵注意力权重可能会使评估产生偏见(bias)(Wiegreffe和Pinter,2019)。并且,BERT中的注意力头已被证明可以有效地编码语法(Clark等人,2019)。

为了使注意力可解释,人们还探索了技术解决方案,如优化输入表示(Mohankumar等人,2020)、规范化学习目标(Moradi等人,2021)、避免有偏见(bias)的学习(Bai等人,2021)甚至融入人类原理(Arous等人,2021)。但持续辩论的核心原因是缺乏完善的评估标准,这将在第5.1节中进一步讨论。

3.1.3 基于示例的解释(Example-Based Explanations)

基于示例的解释旨在从个体实例的角度解释模型行为。与基于模型或基于特征的解释不同,基于示例的解释说明了模型输出如何随着不同输入而变化。我们关注对抗性示例、反事实解释和数据影响。

  • 对抗性示例通常通过操纵输入数据中较不重要的部分来生成。它们揭示了模型失效或出错的案例,揭示了其弱点。
  • 相比之下,反事实解释主要通过改变输入数据的重要部分来生成,它们在算法补救等场景中很受欢迎,因为提供对期望结果的补救措施
  • 与操纵输入不同,数据影响检查训练数据如何影响模型对测试数据的预测
3.1.3.1 对抗性示例(Adversarial Example)

研究表明,神经模型对输入数据的微小变化非常敏感。这些微小的修改可以改变模型决策,而几乎不会被人类察觉。对抗性示例对于揭示模型失效的领域至关重要,并且通常被添加到训练数据中以提高鲁棒性和准确性。

 以一种人类难以察觉的方式改变输入文本,但分类会偏离原始分类(Jin 等人,2020 年)(译文:(f) 分类。原始文本:角色们被置于不可能的矫揉造作的情境中,完全与现实脱节(消极)。扰动文本:角色们被置于不可能的精心设计的环境中,完全与现实脱节(积极))

对抗性示例最初是通过word级别操作生成的,如错误、删除和插入,这些在检查时是显而易见的。

 word  和 token的区别:

更高级的token级别扰动方法,如TextFooler (Jin et al., 2020),已经发展起来,它们基于排名策略,首先针对重要性高的单词。然后根据词嵌入相似性、词性相似性、句子语义相似性和预测偏移来选择候选词。然而,与上下文相关的表示(contextualized representations)相比,词嵌入(word embedding)在句子表示上存在局限性,常常导致句子的表示变得不连贯。

“词嵌入”指的是将单词转换成固定维度的向量表示,这种表示通常是通过预训练模型(如Word2Vec、GloVe等)得到的,它们能够捕捉单词的语义信息,但是它们是静态的,不包含上下文信息。这意味着同一个单词在不同的句子中,其词嵌入表示是相同的,而不考虑它在句子中的上下文环境。

而“上下文相关的表示”则是指在特定上下文中单词的表示,这种表示能够捕捉到单词在不同上下文中的不同含义。例如,BERT、GPT等模型生成的词嵌入就是上下文相关的,它们能够根据单词在句子中的位置和周围的单词来调整其向量表示,从而更准确地捕捉单词的语义。

因此,当使用词嵌入来表示整个句子时,由于缺乏上下文信息,可能会导致句子的各个部分之间缺乏连贯性,使得句子的整体表示不够准确和自然。相比之下,上下文相关的表示能够更好地捕捉句子的语义结构和连贯性。

通过关注上下文表示,一系列采用掩码-填充(mask-then-infill)过程的工作已经取得了最先进的性能。它们利用预训练的掩码语言模型(如BERT)进行包括替换、插入和合并在内的扰动。通常,使用大型语料库来训练掩码语言模型,生成上下文表示并获得token的重要性排名。然后模型被冻结,按照排名顺序对token进行扰动操作。

  • 对于替换,生成的示例替换 masked token。
  • 对于插入,新token被插入到masked token的左侧或右侧。
  • 对于合并,两个 token被mask并被替换为一个token。

SemAttack (Wang et al., 2022b) 提出了一个更通用且有效的框架,适用于各种嵌入空间,包括错别字空间、知识空间和上下文语义空间。输入token首先被转换到嵌入空间以生成被扰动的嵌入,这些嵌入被迭代优化以满足攻击目标。实验表明,即使在有防御措施的白盒设置中,替换5%的单词可以将BERT的准确率从70.6%降低到2.4%。SemAttack的出色攻击性能可能是因为它直接操纵嵌入。

3.1.3.2 反事实解释(Counterfactual Explanation)

反事实解释是一种解释因果关系的方法,它通过考虑“如果...会怎样?”(What if...?)的问题来探究因果效应。具体来说,反事实解释关注的是:

  • 反事实条件:假设某个事件或条件没有发生,那么结果会有什么不同?
  • 因果效应:某个因素是否真的导致了某个结果,以及这种影响的程度。

例如,如果一个病人服用了某种药物后康复了,反事实解释会问:“如果病人没有服用这种药物,他还会康复吗?”通过回答这个问题,我们可以更好地理解药物和康复之间的因果关系。

(e)提供输入文本的负面示例以测试模型在情感预测方面的能力,并且也可用于提高模型性能(Wu 等人,2021 年)(译文:原始文本:这对孩子们很好(积极)。
否定示例:这对孩子们不好(消极)。

反事实解释是一种常见的因果解释形式,使用Granger因果关系的概念来识别哪些输入变量可以用来预测输出变量。然后,我们可以使用反事实解释来进一步探究这些输入变量对输出变量的因果影响。

Granger因果关系(Granger Causality)

Granger因果关系是一种统计概念,用于确定一个时间序列是否可以用来预测另一个时间序列。具体来说:

  • 预测能力:如果时间序列X能够提供关于时间序列Y未来值的信息,并且这种信息是Y过去的值所不能提供的,那么我们可以说X在Granger意义上是Y的原因。
  • 统计测试:通常通过回归分析和统计测试来确定X是否是Y的Granger原因。

给定一个观察到的输入x和一个具有某些特征变化的扰动ˆx,预测y将变为ˆy。反事实解释揭示了基于某些观察到的输入变化将发生什么。反事实解释被用来满足特定的需求,比如提供一种方法,让用户能够通过改变输入数据中的某些特征来改变模型的预测结果,例如通过选择特定的反事实来实现算法性补救。

例如,如果一个人的贷款申请被拒绝,反事实解释可以提供给他们一些可操作的反馈,告诉他们需要改变哪些特征(比如收入水平、信用评分等)才能获得贷款批准,这种反馈就是一种算法性补救。

示例可以由人类生成,也可以通过如释义或单词替换等扰动技术生成。Polyjuice (Wu et al., 2021)是一个代表性的生成器,它支持对输入句子进行多种排列类型的操作,比如删除、否定和重新排序。它还可以根据token的重要性来扰动它们,这意味着它能够识别并重点影响句子中的关键词汇。然后,Polyjuice会在特定的原始句子和经过扰动的句子对上微调GPT-2,这样做的目的是为了让生成的反事实解释更加适合特定的下游任务。与之前依赖人工的方法相比,每个反事实解释的生成时间从2分钟降低到了10秒,显著提高了效率(Kaushik等人,2020)。

Polyjuice选择使用GPT-2作为其基础模型,"基础模型"(Foundation Model)在这里指的是一个预训练好的、通用的模型,它在大量的数据上进行了学习,具备了处理多种下游任务的通用能力。这样的模型可以被微调(finetune)以适应特定的任务。

Polyjuice过程包括以下几个步骤:

  1. 数据准备:Polyjuice首先生成原始句子和扰动句子的配对。这些扰动句子是通过删除、否定、洗牌等方式从原始句子派生出来的。

  2. 微调过程:接着,Polyjuice使用这些句子对来微调GPT-2模型。微调的目的是让模型学会区分原始句子和扰动句子,并理解它们之间的差异。通过比较这两种句子,模型可以学习到如何对原始输入进行适当的扰动,以生成符合特定任务需求的反事实解释

  3. 适应下游任务:通过微调,Polyjuice使得GPT-2模型能够更好地适应特定的下游任务。

反事实解释生成被构建为一个两阶段方法,首先mask/选择重要tokens,然后填充/编辑这些tokens。

具体来说,MiCE在第一阶段使用基于梯度的归因选择要mask的tokens,然后在第二阶段通过二分搜索优化最小编辑量。(Ross等人,2021)

  • 第一阶段:
    别忘了前文提到过:基于梯度的归因是一种技术,它通过分析模型输出相对于每个输入特征的偏导数来确定每个输入特征的重要性。在文本处理中,这可以被用来选择对模型预测影响最大的单词(tokens),这些单词随后可以被遮蔽(mask)或修改以生成反事实解释。
     
  • 第二阶段:
    二分搜索是一种算法,它通过反复将搜索空间一分为二来快速定位目标值。在MiCE模型中,二分搜索被用来优化最小编辑量,即在保持反事实解释有效性的同时,尽量减少对原始文本的修改。这种方法通过不断调整编辑的程度,通过二分搜索找到最小的编辑量,使得反事实解释与原始预测的结果不同,但又尽可能接近原始文本。

相比之下,CREST(ContRastive Edits with Sparse raTionalization)是一个结合了选择性合理化(selective rationalization)和反事实文本生成(counterfactual text generation)的框架。

  • 第一阶段
    选择性合理化,它从大量可能的解释中选择一部分来构建解释。在自然语言处理中,这意味着从文本中选择一些关键部分(如关键单词或短语)来生成解释。这种方法的目的是在保持解释准确性的同时,减少解释的复杂性和长度,使其更加易于理解和使用。
     
  • 第二阶段
    反事实文本生成是一种生成与原始文本不同但具有相似效果的文本的过程。通常用于生成与原始文本在某些特征上不同,但预测结果不同的文本。例如,如果一个模型预测某个文本具有负面情感,反事实文本生成可能会改变一些单词,以生成一个具有正面情感预测的文本。

与MiCE不同,CREST模型使用了选择性合理化模型中生成的关键部分(rationales)来创建反事实解释,而不是像MiCE那样严格追求最小化的编辑量。CREST通过这种方式提供了一种更灵活的方法来生成反事实解释,允许在保持解释有效性的同时,有更多的变化和灵活性。CREST模型不通过最小化编辑量来保持原始输入和反事实之间的相似性,而是通过控制合理化器生成的解释的稀疏性来控制这种接近程度。这意味着CREST模型在生成反事实解释时,会考虑到解释的简洁性和重要性,而不是简单地减少编辑量(Treviso等人,2023)。

实验表明,这两种方法都能在有效性和流畅性方面生成高质量的反事实

3.1.3.3 数据影响(Data Influence)

这一系列方法通过测量单个训练样本对测试点上的损失函数的影响程度,来表征它们在训练过程中的重要性 (Yeh et al., 2018)。这个概念最初来自统计学,描述了在移除特定数据点后模型参数如何受到影响。通过观察影响模式,我们可以加深对模型如何根据其训练数据进行预测的理解。由于研究人员开始认识到数据的重要性,已经开发了几种以数据为中心分析模型的方法。

首先,影响函数(Influence Function)允许我们通过测量梯度和Hessian-向量积(Hessian-vector products)来近似地理解单个训练样本对测试点损失的影响,而无需重新训练模型 (Koh & Liang, 2017)。

Yeh等人(2018)将测试点的预测分解为训练点的线性组合,其中正值表示兴奋训练点,负值表示抑制点。

Data Shapley采用蒙特卡洛和基于梯度的方法来量化数据点对预测器性能的贡献,更高的Shapley值告诉所需的数据类型以改进预测器(Ghorbani和Zou,2019)。

🍚重温Shapley值的基本概念:
 

Shapley值基于这样一个观点:在一个多人合作游戏中,每个参与者对总收益的贡献是不同的,而Shapley值就是用来公平地分配这些收益的一种方法。具体来说,它考虑了每个参与者在所有可能的参与者组合中的平均贡献。

Shapley值的特点

  1. 公平性:Shapley值确保了每个参与者获得的收益与其对游戏的贡献成正比。
  2. 效率:总收益被完全分配,没有任何剩余或不足。
  3. 对称性:如果两个参与者对游戏的贡献相同,那么他们将获得相同的Shapley值。
  4. 虚拟玩家:如果一个参与者的加入或离开不会影响其他参与者的收益分配,那么这个参与者的Shapley值为零。

另一种方法使用随机梯度下降(Stochastic Gradient Descent, SGD)的方法来分析单个训练数据点对模型的影响。具体来说,这种方法通过分析不包含该数据点的小型批次(minibatches)来推断该训练点的影响,并利用模型参数的Hessian向量来进行分析(Hara等人,2019)。。

  • Hessian矩阵是损失函数相对于模型参数的二阶导数矩阵,它描述了损失函数的曲率。Hessian向量是Hessian矩阵与一个特定方向向量的乘积,它提供了损失函数在该方向上的曲率信息。如果移除某个训练点后,模型参数的Hessian向量发生了显著变化,这表明该训练点对模型有较大的影响。

基于这种方法,TracIn使用训练过程中的检查点来推导训练点的影响(Pruthi等人,2020)。

由于在每次迭代中追踪参数和使用的训练样本是不切实际的,TracIn使用一种启发式方法,即利用在训练过程中定期保存的检查点(checkpoints)。这些检查点包含了模型的参数,可以用来近似计算训练样本的影响。

然而,上述方法通常伴随着昂贵的计算成本,即使应用于中等规模的模型也是如此。为了解决这个问题,可以考虑两个关键维度:1)减少搜索空间;2)减少近似参数的Hessian向量数量。

Guo等人(2020)还展示了影响函数在模型调试中的适用性。

最近,Anthropic已经采用了特征值校正的Kronecker-分解近似曲率(EK-FAC)来扩展这种方法,以适应具有8.1亿、64亿、220亿和520亿参数的LLMs。

结果表明,随着模型规模的增加,有影响力的序列(这里指模型识别出的重要训练样本或数据点)更擅长捕捉查询的推理过程,而较小的模型提供的输出往往只能是与语义无关的信息片段。(Grosse等人,2023)。

3.1.4 自然语言解释(Natural Language Explanation)

 (d)为输入文本的重要组成部分提供解释,以协助进行常识推理(Rajani 等人,2019 年)(译文:常识推理问题:在和朋友一起吃汉堡时,人们想要做什么?  选项:玩得开心、美味,或消化不良 ;解释:通常,与朋友一起吃汉堡意味着愉快的时光。)

自然语言处理中的自然语言解释是指用生成的文本解释模型对输入序列的决策。生成自然语言解释的基本方法涉及使用原始文本数据人工注释的解释训练语言模型。然后训练有素的语言模型可以自动生成自然语言解释 (Rajani et al., 2019)

由于解释提供了额外的上下文空间,它们可以提高下游预测的准确性,并作为数据增强技术(Luo等人,2022;Yordanov等人,2022)。

  • 这意味着,当我们为模型的预测提供一个解释时,这个解释可以提供额外的信息,帮助模型更好地理解和处理新的数据,从而提高预测的准确性。
  • 数据增强是通过创建新的训练样本来提高模型性能的技术,而解释可以提供额外的信息,相当于增加了数据,帮助模型学习。

存在几种不同的预测-解释方法,包括“先解释再预测”(explain-then-predict)、“先预测再解释”(predict-then-explain)和“联合预测-解释”(joint predict-explain)方法。这些方法的选择取决于任务的目的。

  • 联合预测-解释:同时进行预测和解释,两者相互影响。
  • 先预测再解释:先进行预测,然后为预测结果生成解释。
  • 先解释再预测:先生成解释,然后使用这些解释来指导预测。

但是,应用生成的解释的可靠性仍需要进一步调查。值得注意的是,本节介绍的技术以及第4节提到的CoT(Chain of Thought)解释,它们都产生自然语言解释,这意味着它们生成的解释是人类可读的文本,可以直观地理解模型的预测过程。然而,这里覆盖的解释通常由单独的模型生成,而CoT解释是由LLMs本身产生的。

这意味着,有些情况下,我们会有一个专门的模型来生成解释,而在其他情况下,解释是由执行预测的同一个模型生成的。

上篇:【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(一)_可解释推荐的大型语言模型指标独特句子比率 (usr)-CSDN博客

下篇:

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

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

相关文章

音视频采集推流时间戳记录方案

音视频同步更多文章 深入理解音视频pts,dts,time_base以及时间数学公式_视频pts计算-CSDN博客 ffplay音视频同步分析_ffplay 音视频同步-CSDN博客 音视频采集打时间戳设计 实时音视频数据的采集和处理场景。具体来说: 采集阶段: 在音视频数据采集过…

「numpy」numpy初步、ndarray、创建数组

Numpy 初步、ndarray、创建数组 【目录】 简介 ndarray介绍 ndarray用法 ndarray基本操作 一、numpy简介 Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组。 Numpy支持常见的数组和矩阵操作。对于同样…

FFmpeg 编码和解码

文章目录 音频格式AACADIF音频数据交换格式ADTS音频数据传输流 音频解码音频编码 视频格式H264GOP图像组I帧,P帧,B帧H264压缩技术H264压缩级别H264视频级别H264码流结构SPSPPS 解码视频编码视频 音频格式 AAC AAC全称 Advanced Audio Coding&#xff0…

游戏引擎学习第67天

reviewing “apron”概念以更新区域 我们正在进行模拟区域的扩展工作,目标是通过增加一个更大的区域来支持更丰富的互动,尤其是那些可能超出摄像机视野的内容。现有的模拟区域包括摄像机能看到的区域和其周围的环境区域,但为了保证更高效的游…

3D线上艺术展:艺术与技术的完美融合

随着数字技术的飞速发展,未来的艺术展览正逐步迈向线上线下融合的新阶段。其中,3D线上展览以其独特的魅力,成为线下展览的延伸与拓展,为艺术爱好者们开辟了全新的观赏途径。 对于艺术家和策展人而言,3D线上展览不仅打…

Qt制作一个简单闹钟

增加testtospeech模块 QT core gui texttospeech 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> #include <QTimer> #include <QTime> #include <QMouseEvent> #include <QTextToSpeech>…

Java编程题_面向对象和常用API01_B级

Java编程题_面向对象和常用API01_B级 第1题 面向对象、异常、集合、IO 题干: 请编写程序&#xff0c;完成键盘录入学生信息&#xff0c;并计算总分将学生信息与总分一同写入文本文件 需求&#xff1a;键盘录入3个学生信息(姓名,语文成绩,数学成绩) 求出每个学生的总分 ,并…

tcpdump 网络数据包分析工具

简介 用简单的话来定义tcpdump&#xff0c;就是&#xff1a;dump the traffic on a network&#xff0c;根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的…

24个未授权访问漏洞详情

一、Redis未授权访问漏洞 第一步&#xff1a;进⼊vulhub⽬录使⽤以下命令启动靶机 进⼊⽬录&#xff1a;cd /vulhub-master/redis/4-unacc 启动&#xff1a;docker-compose up -d 检查&#xff1a;docker ps 第二步&#xff1a;在Kali上安装redis程序进⾏服务的链接 #安装r…

python3中条件判断语句:if 语句与if嵌套语句

一. 简介 本文开始学习 python3中条件判断语句。Python 条件语句是通过一条或多条语句的执行结果&#xff08;True 或者 False&#xff09;来决定执行的代码块。 二. python3中条件判断语句&#xff1a;if 语句与 if嵌套语句 1. if 语句 Python中if语句的一般形式如下所示&…

vue实现下拉多选、可搜索、全选功能

最后的效果就是树形的下拉多选&#xff0c;可选择任意一级选项&#xff0c;下拉框中有一个按钮可以实现全选&#xff0c;也支持搜索功能。 在mounted生命周期里面获取全部部门的数据&#xff0c;handleTree是讲接口返回的数据整理成树形结构&#xff0c;可以自行解决 <div c…

在 Unity 6 中为您的世界创建全局照明的新方法(三)

本文是Unity 6全局光照功能介绍系列中的最后一篇文章&#xff0c;在上篇文章中我们为大家介绍了关于使用沙漠绿洲场景创建实时光照的案例&#xff0c;在本文中我们将承接上篇文章继续为大家介绍如何使用Unity 6中的APV探针功能在URP管道中的另一个案例“花园场景”中创建实时光…

《计算机组成及汇编语言原理》阅读笔记:p116-p120

《计算机组成及汇编语言原理》学习第 7 天&#xff0c;p116-p120 总结&#xff0c;总计 5 页。 一、技术总结 1.CPU优化 (1)increase overall performance number 例如&#xff1a;16位电脑提升到32位电脑。 (2)multiprocessing One way to make computers more useful i…

Python的简单爬虫框架

爬虫为网络爬虫&#xff08;又称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在FOAF社区中间&#xff0c;更经常的称为网页追逐者&#xff09;&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、…

优化站群SEO:使用苹果CMS泛目录插件实现泛目录页面刷新不变

优化站群SEO&#xff1a;使用苹果CMS泛目录插件实现泛目录页面刷新不变 在当今数字营销环境中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;是提升网站流量和可见性的关键策略。苹果CMS作为一款灵活的内容管理系统&#xff0c;提供了丰富的插件功能&#xff0c;尤其是…

Spring Cloud由入门到精通

文章目录 1.初识微服务1.1. 单体架构1.2.分布式架构1.3.微服务1.4 微服务技术比对1.5.Spring Cloud1.6. 总结2.服务拆分和远程调用2.1.服务拆分原则2.2.服务拆分示例2.2.1.项目工程结构设计2.2.2.创建Maven项目工程2.3.实现远程调用案例2.3.1.案例需求:2.3.2. 注册 Rest Templ…

【RK3588 Linux 5.x 内核编程】-内核I2C子系统介绍

内核I2C子系统介绍 文章目录 内核I2C子系统介绍1、内核中的I2C子系统2、内核中的I2C驱动2.1 获取I2C适合器2.2 创建i2c_board_info与设备2.3 创建设备ID和I2C驱动2.4 数据传输2.4.1 发送数据2.4.2 读取数据3、I2C总线如何工作I2C 是一种用于双线接口的串行协议,用于连接低速设…

GPIO相关寄存器,点灯

目录 一.输入模式 1.浮空输入 2.上拉输入 3.下拉输入 4.模拟输入 二.输出模式 1.推挽输出 2.开漏输出 三.寄存器 1.寄存器的作用 2.功能与类型 3.控制某一引脚输出电压来点灯所需要控制的寄存器 1.打开对应时钟开关 2.端口模式寄存器 ---输出模式 3.输出类型寄存…

【基础篇】三、MySQL表结构的操作

文章目录 Ⅰ. 创建表1、语法2、创建表样例3、创建和其它表一样结构的表 Ⅱ. 查看表结构1、查看数据库中的表2、查看指定表的属性3、获取表的创建语句 Ⅲ. 删除表Ⅳ. 修改表结构1、向表中插入新的字段2、删除表中的字段3、修改表名4、修改字段属性 Ⅰ. 创建表 1、语法 create …

Ethernet 系列(12)-- 基础学习::SOME/IP

目录 1. SOME/IP简介&#xff1a; 1.1 什么是SOME/IP&#xff1a; 1.2 什么时候使用SOME/IP&#xff1a; 2. SOME/IP的特点&#xff1a; 2.1 序列化&#xff1a; 2.2 远程过程调用&#xff08;RPC&#xff09;: 2.3 服务发现&#xff1a; 2.4 发布/订阅&#xff1a; 2.5 UDP消息…