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

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

五、 解释评估(Explanation Evaluation)

在前面的章节中,我们介绍了不同的解释技术和它们的用途,但评估它们如何忠实地反映模型的推理过程仍然是一个挑战。我们将评估大致分为两类:传统微调范式的局部解释评估(第5.1节)和提示范式中自然语言CoT解释的评估(第5.2节)。

评估的两个关键维度是对人类的合理性在捕捉LLMs内部逻辑方面的忠实度 。 从技术上讲,评估解释包含人类评估(Human Evaluations)自动化评估(Automatic Evaluations)。人工评估通过模型依据(model rationales)与人类依据或主观判断之间的相似性来评估合理性。然而,这些方法通常忽略了忠实度。主观判断也可能与模型推理不一致,使这种评估不可靠。正如Jacovi和Goldberg(2020)所主张的,忠实度评估应该有一个明确的目标,并避免人类参与。通过扰乱模型依据来测试重要性,避免人类偏见。因此,制定严格的自动化指标对于公平的忠实度评估至关重要,这将在忠实度评估维度下进行讨论

模型依据"Model rationales":指的是模型在做出预测或决策时所依据的关键信息,理由或证据。这些理由通常是从输入文本中提取的一组标记(tokens)

5.1 传统微调范式中的解释评估(Explanation Evaluations in Traditional Fine-tuning Paradigms)

我们从两个方面介绍局部解释的评估:合理性(Plausibility)和忠实度(Faithfulness)。两部分主要涵盖可以应用于比较各种解释方法的通用属性和指标。我们关注定量评估属性和指标,这些指标通常比定性评估更可靠。

5.1.1 评估合理性(Evaluating plausibility)

局部解释的合理性通常在输入文本或token级别进行测量。合理性评估可以分为五个维度:语法、语义、知识、推理和计算(Shen et al., 2022)。这些维度描述了被掩盖的输入(masked input)和人类标注的解释之间的关系。不同的评估维度需要不同类型的数据集。

例如,句子“The country [MASK] was established on July 4, 1776.”,人类标注的依据是“established on July 4, 1776”。根据历史知识,我们知道美国是在1776年7月4日宣布独立的,所以正确的预测应该是“the United States”。这个预测是基于事实和知识得出的。尽管依据可能在不同的级别(如token或片段),评估程序除了多样化的指标外,其余相同。

人类标注的依据通常来自基准数据集,应满足几个标准:1)充分性:意味着依据足以让人们做出正确的预测;2)紧凑性:要求如果依据的任何部分被移除,预测将改变(Mathew等人,2021年)。解释模型随后负责预测重要的token,并使用这些token生成依据。

上述两种依据将用各种指标进行测量,常用的指标可以分为两类:

  • token级依据的指标:包括交集比(IOU)、精确度和召回率。
  • 衡量整体合理性的指标:包括离散情况下的F1分数,以及连续或软标记选择情况下的精确度召回率曲线下面积(AUPRC)(DeYoung等人,2020年)
  1. 交集比并集(Intersection-Over-Union, IOU):一种衡量两个集合重叠程度的指标,用于评估模型预测的准确性。

  2. 精确度(Precision)召回率(Recall):衡量模型预测准确性的两个指标,精确度指预测为正的样本中实际为正的比例,召回率指所有实际为正的样本中被预测为正的比例。

  3. F1分数(F1 Score):精确度和召回率的调和平均数,用于衡量模型的整体性能。

 5.1.2 评估忠实度(Evaluating Faithfulness)

评估忠实度的时候,我们有一些原则和指标来量化地衡量一个解释有多忠实于模型的真实推理过程。这些原则和指标通常针对特定的解释技术,但我们只讨论一些普遍适用的。分为模型视角和数据视角的指标。 模型级原则包括实现不变性、输入不变性、输入敏感性、完整性、极性一致性、预测一致性和充分性:

  • 实现不变性:也称为模型敏感性,不管模型的结构怎么变,只要功能一样,解释的结果应该是一样的。指的是归因分数应在不同但功能等价的模型架构间保持一致(Sundararajan et al., 2017)。
  • 输入不变性:如果输入数据变化了,但变化的部分不影响模型的预测,那么解释结果也应该保持不变。例如在输入发生恒定偏移时,归因分数应保持不变(Kindermans et al., 2017)。
  • 输入敏感性:对于影响模型预测的特征,解释结果应该体现出它们的重要性。指的是对于仅解释预测差异的特征,归因分数应非零(Sundararajan et al., 2017)。
  • 完整性:这个原则要求解释能够全面地反映出模型的决策过程。结合了敏感性和实现不变性,并从微积分中引入路径积分,这只适用于可微方法(Sundararajan et al., 2017)。
  • 极性一致性:解释中提到的重要特征,不应该对模型的最终预测产生负面影响。指出一些高级特征可能对最终预测产生抑制效应,这对解释产生负面影响,应该避免,但大多数时候没有避免(Liu et al., 2022)。
  • 预测一致性:指的是具有相同解释的实例应该有相同的预测。
  • 充分性:即使解释不同,只要关键特征相同,预测结果也应该是相同的。要求具有相同归因的数据应具有相同的相关标签,即使具有不同的解释(Dasgupta et al., 2022)。

这些原则帮助我们确保解释方法是可靠的。但是,每个指标只能覆盖忠实度问题的一个方面,很难有一个指标能解决所有问题。这些方法主要关注于通过设定一些规则来避免解释模型出现不一致的行为。至于模型的整体性能,我们会用一些特定的指标来衡量。

有一种重要的、不依赖于特定模型的工作,它通过量化模型预测和模型依据之间的关系来衡量忠实度。在测试集上计算的一些常见指标如下:

  •  全面性(COMP):当我们从原始文本中移除那些最重要的tokens后,原始预测类别的概率变化有多大,这意味着tokens的重要性,\text { comprehensiveness }=m\left(x_i\right)_j-m\left(x_i \backslash r_i\right)_j(DeYoung等人,2020)。
  • 充分性(SUFF):从文本中提取出来的依据,能够让模型做出预测的程度。\text { sufficiency }=m\left(x_i\right)_j-m\left(r_i\right)_j(DeYoung等人,2020)。
  • 决策翻转 - token比例(DFFOT):平均需要移除多少比例的token,才能让模型的决策发生翻转(从一个预测结果变为另一个)(Chrysostomou和Aletras,2021)。
  • 决策翻转 - 最有信息量的token(DFMIT):移除最有影响力的token,导致模型决策翻转的比例(Chrysostomou和Aletras,2021)。

ERASER(DeYoung等人,2020年)中,相关的token会根据它们的重要性被分成不同的组,然后按照重要性排序来逐个mask这些token,并逐步观察输出的变化。输出变化与遮盖token的重要性之间的相关性,表示模型正确归因特征重要性的能力。正如TaSc(Chrysostomou & Aletras,2021年)所声称的,较高的DFMIT和较低的DFFOT是首选的,因为这样可以精确识别重要token,模型的忠实度也更高。

相反,有些研究通过解释的弱点来衡量忠实度,比如捷径学习特征重要性的极性。Bastings等人(2022)通过模型识别学习捷径的能力来量化忠实度。在这种情况下,指标如precision@k(前k个token中的捷径百分比)和平均排名(在显著性排名中搜索的平均深度)这样的指标,表明了顶部特征代表所有真实捷径的能力。同样,较高的precision@k和较低的平均排名表示模型的良好忠实度。Liu等人(2022)通过执行违规测试来检查忠实度,以确保模型正确反映特征重要性和特征极性。

捷径学习:有些模型可能会走捷径,不是真正理解问题,而是通过一些简单的线索来做预测。研究者通过看模型能不能识别出这些捷径来衡量模型的忠实度。

特征重要性和特征极性:研究者还会检查模型是否正确理解了哪些特征是重要的,以及这些特征是正面的还是负面的。

违规测试(Faithfulness Violation Test)是一种用于评估模型解释忠实度的方法。它主要用于检测模型解释(例如,注意力权重)与实际特征影响力之间的一致性。

评估解释模型时存在两个关键问题,无论使用的具体指标如何:

  1. 模型如何量化重要特征?
  2. 模型能否有效地并正确地从前几个特征中提取尽可能多的影响特征?

然而,现有的评估指标通常在同一模型解释中的评估结果不一致。例如,按照DFFOT(决策翻转-标记比例)排名最好的解释,在SUFF(充分性)指标下可能是最差的(Chan等人,2022b)。TaSc研究表明,基于注意力的重要性指标比非注意力的指标更稳健,但将注意力视为解释本身仍然是有争议的(Jain & Wallace,2019)。

此外,这些评估指标不能直接应用于自然语言解释,因为此类解释很少与输入有直接联系。Atanasova等人(2023)提出了两个自然语言解释模型的忠实度测试方法:

  1. 反事实测试(Counterfactual Test):这种测试通过构建反事实案例来评估解释模型的忠实度。具体来说,就是从原始例子出发,通过插入能够改变模型预测的tokens来构建反事实案例。如果解释中没有包含这些插入的tokens,那么这种解释方法就被认为是不忠实的。

  2. 输入重构测试(Input Reconstruction Test):这种测试探索解释是否足够充分,以使得模型能够做出与原始例子相同的预测。在这种测试中,每个例子的解释被转换成一个新的输入,结合原始输入和解释本身,然后检查这样的新输入是否会导致与原始输入相同的预测。

不幸的是,因为两种测试都可以引入新的语言变体,因此在生成新短语时,它们在公平评估忠实度方面存在挑战。

另外,Chen等人(2023b)从信息的角度提供了评估指标,通过检查自然语言解释是否支持模型预测,以及解释中的新信息是否能够合理化模型预测,来评估解释模型的忠实度。

5.2 提示范式中的解释评估(Evaluation of Explanations in Prompting Paradigms)

最近,LLMs如GPT-3和GPT-4显示出了其预测生成自然语言解释的强大能力。然而,目前尚不清楚这些解释是否真的有助于人类理解模型的推理过程,并推广到新输入。注意,评估此类解释(例如,CoT依据)的目标和观点与评估第5.1节中引入的传统解释不同。已有合理性、忠实度和稳定性(也称为多样性)等指标来评估解释。与传统解释一样,我们关注评估合理性和忠实度。

5.2.1 评估合理性(Evaluating plausibility)

关于评估自然语言解释模型的合理性,Chen等人(2023d)提出了评估自然语言解释的反事实模拟能力(counterfactual simulatability)的概念。这意味着要评估解释是否帮助人类推断AI模型在不同反事实输入上的行为。他们提出了两个指标:

  1. 模拟泛化性(Simulation Generality):这个指标衡量解释帮助模拟的反事实案例的多样性。例如,“人类不吃肉”比“穆斯林不吃猪肉”有更广泛的相关反事实案例,因此更具泛化性。

  2. 模拟精确度(Simulation Precision):这个指标衡量人类推断与模型输出匹配的反事实案例的比例。也就是说,如果人类根据解释推断的输出与模型实际输出一致,那么模拟精确度就高。

他们发现,GPT-3.5和GPT-4等LLMs的解释精度低,表明它们误导人类形成不正确的心理模型。该论文揭示了当前方法的局限性,优化人类偏好如合理性可能不足以提高反事实可模拟性。

5.2.2 评估可信度(Evaluating Faithfulness)

研究解释的忠实度,即检查解释在多大程度上反映了模型预测背后的实际原因。例如,最近的一项实验分析表明,思维链(chain-of-thought)解释可能是系统性的不忠实的(Turpin et al., 2023)。研究者通过重新排列少量样本提示中的多项选择选项,引入偏见,使得答案总是“A”。然而,像GPT-3.5和Claude 1.0这样的语言模型未能在其解释中阐述这些偏见特征的影响。模型生成的解释没有忠实地代表真正的决策过程。

另一项工作还表明,大型语言模型(LLMs)所声称的链式思考推理可能在某些任务上不忠实,而较小的模型相比更大、更强大的模型更倾向于生成更忠实的解释(Lanham et al., 2023)。这些研究突显了对LLMs解释忠实度的担忧,即使这些解释看起来是合理的。为了提高CoT的推理忠实度,一项研究初步提出了通过将问题分解为子问题并单独回答它们来生成模型推理。分析表明,分解方法可以在几个指标上接近CoT的性能,同时提高l了忠实度。需要更多的未来研究来开发使模型解释更好地反映预测背后原因的方法。

六、 研究挑战(Research Challenges)

在这一部分,探讨了自然语言处理(NLP)和可解释人工智能(XAI)领域中需要进一步研究的关键挑战。

6.1 无标准真实解释(Explanation without Ground Truths)

LLMs的标准真实解释通常无法获取。例如,目前没有基准数据集来评估LLMs的全局解释。这带来了两个主要挑战。首先,很难设计准确反映LLM决策过程的解释算法。其次,缺乏参考标准使得评估解释的忠实度和保真度成为问题。在缺乏参考标准指导的情况下,选择各种方法中合适的解释也面临挑战。潜在解决方案包括涉及人类评估和创建合成解释数据集。

  • 涉及人类评估:通过人类的主观评估来评估解释的合理性,尽管这些方法可能忽视了忠实度,并且可能与模型推理不一致,但它们仍然是评估解释的一个途径。

  • 创建合成解释数据集:为了弥补缺乏基准数据集的问题,可以创建合成的解释数据集来评估和训练解释模型。

6.2 涌现能力来源(Sources of Emergent Abilities)

随着模型规模和训练数据的增加,LLMs展现出了令人惊讶的涌现能力,即使没有被明确训练来执行这些任务。阐明这些涌现能力起源仍然是一个开放的研究挑战,特别是对于像ChatGPT和Claude这样的专有模型,它们的架构和训练数据未公开。即使是像LLaMA这样的开源LLMs,目前对其涌现能力的解释也有限。这可以从模型和数据的角度进行调查。

6.2.1 模型视角(Model Perspective)

研究基于Transformer的模型对于揭示LLMs的内部工作至关重要。关键的问题包括:

  1. 哪些特定的模型架构赋予了LLMs的涌现能力?
  2. 实现在多样化语言任务上的强大性能所需的最小模型复杂性和规模是多少?

随着 LLM 的规模继续迅速增加,继续使用基础模型进行严格分析和实验仍然势在必行。推进这些领域的知识将使 LLM 更加可控和可靠。

6.2.2 数据视角(Data Perspective)

除了模型架构外,训练数据是理解LLMs涌现能力的另一个重要视角。一些代表性的研究问题包括:

  1. 哪些特定的大规模训练数据子集负责特定模型预测,是否可能找到这些示例?
  2. 涌现能力是模型训练的结果还是数据污染问题的人为因素(Blevins et al., 2023)?
  3. 对于有效的预训练和微调LLMs,训练数据的质量或数量哪个更重要?

理解训练数据特征与模型行为之间的相互作用将为大型语言模型中紧急能力的来源提供关键见解。

6.3 比较两种范式(Comparing Two Paradigms)

在自然语言推理(NLI)任务中,下游的微调(fine-tuning)范式和提示范式(prompting)在分布内(in-distribution)和分布外(out-of-distribution, OOD)性能上表现出显著差异。这表明这两种方法在预测推理上依赖于不同的推理。这表明两种方法在预测时依赖的推理过程不同。然而,对微调和提示范式之间的解释进行综合比较的研究仍然缺乏。未来的研究需要更好地阐明这些范式之间的解释差异。一些有趣的开放性问题包括:

  1. 微调模型和提示模型在分布内样本预测中使用的理由有何不同
  2. 微调和提示范式在OOD鲁棒性上的分歧原因是什么?能否将此归因于推理差异

推进这一理解将有助于为特定用例选择合适的范式,并在各个范式中提高鲁棒性。

6.4 LLMs的捷径学习(Shortcut Learning of LLMs)

最近的可解释性研究表明,语言模型在进行预测时经常走捷径。

  • 对于下游的微调范式,研究表明语言模型利用各种数据集的伪影和偏见进行自然语言推理任务,例如词汇偏见、重叠偏见、位置偏见和风格偏见(Du et al., 2023)。这显著影响了分布外泛化性能。
  • 对于提示范式,最近的一项研究分析了语言模型如何使用更长的上下文(Liu et al., 2023b)。结果表明,当相关信息位于上下文的开头或结尾时,性能最高,而当模型必须访问长上下文中中间的相关信息时,性能会降低。

这些分析表明,两种范式在某些情况下都倾向于利用捷径,这突出了需要更多的研究来解决这个问题并提高泛化能力。

  1. 伪影(Artifacts)

    伪影是指在数据集中由于某种非预期因素导致的错误模式或特征。这些可能是数据收集、处理或标注过程中产生的误差,或者是数据本身固有的某种规律性错误。

    例如,在自然语言推理任务中,如果数据集中的某些推理样本因为标注错误或者数据构造的方式,导致模型能够通过某些非逻辑的线索(如关键词的出现)来轻易判断答案,而不是通过真正的推理过程,这种非逻辑的线索就是伪影。
     
  2. 偏见(Biases)

    偏见是指模型在训练过程中学习到的倾向于某些特定特征的偏好,这些特征可能与任务的目标不完全相关,但因为它们在训练数据中频繁出现或以某种方式被强调,导致模型在做出预测时过度依赖这些特征。

    偏见可以是数据集层面的,比如数据集中某些类别的样本数量远多于其他类别,导致模型对这些类别有更高的识别准确率;也可以是特征层面的,比如模型倾向于根据某些表面特征(如词汇选择、句子结构)而不是深层语义来做出预测。
     

在自然语言推理任务中,常见的偏见包括:

  • 词汇偏见(Lexical Bias):模型可能因为某些词汇在训练数据中与特定标签强相关而倾向于选择这些标签。
  • 重叠偏见(Overlap Bias):如果前提和假设在词汇上有重叠,模型可能错误地认为它们是相关的。
  • 位置偏见(Position Bias):模型可能因为训练数据中某些特征总是出现在特定位置而对这些位置赋予更高的权重。
  • 风格偏见(Style Bias):模型可能对某种语言风格或表达方式有偏好,而这种偏好与推理的正确性无关。

6.5 注意力冗余(Attention Redundancy)

最近的研究使用可解释性技术研究了大型语言模型中注意力的冗余性问题,这些研究涉及传统的微调范式和提示范式。例如,Bian等人分析了BERT-base在不同预训练和微调阶段的注意力冗余性。实验分析表明,存在注意力冗余,发现许多注意力头是冗余的,可以在对下游任务性能影响很小的情况下进行剪枝。同样,Bansal等人研究了OPT-66B在上下文学习情景中的注意力冗余性。他们发现,注意力头和前馈网络中都存在冗余

他们的发现表明,许多注意力头和其他组件是冗余的。这为开发模型压缩技术提供了机会,可以在保留下游任务性能的同时剪枝冗余模块。

6.6 从快照可解释性转向时间分析(Shifting from Snapshot Explainability to Temporal Analysis)

还有一种观点认为,当前的可解释性研究忽视了训练动态。现有的研究主要是对完全训练好的模型进行事后解释。缺乏对训练过程的发展阶段的研究,可能会产生有偏见的解释,因为它未能针对模型在收敛过程中依赖的新兴能力或遗留部分,即所谓的相变(phase transitions)

此外,对某些特征进行干预未能反映特征之间的相互作用(Saphra, 2022)。因此,有一种趋势是从静态的、快照式的可解释性分析转向动态的、时间性的分析

通过检查训练过程中的几个检查点,Chen等人(2023a)发现了在预训练过程中,模型突然获得的一种能力,即特定的注意力头开始专注于单词的句法邻居。这种现象发生在模型训练的某个短暂窗口期,与训练损失的急剧下降同时发生。他们还表明,SAS对于学习期间获得语法能力至关重要。

受到这种视角的启发,发展分析可以揭示更多有助于理解和改进模型性能的训练过程中的因果关系和训练模式。

6.7 安全与伦理(Safety and Ethics)

大型语言模型(LLMs)的可解释性缺乏确实带来了显著的伦理风险,因为它们的能力越来越强。没有可解释性,分析、限制潜在的危害(如错误信息、偏见和社会操纵等问题)变得具有挑战性。可解释的AI技术对于审查这些强大的模型并确保它们与人类价值观保持一致至关重要。

例如,追踪训练数据归因或可视化注意力可以揭示嵌入的偏见,如性别刻板印象(Li et al., 2023a)。此外,探测分类器可以识别模型学习表示中是否编码了有问题的关联。

部署LLMs的研究人员、公司和政府有道德责任优先考虑可解释的AI。像严格的模型审查、外部监督和透明度法规这样的举措可以帮助减轻LLMs变得更加普遍时的风险。例如,随着对齐系统的规模不断扩大,人类反馈在治理LLMs方面变得无力,这给这些系统的安全性带来了巨大挑战。正如Martin(2023)所声称的,将可解释性工具作为审查过程的一部分,以补充人类反馈可能是一个富有成效的方法。在扩大模型规模和性能的同时,推进可解释性技术必须仍然是一个优先事项,以确保越来越有能力的LLMs的安全和道德发展。

七、结论(Conclusions)

在本文中,我们提供了对LLMs可解释性技术的全面概述。我们总结了基于模型训练范式的局部和全局解释方法。我们还讨论了使用解释来改进模型、评估和关键挑战。

主要的未来发展方向包括为不同的LLMs开发定制的解释方法、评估解释的忠实度和提高人类可解释性。随着LLMs的不断发展,可解释性将变得极为重要,以确保这些模型是透明的、公平的和有益的。

我们希望这篇综述能够为这一新兴研究领域提供有用的组织,并突出未来工作中的开放问题。

上篇:

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

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

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

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

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

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

相关文章

SQL 中的 EXISTS

我们先从 SQL 中最基础的 WHERE 子句开始。 比如下面这条 SQL 语句: 很显然,在执行这条 SQL 语句的时候,DBMS 会扫描 Student 表中的每一条记录,然后把符合 Sdept IS 这个条件的所有记录筛选出来,并放到结果集里面去…

C语言链表通关文牒0.5

之前排序创建链表那里用的是哨兵法,但是有局限性,这里介绍一个补充,不创建第一个空节点进行排序 NODE *create() {int val;NODE *head NULL; // 初始化头指针为NULLNODE *pC NULL; // 初始化指针,用于遍历链表while(1) {pri…

GAN对抗生成网络(一)——基本原理及数学推导

1 背景 GAN(Generative Adversarial Networks)对抗生成网络是一个很巧妙的模型,它可以用于文字、图像或视频的生成。 例如,以下就是GAN所生成的人脸图像。 2 算法思想 假如你是《古董局中局》的文物造假者(Generator,生成器)&a…

基于Python的携程旅游景点数据分析与可视化

基于Python的携程旅游景点数据分析与可视化 爬取景点、价格、开放状态、评论、热度、优惠政策等信息。 功能列表 指定城市爬取支持登录支持筛选支持评论爬取支持数据存在数据库支持生成Excel支持可视化 部分效果演示 爬取的旅游景点信息 生成Excel 指定城市爬取 可视化 部门…

SQL-leetcode-197. 上升的温度

197. 上升的温度 表: Weather ---------------------- | Column Name | Type | ---------------------- | id | int | | recordDate | date | | temperature | int | ---------------------- id 是该表具有唯一值的列。 没有具有相同 recordDate 的不同行。 该表包…

等待事件 ‘latch: row cache objects‘ 说明及解决方法

早上刚来的时候,收到zabbix 数据库连接数增长的告警,同时应用负责人也说查询很慢、很卡 查看该时间段 最多的等待事件 SELECT event,COUNT(1) num FROM V$ACTIVE_SESSION_HISTORY A WHERE A.SAMPLE_TIME BETWEEN TO_DATE(2025-01-02 09:00:00, YYYY-M…

HAL 库------中断相关函数

HAL_SuspendTick();是对SysTick中CTRL寄存器中TICKINT位清0 HAL_ResumeTick(); 刚好与上面函数相反,对SysTick中CTRL寄存器中TICKINT位置1,恢复stick中断。

IDEA开发Java应用的初始化设置

一、插件安装 如下图所示: 1、Alibaba Java Coding Guidelines 2.1.1 阿里开发者规范,可以帮忙本地自动扫描出不符合开发者规范的代码,甚至是代码漏洞提示。 右击项目,选择《编码规约扫描》,可以进行本地代码规范扫…

QT-------------多线程

实现思路 QThread 类简介: QThread 是 Qt 中用于多线程编程的基础类。可以通过继承 QThread 并重写 run() 方法来创建自定义的线程逻辑。新线程的执行从 run() 开始,调用 start() 方法启动线程。 掷骰子的多线程应用程序: 创建一个 DiceThre…

在C语言基础上的C++(深入理解类和对象)

1:构造函数 1:为什么使用构造函数 由于类的封装性,一般来说,数据成员是不能被外界访问的,所以对象的数据成员的初始化工作就给共有函数来完成了。如果定义了构造函数,那么只要对象一建立,就可…

ESP32_H2-ESP32_H2(IDF)学习系列-安装官方组件

1、 在VS Code项目工程中添加IDF组件注册表中的组件十分便捷。您只需按下“CtrlShiftP”快捷键快速进入命令面板,或者通过菜单栏的“查看”选项,选择“命令面板”来打开它。随后,在命令面板中输入“ESP-IDF: Show Component Registry”即可展…

【UE5】UnrealEngine源码构建2:windows构建unreal engine 5.3.2

参考大神知乎的文章:UE5 小白也能看懂的源码编译指南 据说会耗费400G的空间。 代码本身并不大,可能是依赖特别多,毕竟看起来UE啥都能干,核心还是c++的, 【UE5】UnrealEngine源码构建1:tag为5.3.2源码clone 本着好奇+ 学习的态度,想着也许有机会能更为深入的熟悉UE的机制…

[Qt] 常用控件 | QWidget | “表白程序2.0”

目录 一、控件概述 控件体系的发展阶段: 二、QWidget 核心属性 核心属性概览: 1、enabled 2、Geometry 实例 1: 控制按钮的位置 实例 2: 表白 程序 i、Window Frame 的影响 ii、API 设计理念 iii、Geometry 和 FrameGeometry 的区别 &#xf…

laravel部署到云服务器上,除了首页之外,区域页面找不到路由

laravel部署到云服务器上,除了首页之外,区域页面找不到路由,都是报404错误 解决方法: (注:本人服务器使用宝塔面板) 打开宝塔面板,找到该站点->配置文件 在下方增加如下代码 …

git注意事项

提交代码的备注 feat : 开发 新增功能 fix: 修复 git相关 1. git安装及全局用户设置 Git安装 npm install git -ggit修改用户名邮箱密码 git config --global --replace-all user.name "要修改的用户名" git config --global --replace-all user.email"要修改…

Agent系列:AppAgent v2-屏幕智能Agent(详解版)

引言 简介 方法 Agent 框架 Agent 交互 探索阶段 部署阶段 文档生成 高级功能 实验结果 总结 局限性 未来工作 1. 引言 大语言模型(LLM)如 ChatGPT 和 GPT-4 显著提升了自然语言处理能力,并且推动了智能体在自主决策中的应用。…

flink cdc oceanbase

接上文:一文说清flink从编码到部署上线 环境:①操作系统:阿里龙蜥 7.9(平替CentOS7.9);②CPU:x86;③用户:root。 预研初衷:现在很多项目有国产化的要求&#…

Docker 安装与配置 Nginx

摘要 1、本文全面介绍了如何在 Docker 环境中安装和配置 Nginx 容器。 2、文中详细解释了如何设置 HTTPS 安全连接及配置 Nginx 以实现前后端分离的代理服务。 2、同时,探讨了通过 IP 和域名两种方式访问 Nginx 服务的具体配置方法 3、此外,文章还涵…

C语言格式输出

1.转换字符说明: 2.常用的打印格式: 在 C 语言中,格式输出主要依靠 printf 函数来实现。以下是一些 C 语言格式输出的代码举例及相关说明。 printf("%2d",123),因为输出的部分有三位数,但是要求…

yolov5核查数据标注漏报和误报

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、误报二、漏报三、源码总结 前言 本文主要用于记录数据标注和模型预测之间的漏报和误报思想及其源码 提示:以下是本篇文章正文内容,…