当前位置: 首页 > news >正文

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

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

三、传统微调范式(Traditional Fine-Tuning Paradigm)

在这个范式中,首先在大量未标记的文本数据上预训练一个语言模型,然后针对特定下游领域的标记数据集进行微调,例如GLUE基准测试中的SST-2、MNLI和QQP。

在大量未标记的文本数据上预训练一个语言模型的过程,实际上是通过无监督学习来实现的。这个过程不依赖于人工标注的数据,而是利用大量可用的文本内容,让模型学习语言的基本规律和结构。

  1. 屏蔽语言建模(Masked Language Modeling, MLM):这是一种常见的预训练任务,也称为去噪自编码。在这种方法中,模型会被训练来预测句子中被随机遮蔽(即用特殊的标记替换)的单词。例如,在一个句子中,一些单词会被替换为"[MASK]",模型的任务就是预测这些被遮蔽的单词。这种方法帮助模型学习上下文关系并捕获语言模式。

  2. Transformer架构:预训练通常采用基于Transformer的架构,这种架构擅长捕获远程依赖关系和上下文信息。Transformer因其自注意力机制而闻名,能够处理序列数据中的长距离依赖问题。

想象一下,我们有一个巨大的书架,上面摆满了各种各样的书(这就像是未标记的文本数据,我们称之为“预训练”)。这些书包含了丰富的知识和信息,但是我们不知道具体每一本书都讲了什么。现在,我们想用这些书来解答一些具体的问题,比如关于科学、历史或者文学的问题(这就像是下游任务,比如情感分析、问答等)。

举个例子🌰:

假设我们有一个语言模型,它在大量的网页、书籍和文章上进行了预训练,这意味着它已经“阅读”了很多东西,对语言有了基本的理解。现在,我们想要这个模型在特定的任务上表现得更好,比如判断电影评论是正面的还是负面的(这就是SST-2任务)。

为了做到这一点,我们从网上收集了很多电影评论,并且每一条评论都标记了它是正面的还是负面的。然后,我们用这些标记好的评论来进一步训练(微调)我们的模型。这样,模型就能学习到哪些词语和表达通常与正面评论相关,哪些与负面评论相关。

经过这样的微调过程,我们的模型就能更好地理解电影评论的情感倾向,并准确地判断新的评论是正面还是负面的。这就是“传统微调范式”的一个实际应用实例。

在微调过程中,可以轻松地在语言模型的最后一个编码器层之上添加全连接层,使其适应各种下游任务。

Q:这里为什么要在最后一个编码器层之上添加全连接层,而不是调整最后几层的连接权值?
A:

  • 全连接层可以视为一个额外的“任务特定”层,它允许模型针对特定的下游任务学习新的特征表示,而不需要改变原有的预训练模型结构。这种方法可以保留预训练模型中学习到的通用语言知识,同时为特定任务学习新的知识。
  • 直接调整最后一层的连接权值可能会破坏预训练模型中已经学习到的知识,因为这些权值在预训练阶段已经针对大量数据进行了优化。

3.1 局部解释(Local Explanation)

第一类解释是解释LLM生成的预测。让我们考虑一个场景,我们有一个语言模型,我们输入一个特定的文本到模型中。然后模型产生一个分类输出,例如情感分类。在这个场景中,解释的作用是阐明模型为特定输入生成特定分类或预测的过程。由于目标是解释LLM对特定输入的预测,我们称之为局部解释。这一类包括四种主要的方法来生成解释,包括基于特征归因的解释、基于注意力的解释、基于示例的解释和自然语言解释。

 

 3.1.1 基于特征归因的解释(Feature Attribution-Based Explanation)

特征归因方法旨在测量每个输入特征(例如,单词、短语、文本跨度)与模型预测的相关性。给定一个由n个单词特征{x1, x2, ..., xn}组成的输入文本x,一个微调过的语言模型f生成一个输出f(x)。归因方法为输入单词特征xi分配一个相关性得分R(xi),以反映其对模型预测f(x)的贡献。遵循这一策略的方法可以分为四种类型:基于扰动的方法、基于梯度的方法、替代模型和基于分解的方法.

3.1.1.1 基于扰动的解释(Perturbation-Based Explanation)

基于扰动的方法通过扰动输入样本来工作,例如对input features进行removing、masking或altering,进而评估模型输出的变化

最直接的策略是逐个移除(leave-one-out),它通过在不同级别上移除特征来扰动输入,从而测量特征的重要性,包括embedding vectors、hidden units(Li et al., 2017)、word(Li et al., 2016)、token和span(Wu et al., 2020b) ,基本思想是移除输入子集以改变模型预测。

  • 嵌入向量(Embedding Vectors)级别的扰动:

替换向量:将某个单词的嵌入向量替换为一个随机向量或者零向量,然后观察模型输出的变化。

扰动向量:对嵌入向量进行微小的修改,比如添加一些噪声,然后看模型的预测如何响应这种变化。

  • 隐藏单元(Hidden Units)级别的扰动:

激活值修改:直接修改神经网络中隐藏层的激活值,比如将某些隐藏单元的输出设置为0,以观察对最终预测的影响。

层级扰动:对整个隐藏层进行操作,比如随机打乱某层的输出,或者将整层的输出替换为另一个层的输出。

  • 单词(Words)级别的扰动:

删除单词:从句子中移除某个单词,然后看模型的输出如何变化。

替换单词:用同义词或其他单词替换原文中的单词,观察模型是否能够识别出这种变化。

  • 标记(Tokens)级别的扰动:

删除标记:移除句子中的某个标点符号或词语,观察模型输出的变化。

替换标记:用其他标记替换原文中的标记,比如将“的”替换为“了”,然后观察模型的响应。

  • 跨度(Spans)级别的扰动:

删除跨度:选择句子中的一段连续文本(可能是一个短语或子句)并删除,然后观察模型的输出如何变化。

替换跨度:用其他文本替换选定的跨度,比如将“美丽的花朵”替换为“普通的植物”,然后看模型是否对这种替换敏感。

输入子集使用各种指标来选择,如置信度得分。然而,这种移除策略假设输入特征是独立的,忽略了它们之间的相关性。此外,基于置信度得分的方法可能因过度自信模型的病理行为而失效。例如,即使减少的输入是无意义的,模型也可以保持高置信度预测。

(b) 通过删除“did”来扰乱问题,答案“Colorado Springs experiments”的置信度甚至增加了,而答案对人类来说是无意义的(Feng et al., 2018);

这种过度自信问题可以通过使用常规示例正则化(Regularization with Regular Examples)、标签平滑(Label Smoothing)和微调模型的置信度(Fine-tuning Models’ Confidence)来缓解。

  • 常规示例的正则化(Regularization with Regular Examples):

正则化是一种防止模型过度拟合的技术,过度拟合意味着模型在训练数据上表现很好,但在新的、未见过的数据上表现差。使用常规示例的正则化意味着在训练过程中加入一些普通的、常见的示例,以确保模型不会只对某些特殊或极端的案例过于敏感。

  • 标签平滑(Label Smoothing):

标签平滑是一种技术,它不让模型对于任何单一的输出类别过于自信。在分类任务中,模型通常会学习将输入分配到某个类别的概率,标签平滑则是让模型对每个类别的置信度不要达到100%,从而减少过度自信。

  • 微调模型的置信度(Fine-tuning Models’ Confidence):

微调是指在模型初步训练后,针对特定的任务或数据集进一步调整模型参数的过程。微调模型的置信度意味着调整模型,使其在做出预测时的置信度更加准确,既不过分自信也不过分犹豫。

此外,当前的扰动方法倾向于生成分布外的数据。这可以通过将扰动数据限制在接近原始数据分布来缓解。

 举个栗子🌰:

假设我们正在训练一个图像识别模型,任务是识别图片中的猫和狗。

数据扰动:为了提高模型的泛化能力,我们可能会对训练图片进行一些随机扰动,比如改变亮度、对比度,或者在图片中加入一些随机的噪声点。这些扰动可以帮助模型学习到在不同光照和环境中识别猫和狗的能力。

生成分布外数据的问题:如果我们在扰动过程中加入太多噪声,或者把图片旋转得太厉害,那么得到的图片可能就和任何实际场景中的猫和狗图片都不像了。这样的图片就是分布外数据,模型在这些数据上的表现可能很好,但在真实世界中的表现可能会下降。

限制扰动数据接近原始数据分布:为了避免生成过多的分布外数据,我们可以限制扰动的程度,比如只允许在一定范围内调整亮度和对比度,或者只加入少量的噪声点。这样,扰动后的图片仍然接近原始数据的分布,模型就能在保持泛化能力的同时,减少对分布外数据的过度适应。

3.1.1.2 基于梯度的解释(Gradient-Based Explanation)

基于梯度的归因技术通过分析输出相对于每个输入维度的偏导数来确定每个输入特征的重要性。导数的大小反映了输出对输入变化的敏感性。原始梯度方法的基本公式描述为

sj = ∂f(x)/∂xj,

其中f(x)是网络的预测函数,xj表示输入向量。 “梯度×输入”是一种改进的方法,不仅看模型对每个单词的敏感度,还要看这个敏感度与单词本身值的乘积。并已用于各种解释任务,例如计算Token级别的归因分数。

在机器学习和特别是模型解释性(Explainability)领域中,"归因"(Attribution)指的是确定输入特征(如图像中的像素、文本中的单词等)对模型预测结果的贡献程度的过程。简而言之,归因方法试图回答以下问题:哪些输入特征对模型做出特定预测起到了关键作用?

然而基于梯度的方法有如下一些主要限制

  • 首先,它们不满足输入不变性,这意味着输入转换,如恒定位移,可以产生误导性的归因,而不影响模型预测。

“输入不变性”是指模型对输入数据的某些变化不敏感,这些变化不应该影响模型的预测结果,但在某些特征归因方法中可能会导致误导性的归因。换句话说,如果模型预测结果实际上没有变化,但归因方法却显示某些特征的重要性发生了变化,那么这种方法就没有满足输入不变性。

  • 其次,它们无法处理零值输入。

以下是几种可能的情况:

  1. 数值稳定性问题

    在某些算法中,零值可能引起数值稳定性问题,尤其是在进行数学运算(如除法或对数)时。例如,对数函数在0处是未定义的,所以如果输入包含零值,直接应用对数变换会导致错误。
  2. 梯度消失问题

    在基于梯度的优化算法中,如果输入特征的值非常接近零,可能会导致梯度消失,即梯度值变得非常小,从而使得模型权重的更新非常缓慢或几乎不更新。
  • 第三,它们受到梯度饱和的困扰,其中大梯度占主导地位,掩盖了较小的梯度。

“梯度饱和”是指在神经网络训练过程中,某些输入特征对应的梯度值变得非常大,以至于它们在反向传播算法中主导了权重更新的过程,从而使得其他具有较小梯度的特征对应的权重更新被相对忽略或掩盖。

差分参考方法,如集成梯度(IG),被认为是解决这些挑战的好方法,因为它们满足更多的归因公理

差分参考方法

差分参考方法是一种解释模型预测的技术,它通过比较模型对某个参考点(通常是中性或无信息的输入,如一个全黑的图片,如一个充满中性词汇的句子)和实际输入的预测差异来解释模型的决策。这种方法的核心思想是,通过分析模型输出在从参考点到实际输入的变化过程中的差异,来确定各个输入特征的重要性。


归因公理(Sundararajan et al., 2017)

归因公理是在机器学习模型解释性领域中,用于评估特征归因方法是否合理和一致的一系列标准。在深度学习模型中,这些公理帮助我们确定哪些特征对模型的预测结果有实质性的贡献。以下是两个基本的归因公理:

  1. Sensitivity(敏感性)

    这个公理要求,如果输入特征在某个维度上的变化导致了模型预测结果的变化,那么这个特征应该被赋予一个非零的归因值。换句话说,如果改变一个特征影响了模型的输出,那么这个特征被认为是敏感的,应该在归因分析中被标记为重要。
  2. Implementation Invariance(实现不变性)

    实现不变性公理表明,如果两个模型在所有输入上都产生了相同的输出,即使它们的内部结构或实现方式不同,那么对于这两个模型的归因方法应该给出一致的归因结果。这意味着归因方法不应该受到模型具体实现细节的影响。

集成梯度 Integrated Gradients(IG)是差分参考方法中的一种具体技术,它通过计算模型输出对于每个输入特征的敏感度(梯度)在从参考点到实际输入的路径上的累积和,来确定每个特征对模型预测的贡献。这种方法能够满足更多的归因公理,这使得IG成为一种强大的特征归因工具。IG方法的一个关键挑战是选择合适的参考点(baseline reference point),这个参考点对于可靠的评估至关重要,部分原因如下:

  1. 影响归因结果:参考点的选择直接影响归因的结果。如果参考点不合适,可能会导致归因结果包含不必要的噪声或误导性信息。例如,使用一个不具代表性的参考点可能会引入与输入无关的特征,从而影响模型对输入特征的真实贡献的评估。

  2. 确保接近零的输出:理想的参考点应该使得模型在该点的输出接近零。这是因为当参考点的输出接近零时,归因可以更清晰地反映输入特征对模型输出的贡献。如果参考点的输出不是接近零,归因结果可能会受到参考点本身的影响,导致对输入特征的贡献评估不准确。

然而,目前还没有明确的标准来确定最合适的参考点。一些研究使用噪声或合成数据作为参考点,但性能不能保证。此外,IG在处理梯度饱和区域时存在困难,即在模型的激活函数接近饱和时,大梯度可能会掩盖小梯度的贡献。因此,IG更关注于未饱和区域的梯度,以获得更准确的归因结果。

IG的另一个挑战是计算开销大,以实现高质量的积分。由于IG沿直线路径积分,这与离散的单词嵌入空间不适应,因此已经开发了变体以适应语言模型。

3.1.1.3 代理模型(Surrogate Models)

代理模型方法使用更简单、更易于人类理解的模型来解释黑盒模型的个体预测。这些代理模型包括决策树、线性模型、决策规则和其他白盒模型,它们对人类来说更易于理解。

1. 决策树(Decision Trees)

  • 解释:决策树是一种树形结构,其中每个内部节点代表一个特征的测试,每个分支代表测试的结果,每个叶节点代表输出类别或值。决策树通过一系列的问题(基于特征的决策)来引导我们从根节点到叶节点,最终得到预测结果。
  • 优点:直观易懂,可以清晰地展示特征如何影响预测。
  • 缺点:容易过拟合,可能无法捕捉复杂的数据关系。

2. 线性模型(Linear Models)

  • 解释:线性模型假设输入特征和输出之间存在线性关系。模型的预测是输入特征的加权和,加上一个偏置项。权重表示特征的重要性。
  • 优点:简单,计算效率高,容易解释。
  • 缺点:只能捕捉线性关系,对于非线性问题可能不适用。

3. 决策规则(Decision Rules)

  • 解释:决策规则是通过一系列条件语句定义的模型,每个规则都描述了输入特征满足特定条件时的预测结果。这些规则可以是“如果...那么...”的形式。
  • 优点:易于理解和解释,可以明确地看到特征与预测之间的关系。
  • 缺点:可能难以处理大量特征和复杂的决策边界。

解释模型需要满足可加性,即预测的总影响应等于每个解释因素的个体影响之和。此外,可解释表示的选择也很重要。与原始特征不同,这些表示应该足够强大以生成解释,且对人类有意义和可理解。

原始特征(Raw Features)是指直接从数据源中获取的未经处理的数据属性。这些特征通常是最基础的观测值,没有经过任何转换或提取过程,它们反映了数据的原始状态。在机器学习模型中,原始特征可以直接用作模型输入,或者作为特征工程的起点。

原始特征的例子:

  1. 文本数据:在文本处理中,原始特征可能是单词、字符或者句子本身。
  2. 图像数据:在图像识别任务中,原始特征可能是像素值或者颜色信息。
  3. 音频数据:在音频分析中,原始特征可能是声音波形或者频谱数据。

原始特征与处理后特征的区别:

  • 处理后特征(Processed Features):这些特征是通过对原始特征进行某种形式的转换或提取得到的。例如,在文本分析中,处理后的特征可能是词频统计、TF-IDF值或者词嵌入向量;在图像处理中,处理后的特征可能是边缘检测、角点检测或者深度学习模型提取的特征表示。

  • 表示特征(Representation Features):这些特征不仅要求能够生成有效的解释,而且要求对人类来说是有意义和可理解的。表示特征可能是经过精心设计的,以便捕捉数据中的关键信息,并以一种直观的方式展示给用户。

一个早期代表性的局部解释方法称为 LIME (Ribeiro et al., 2016)。为了给特定实例生成解释,代理模型在该实例周围采样的数据上进行训练,以近似原始复杂模型在局部区域的行为。如下图所示,原始的模型很复杂,非线性,但是在待测样本附近,可以拟合一个局部线性模型。

LIME(Local Interpretable Model-agnostic Explanations,局部可解释的模型无关的解释)是一种用于解释机器学习模型预测的技术。它的工作原理可以概括为以下几个步骤:

  1. 选择特定实例:首先,确定需要解释的模型预测实例。这个实例可以是任何单个数据点,比如一个客户评论或一张图片。

  2. 生成扰动样本:在选定的实例周围生成扰动样本。这些扰动样本是通过在原始数据点的基础上进行微小的修改得到的,比如改变文本中的一些单词或图片中的一些像素。

  3. 预测扰动样本:使用原始的复杂模型(黑盒模型)对这些扰动样本进行预测,得到每个样本的输出标签。

  4. 训练可解释模型:利用扰动样本及其预测结果,训练一个简单的、可解释的模型,模型(如线性模型或决策树),这样就可以利用这些模型的可解释性,对复杂模型进行局部解释。这个可解释模型在局部区域近似原始模型的行为。

  5. 特征重要性分析:通过分析可解释模型的特征权重,确定哪些特征对模型的预测结果影响最大。这些权重提供了对原始模型预测的解释。

  6. 解释展示:最终,LIME会提供一个解释,展示每个特征对模型预测的贡献程度,权重越高的特征对预测结果的影响越大。
     

实例说明

假设一个大型连锁酒店使用机器学习模型分析客户评论,将评论分类为正面或负面情感。使用LIME,我们可以对某个特定的负面评论进行解释,了解模型为何将其分类为负面。

  1. 选定实例:选择一个具体的负面评论作为待解释实例。

  2. 扰动样本:在这条评论的基础上,通过改变一些单词生成扰动样本。

  3. 模型预测:将这些扰动样本输入到原始模型中,获取每个样本的预测结果。

  4. 训练解释模型:使用这些扰动样本及其预测结果训练一个线性模型,这个线性模型在局部区域近似原始模型的行为。

  5. 特征权重:分析线性模型的权重,确定哪些单词对模型的负面预测有较大影响。

  6. 解释展示:展示每个单词的权重,权重高的单词就是导致模型预测为负面评论的关键因素。

然而,研究表明LIME不满足一些加性归因属性,如局部准确性、一致性和缺失性。

SHAP(SHapley Additive exPlanations)是一种基于博弈论中Shapley值概念的模型解释方法,由Scott Lundberg和Su-In Lee于2017年提出。SHAP的核心思想是将模型预测视为一个合作博弈,其中每个特征都是博弈中的一个参与者,而模型的预测结果则是所有特征合作产生的“总收益”。通过计算每个特征的Shapley值,我们可以了解每个特征对模型预测的贡献程度,并提供一致且公平的解释。

Shapley值的基本概念

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

Shapley值的特点

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

Shapley值的计算涉及到考虑所有可能的特征组合,并计算每个特征在这些组合中的平均边际贡献。具体步骤如下:

  1. 生成所有特征子集:对于有n个特征的数据集,生成所有可能的特征子集,包括空集和全集。
  2. 计算边际贡献:对于每个子集,添加或移除一个特征,并计算模型预测的变化(边际贡献)。
  3. 加权平均:考虑一个特征在所有可能的组合中出现的次数,并根据这个次数来加权平均这个特征的边际贡献,得到该特征的Shapley值。

与为每个实例构建局部解释模型不同,SHAP使用整个数据集计算Shapley值。SHAP通过考虑所有可能的特征子集,并计算每个子集有无某个特征时的预测差异,将这些差异加权平均,得到每个特征的SHAP值。这个过程重复进行,以计算所有特征的SHAP值。SHAP方法的这些属性使其成为一个强大的工具,用于解释机器学习模型的预测,并帮助我们理解模型是如何根据输入特征做出决策的。

在应用SHAP时面临的挑战包括 选择合适的特征移除方法 和 有效估计Shapley值。特征移除可以通过用基线(如零、均值或来自分布的样本)替换值来完成,但目前没有一种能选择正确基线的方法;估计Shapley值也面临计算复杂性,随着特征数量的增加而呈指数增长。

研究者们已经采用了包括加权线性回归、排列和其他模型特定方法在内的近似策略来估计Shapley值。尽管复杂,但由于其对大型深度模型的表达能力,SHAP仍然流行且广泛使用。为了使SHAP适应基于Transformer的语言模型,已经提出了如TransSHAP这样的方法(Chen et al., 2023c; Kokalj et al., 2021)。TransSHAP将SHAP适应于子词(subword)级别的文本输入,这种子词级别的处理允许模型更好地处理未知词汇和文本中的复杂结构,能够为预测提供更精确的解释。

基于 transformer 的语言模型的 Shapley 值(Chen et al., 2023c)

3.1.1.4 基于分解的方法(Decomposition-Based Methods)

分解技术旨在将相关性分数分解为来自输入的线性贡献。一些工作将相关性分数直接从最终输出层分配给输入(Du et al.,2019b)。

另一类工作从最终输出层向输入层逐层分配相关性得分。 层级相关性传播(LRP)(Montavon et al., 2019)和泰勒型分解方法(DTD)(Montavon et al., 2015)是两类常用方法。总体思路是将神经元 j 在层 l+1 的相关性得分R_j^{(l+1)}分解为层 l 的每个输入神经元 i 的相关性得分R_{i \leftarrow j}^{(l, l+1)}R_j^{(l+1)}=\sum_i R_{i \leftarrow j}^{(l, l+1)}。LRP和DTD之间的关键区别在于它们使用的相关性传播规则不同。

LRP(Layer-wise Relevance Propagation)

LRP通过向后传播(从输出层到输入层)的方式在神经网络中分配相关性分数。LRP的核心思想是,一个神经元的激活程度应该根据其对上层神经元激活的贡献来分配。LRP使用一套特定的传播规则,这些规则通常是基于神经元的权重和激活值来定义的。LRP的关键特点是保守性,即任何神经元接收到的相关性分数总和必须等于它向下层传播的分数总和,这类似于电路中的基尔霍夫电流定律。

DTD(Deep Taylor Decomposition)

DTD是一种基于泰勒展开的方法,它将深度神经网络的预测函数在某个参考点附近展开,并使用展开的一阶项来量化每个输入特征对预测的贡献。DTD将LRP的传播过程视为在网络的每个神经元上执行局部泰勒展开。DTD的关键特点是能够为LRP提供理论基础,并且能够解释为什么特定的传播规则能够工作。

LRP和DTD之间的关键区别

LRP和DTD之间的关键区别在于它们使用的相关性传播规则的不同,以及它们对这些规则的理论基础的不同。

  1. 传播规则:LRP有多种传播规则(如LRP-0、LRP-ε、LRP-γ等),这些规则决定了如何将相关性分数从一层传递到下一层。而DTD提供了一种框架,用于从理论上推导出这些规则,并且解释为什么这些规则能够合理地分配相关性分数。

  2. 理论基础:DTD提供了一种理论框架,将LRP的传播过程解释为在网络的每个神经元上执行局部泰勒展开。这种框架允许研究者更好地理解LRP规则的工作原理,并且为设计新的传播规则提供了理论支持。

  3. 计算过程:LRP的计算过程是迭代的,从输出层开始,逐层向后传播直到输入层。DTD则提供了一种将这一过程视为泰勒展开的方法,这有助于理解LRP规则的数学基础,并可能简化计算过程。

通过将整体的相关性分数细分为不同模型组件(如注意力头(Voita et al., 2019)、tokens和神经元激活(Voita et al., 2021))对最终预测的具体贡献,这些方法能够分析和解释深度学习模型的预测结果。这两种方法已被应用于基于Transformer模型的输入的相关性得分推导(Wu & Ong, 2021; Chefer et al., 2021).。

下篇:
【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(二)-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博客

相关文章:

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

****非斜体正文为原文献内容(也包含笔者的补充),灰色块中是对文章细节的进一步详细解释! 三、传统微调范式(Traditional Fine-Tuning Paradigm) 在这个范式中,首先在大量未标记的文本数据上预…...

ChatGPT 与 AGI:人工智能的当下与未来走向全解析

在人工智能的浩瀚星空中,AGI(通用人工智能)无疑是那颗最为璀璨且备受瞩目的星辰。OpenAI 对 AGI 的定义为“在最具经济价值的任务中超越人类的高度自治系统”,并勾勒出其发展的五个阶段,当下我们大多处于以 ChatGPT 为…...

Redis - 1 ( 11000 字 Redis 入门级教程 )

一:服务端高并发分布式结构演进之路 1.1 常见概念 概念定义生活例子类比应用(Application)/ 系统(System)为完成一整套服务的程序或一组相互配合的程序群。为完成一项任务而组成的由一个人或一群相互配合的人构成的团…...

python opencv的sift特征检测(Scale-Invariant Feature Transform)

sift 官方文档地址:https://docs.opencv.org/4.10.0/da/df5/tutorial_py_sift_intro.html 创建SIFT实例cv2.SIFT.create()特征检测sift.detect描述子sift.compute/sift.detectAndCompute画特征cv2.drawKeypoints 原图 特征点 代码 import cv2first ./12.pngsif…...

Xilinx FPGA的Bitstream比特流加密设置方法

关于Xilinx FPGA的Bitstream比特流加密设置方法更多信息可参阅应用笔记xapp1084。 使用加密bitstream分两个步骤: 将bitstream的AES密钥存储在FPGA芯片内将使用AES密钥加密的Bitstream通过SPI Flash或JTAG加载至FPGA芯片 AES密钥可以存储在两个存储区之一&#x…...

如何通过深度学习提升大分辨率图像预测准确率?

随着科技的不断进步,图像处理在各个领域的应用日益广泛,特别是在医疗影像、卫星遥感、自动驾驶、安防监控等领域中,大分辨率图像的使用已经成为了一项不可或缺的技术。然而,大分辨率图像带来了巨大的计算和存储压力,同…...

Oracle SqlPlus常用命令简介

参考资料 【SQL*Plus】SETシステム変数の設定前後の具体例 目录 一. 执行系命令1.1 执行系统命令1.2 执行sql脚本文件1.2.1 在数据库中执行sql脚本1.2.2 通过sqlplus执行sql脚本 二. show命令2.1 显示SqlPlus中的全部环境变量2.2 显示指定环境变量的设置 三. 时间显示3.1 set …...

【微服务】【Sentinel】认识Sentinel

文章目录 1. 雪崩问题2. 解决方案3. 服务保护技术对比4. 安装 Sentinel4.1 启动控制台4.2 客户端接入控制台 参考资料: 1. 雪崩问题 微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,这就是雪崩。动图演示: 在微服务系统…...

C++并行处理支持库 之六

C并行处理支持库 之六 std::promise构造器APIs应用实例 通过使用Futures标准库,我们可以获取异步任务返回值,捕获异步任务引发的异常。异步任务就是在独立线程中启动运行的函数。 这些值以共享状态进行通信,其中异步任务可以写入其返回值&…...

Linux-frp_0.61.1内网穿透的配置和使用

下载frp frp官网 https://gofrp.org/zh-cn/docs/setup/ frp安装包下载地址 https://github.com/fatedier/frp/releases?page1 下载之后在服务器上 解压 tar -zxvf frp_0.61.1_linux_amd64.tar.gztar:一个用于压缩和解压缩的工具。-z:表示使用 gzi…...

SpringBoot集成ECDH密钥交换

简介 对称加解密算法都需要一把秘钥,但是很多情况下,互联网环境不适合传输这把对称密码,有密钥泄露的风险,为了解决这个问题ECDH密钥交换应运而生 EC:Elliptic Curve——椭圆曲线,生成密钥的方法 DH&…...

深度学习的魔法世界

技术文章:深度学习的魔法世界 引言 嘿,今天我们要一起探索一个非常酷的魔法世界——深度学习!这是一门让计算机变得超级聪明的科学。我们会用最简单的语言来解释深度学习的基本概念,让你们也能轻松理解。 一、深度学习的六大魔…...

【超级详细】Vue3项目上传文件到七牛云的详细笔记

概述 继上一篇笔记介绍如何绑定七牛云的域名之后,这篇笔记主要介绍了如何在Vue3项目中实现文件上传至七牛云的功能。我们将使用Cropper.js来处理图像裁剪,并通过自定义组件和API调用来完成整个流程。 这里直接给出关键部分js代码,上传之前要先…...

设计模式-建造者模式

在面向对象的设计中,建造者模式(Builder Pattern) 是一种常用的设计模式,它属于创建型模式,旨在将复杂对象的创建与其表示分离。通过该模式,我们可以一步一步地构造一个复杂的对象,避免构造函数…...

springboot+vue实现SSE服务器发送事件

思路 一个基于订阅发布机制的SSE事件。客户端可以请求订阅api(携带客户端id),与服务器建立SSE链接;后续服务器需要推送消息到客户端时,再根据客户端id从已建立链接的会话中找到目标客户端,将消息推送出去。…...

IDEA | SpringBoot 项目中使用 Apifox 上传接口

目录 1 安装 Apifox Helper 插件2 获取 Apifox 的 API 访问令牌3 IDEA 中设置 API 访问令牌4 IDEA 中上传接口5 常见问题5.1 如何自动设置目录名5.2 如何自动设置接口名5.3 如何更改上传位置 Apifox 官方指南: https://apifox.com/help/applications-and-p…...

SpringBoot基础二

扩展SpringBoot 扩展SpringBoot中的SpringMVC的默认配置 SpringBoot默认已经给我们做了很多SpringMVC的配置,哪些配置? 1、视图解析器ViewResolver 2、静态资料的目录 3、默认首页index.html 4、图标名字和图标所在目录,favicon.ico 5、类型转…...

力扣第129题:求根到叶子节点数字之和 - C语言解法

力扣第129题:求根到叶子节点数字之和 - C语言解法 题目描述 给定一个二叉树,求根到叶子节点的数字之和。 每条从根到叶子的路径都代表一个数字。例如,根到叶子路径 1->2->3 代表数字 123。返回所有路径数字之和。 示例 1&#xff1…...

图像处理-Ch7-小波函数

个人博客!无广告观看,因为这节内容太多了,有点放不下,分了三节 文章目录 多分辨率展开(Multi-resolution Expansions)序列展开(Series Expansions)尺度函数(Scaling Function)例:哈尔尺度函数(Haar scaling func)多分…...

Unity中实现转盘抽奖效果(一)

实现思路: 旋转转盘的z轴,开始以角加速度加速到角速度最大值,结束的时候,以角加速度减速使角速度减少到0,然后转盘z轴旋转的角度就是加上每秒以角速度数值大小,为了使角度不能一直增大,对360度…...

小程序基础 —— 07 创建小程序项目

创建小程序项目 打开微信开发者工具,左侧选择小程序,点击 号即可新建项目: 在弹出的新页面,填写项目信息(后端服务选择不使用云服务,开发模式为小程序,模板选择为不使用模板)&…...

Apache Commons Pool :介绍与使用

Apache Commons Pool :介绍与使用 什么是 commons-pool2? commons-pool2 是 Apache Commons 提供的一个开源对象池实现框架。它旨在为应用程序提供通用的对象池支持,方便开发者管理资源(如数据库连接、网络连接等)复…...

(二)编译原生SDK以及配置交叉编译链

文章目录 编译原生SDKLinuxSDK的安装第一步解压LinuxSDK第二步安装依赖软件第三步解压Buildroot的dl文件 Linux系统镜像编译、生成第一步 配置编译环境第二步 编译 LinuxSDK编译上面配置好的 环境配置编译 LinuxSDK配置内核选项配置 Buildroot编译 Qt 库 编译生成 Linux 系统镜…...

YK人工智能(三)——万字长文学会torch深度学习

2.1 张量 本节主要内容: 张量的简介PyTorch如何创建张量PyTorch中张量的操作PyTorch中张量的广播机制 2.1.1 简介 几何代数中定义的张量是基于向量和矩阵的推广,比如我们可以将标量视为零阶张量,矢量可以视为一阶张量,矩阵就是…...

【游戏设计原理】41 - 游戏的核心

1. 如何理解? 这条原理主要在讲述“游戏核心”这一概念的重要性及其在游戏开发中的作用。游戏的核心是指决定游戏整体玩法和体验的核心元素,它通常是游戏的主要机制、目标或动作方式。理解这一原理时,我们可以从以下几个层面来考虑&#xff…...

GraalVM:云原生时代的Java虚拟机

1. 概述 GraalVM是由Oracle公司开发的一款高性能、多语言的虚拟机平台。它不仅兼容传统的JVM字节码执行,还引入了即时编译(JIT)技术的革新,以及对多种编程语言的支持。GraalVM旨在通过提供更高效的执行环境来满足云计算环境中日益…...

goView二开低代码平台1.0

官网文档地址:GoView 说明文档 | 低代码数据可视化开发平台 简介:GoView 是一个拖拽式低代码数据可视化开发平台,通过拖拽创建数据大屏,使用Vue3框架,Ts语言和NaiveUI组件库创建的开源项目。安装步骤和地址文档里都有…...

【golang】go errors 处理错误追踪打印堆栈信息

目录 背景使用参考 背景 使用原生go语言编程时,常常需要处理错误,然而golang中没有像java/python等其他语言的try-catch方式一样的方式来处理异常事件,只能通过函数返回值接收并处理错误。 在实践中,由于牛马的不熟练或随意处理错…...

【brew安装失败】DNS 查询 raw.githubusercontent.com 返回的是 0.0.0.0

从你提供的 nslookup 输出看,DNS 查询 raw.githubusercontent.com 返回的是 0.0.0.0,这通常意味着无法解析该域名或该域名被某些 DNS 屏蔽了。这种情况通常有几个可能的原因: 可能的原因和解决方法 本地 DNS 问题: 有可能是你的本…...

【Python系列】Python 连接 PostgreSQL 数据库并查询数据

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

深度学习利用Kaggle和Colab免费GPU资源训练

这两个平台,我先用的Colab,在修改完无数bug,成功训练完一个epoch后,超时了,查阅了官网资料,之后应该还可以用,但这个限制是动态的,你可能第二天就可以用,也没准下个月。遂…...

WebAssembly 学习笔记

WASM 概述 wasm最初是为了在浏览器获得接近原生的性能体验。 支持将其他语言实现的程序编译到wasm字节码,引入到浏览器由JS交互调用。 后又有了脱离JS的wasm运行时,可以直接运行wasm。 从而促成了wasm跨平台分发的能力。 但由于运行时的安全沙箱限制&a…...

二、github基础

Github基础 备用github.com网站一、用户界面-Overview(概览)1用户信息2 导航栏3 热门仓库4 贡献设置5贡献活动6搜索和筛选7自定义收藏8贡献统计9最近活动10其他链接 二、用户界面-Repositories(仓库)1 libusb_stm322 savedata3 Fi…...

「下载」智慧文旅运营综合平台解决方案:整体架构,核心功能设计

智慧文旅运营综合平台,旨在通过集成大数据、云计算、物联网、人工智能等先进技术,为景区、旅游企业及相关管理机构提供一站式的智慧化运营服务。 智慧文旅运营综合平台不仅能够提升游客的游览体验,还能帮助景区管理者实现资源的优化配置和业务…...

《探寻真正开源的大模型:开启AI创新新纪元》

《探寻真正开源的大模型:开启AI创新新纪元》 一、开源大模型崛起:AI 发展的新曙光二、开源大模型的 “庐山真面目”三、明星开源大模型闪耀登场(一)LLaMA 3:实力强劲的开源先锋(二)Phi-3&#x…...

麒麟信安云在长沙某银行的应用入选“云建设与应用领航计划(2024)”,打造湖湘金融云化升级优质范本

12月26日,2024云计算产业和标准应用大会在北京成功召开。大会汇集政产学研用各方专家学者,共同探讨云计算产业发展方向和未来机遇,展示云计算标准化工作重要成果。 会上,云建设与应用领航计划(2024)建云用…...

C#如何操作数据库

C#如何操作数据库 前言1、查询操作2、增删改操作3、需要返回id主键的sql语句执行 前言 本文主要交代如何通过引用 using MySql.Data.MySqlClient;来操作数据库 需要导入.dll文件 例如:在本地Mysql下载目录下->Connecter NET 8.0->Assemblies->net5.0->…...

c++领域展开第八幕——类和对象(下篇 初始化列表、类型转换、static成员)超详细!!!!

文章目录 前言一、初始化列表二、类型转换三、static成员总结 前言 上篇博客我们实现了一个简单的日期类,基本的类和对象是清楚了 今天我们再来学习后面的一些类和对象的语法,慢慢的完善所学的东西 fellow me 一、初始化列表 • 之前我们实现构造函数时…...

termux-boot安卓开机自动启动应用

termux安装 github 蓝奏云 v119.1 termux-boot安装 github 蓝奏云 v0.8.1 安装 给权限运行加锁后台 am启动应用命令 am start -n 包名/启动项获取包名和启动入口(图中app为爱玩机工具箱) 例 简黑时钟蓝奏云 包名com.hm.jhclock 桌面启动项com.hm.jh…...

Echart实现3D饼图示例

在可视化项目中,很多地方会遇见图表;echart是最常见的;这个示例就是用Echart, echart-gl实现3D饼图效果,复制即可用 //需要安装,再引用依赖import * as echarts from "echarts"; import echar…...

【JAVA】神经网络的基本结构和前向传播算法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…...

设计模式-抽象工厂模式

在设计模式中,抽象工厂模式(Abstract Factory Pattern)是一个非常常见且重要的模式,它属于创建型模式,用于提供创建一组相关或相互依赖对象的接口,而无需指定具体类。它的核心思想是将“创建对象”这一功能…...

webpack

前言 在现代前端开发的浪潮中,Webpack 已经成为一个不可或缺的构建工具。它不仅能够帮助我们打包 JavaScript 代码,还能够处理各种资源(如 CSS、图片、字体等),并提供一系列优化手段,极大地提升开发效率和…...

BLIP论文笔记

论文地址 BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation 论文思想 其实Clip就相当于只用了ITC...

Java List 集合详解:基础用法、常见实现类与高频面试题解析

正文 在 Java 集合框架中,List 是一个非常重要的接口,广泛用于存储有序的元素集合。本文将带你深入了解 List 接口的基本用法、常见实现类及其扩展,同时通过实际代码示例帮助你快速掌握这些知识。 👉点击获取2024Java学习资料 1…...

HTML5 SSE

HTML5 SSE(Server-Sent Events,服务器发送事件)是一种允许服务器实时向浏览器推送数据的技术。它是HTML5规范的一部分,主要通过HTTP协议实现。SSE的主要特点包括: 单向通信:与WebSocket不同,SSE…...

SpringBoot篇(监控)

目录 学习前言 一、什么是监控? 二、监控的意义 1. 简介 2. 总结 3. 思考 三、可视化监控平台 1. 简介 2. 实操 2.1. 服务端开发 2.2. 客户端开发 配置多个客户端 2.3. 总结 2.4. 思考 四、监控原理 1. 简介 2. 总结 五、自定义监控指标 1. 简介…...

python23-常用的第三方库01:request模块-爬虫

requests 模块是 Python 中的一个第三方库,用于发送 HTTP 请求。 它提供了一个简单且直观的 API,使得发送网络请求和解析响应变得非常容易。requests 模块支持各种 HTTP 方法,如 GET、POST、PUT、DELETE 等,并且具有处理 cookies…...

【pytorch】现代卷积神经网络

文章目录 1 AlexNet2 VGG3 NiN4 GoogLeNet5 批量规范化batch normalization6 ResNet6.1 残差块6.2 resnet 7 DenseNet7.1 稠密块体7.2 过渡层7.3 DenseNet模型 1 AlexNet AlexNet由八层组成:五个卷积层、两个全连接隐藏层和一个全连接输出层。 AlexNet使用ReLU而不…...

Excel 身份证号计算年龄

1. 设置身份证号列格式 复制身份证列值到记事本或其他地方重新设置身份证号列单元格格式为“文本”将复制出去的身份证号重新复制粘贴回来 2. 年龄列单元格中添加公式 DATEDIF(DATE(LEFT(MID(A2, 7, 8), 4), MID(MID(A2, 7, 8), 5, 2), RIGHT(MID(A2, 7, 8), 2)), TODAY(), …...