DoLa:对比层解码提高大型语言模型的事实性

DoLa:对比层解码提高大型语言模型的事实性

  • 摘要
  • 1 引言
  • 2 方法
    • 2.1 事实知识在不同层级上演化
    • 2.2 动态早期层选择
    • 2.3 预测对比
  • 3 实验
    • 3.1 任务
    • 3.2 实验设置
    • 3.3 多项选择
      • 3.3.1 TruthfulQA:多项选择
      • 3.3.2 FACTOR:维基、新闻
    • 3.4 开放式文本生成
      • 3.4.1 TruthfulQA
      • 3.4.2 推理链思维
    • 3.5 GPT-4的自动评估
  • 分析
    • 4.1 静态与动态过早层选择
    • 4.2 随机层选择基准线
    • 4.3 重复惩罚
    • 4.4 非LLaMA模型
    • 4.5 定性研究
    • 4.6 延迟
  • 相关工作
  • 限制
  • 总结

在这里插入图片描述

摘要

尽管大型语言模型(LLM)具有很强的功能,但它们容易产生幻觉,即生成与预训练期间观察到的事实偏离的内容。

本文提出了一种简单的解码策略,用于减少预训练的LLM中的幻觉,该策略不需要依赖检索的外部知识或额外的微调。

本方法通过对比从 较高层和较低层 投影到 词汇空间 所得到的 logits 之间的差异来获得下一个token的分布,利用了LLM中事实知识通常局限于特定的Transformer层的事实。这种 对比层解码(DoLa)的方法能够更好地表现出事实知识,并减少生成不正确事实的情况。DoLa在多项选择任务和开放式生成任务中始终提高了真实性,例如在TruthfulQA上将LLaMA系列模型的性能提高了12-17个百分点,展示了其在使LLM可靠地生成真实事实方面的潜力。

较低层在模型中位于输入端,接收原始文本或输入序列,并提取更底层的特征,如字符级别的信息或词法特征。较高层则位于模型的更深部分,接收来自较低层的抽象特征,并进行更高级别的语义理解和表示。
较低层在模型中更加接近原始输入数据,特征更加具体和细粒度。这些层通常更加关注输入序列的局部特征和词法信息,如词形、词频等。较低层在模型中承担了提取原始特征和语法结构的任务。相比之下,较高层在模型中更加抽象和语义化。这些层能够捕捉更高级别的语义关系、推理能力和语篇信息。较高层在模型中负责对输入序列进行深入理解和建模,从而生成更具语义连贯性和上下文一致性的输出。

较高层和较低层分别表示了不同级别的语义信息和词法信息。通过将这些层的输出经过投影到词汇空间,可以获得每个词的logits。

词汇空间
是指在自然语言处理任务中,用于表示所有可能词汇的集合。在文本处理任务中,通常将文本表示为由单词或词汇构成的序列。词汇空间是包含了所有可能出现的单词或词汇的集合,它定义了模型可以使用的所有词汇的范围。

在语言模型中,logits表示了每个词在生成文本时的得分或概率。

1 引言

大型语言模型(LLM)在许多自然语言处理(NLP)应用中展现出了巨大的潜力。然而,尽管LLM的性能不断提升并出现了新的能力,它们会产生“幻觉”,即生成与预训练期间观察到的真实世界事实偏离的内容,这仍然是一个持续存在的挑战。这对于高风险应用(例如临床/法律环境)特别是可靠生成可信文本至关重要,因此这代表了部署LLM的重要瓶颈。

尽管对LLM幻觉的确切原因尚不完全清楚,但可能的原因之一是由于最大似然语言建模目标(the maximum likelihood language modeling objective) ,该目标最小化了数据分布与模型分布之间的前向KL散度。这个目标可能导致模型具有Mass-seeking behavior(寻找质心行为) ,使得LM为不完全符合训练数据中嵌入的知识的句子分配非零概率。实证上,通过在有限数据上使用下一个词预测目标训练的LM已被证明会导致模型仅仅利用语言知识来识别训练示例中的表面模式,而不是识别和生成从训练语料库中提取的真实世界事实。

最大似然语言建模目标(Maximum Likelihood Language Modeling Objective)是一种用于训练语言模型的优化目标。语言模型的目标是根据先前的文本序列预测下一个词或字符的概率分布。最大似然语言建模目标旨在最大化模型预测下一个词的概率与实际观察到的下一个词的匹配程度。
具体来说,给定一个训练集,包含多个文本序列,可以将每个序列表示为一个由单词或字符组成的序列。对于每个序列,我们可以定义一个条件概率分布,表示在给定前面的文本序列的情况下,下一个词或字符的预测 概率。
最大似然语言建模目标的核心思想是通过最大化训练集中所有序列的条件概率来训练模型。具体地,我们希望模型的预测概率尽可能接近训练集中实际观察到的下一个词或字符。

前向KL散度(Forward KL Divergence),也称为KL散度损失、相对熵损失或KL散度损失项,是一种用于衡量两个概率分布之间差异的度量。
在机器学习中,KL散度用于比较两个概率分布P和Q之间的差异程度。前向KL散度衡量的是从P到Q的差异,即将P作为参考分布,衡量Q相对于P的不确定性。
具体来说,对于离散概率分布,前向KL散度定义如下:
K L ( P ∣ ∣ Q ) = Σ P ( x ) ∗ l o g ( P ( x ) / Q ( x ) ) KL(P || Q) = Σ P(x) * log(P(x) / Q(x)) KL(P∣∣Q)=ΣP(x)log(P(x)/Q(x))
其中,P(x)和Q(x)分别表示P和Q在事件x上的概率。
前向KL散度的值越大,表示两个概率分布之间的差异越大。当两个分布完全相同时,前向KL散度为0。当P和Q之间有差异时,前向KL散度大于0。
前向KL散度可以在训练机器学习模型中用作损失函数的一部分。在训练过程中,通过最小化前向KL散度,可以使模型的输出概率分布逐渐接近目标概率分布,从而实现模型的优化和拟合。

根据这段文字,“Mass-seeking behavior” 意味着LM倾向于聚集在数据分布的中心或代表性点上,并且可能会给不完全符合训练数据中嵌入的知识的句子分配非零概率。这种行为可能导致LM生成与训练语料库中提取的真实世界事实不一致的句子。换句话说,LM更注重捕捉训练样本中的表面模式,而不是真正识别和生成基于训练语料库的真实世界事实。

从模型可解释性的角度来看,Transformer语言模型被宽泛地显示为在较低层中编码“较低级”的信息(例如,词性标签),而在较高层中编码更多的“语义”信息。
最近,Dai等(2022)发现预训练的BERT模型中的“知识神经元”分布在最顶层。Meng等(2022)表明,事实知识甚至可以通过操作自回归Transformer语言模型中的特定一组前馈层来进行编辑。
本文提出利用这种知识的模块化编码,通过对比解码方法来增强LM中的事实知识,其中下一个词的输出概率是通过较高层和较低层得到的logits之间的差异来获得的。通过强调较高层的知识并淡化较低层或中间层的知识,可以使LM更具事实性,从而减少幻觉。
在这里插入图片描述
*这段文字描述了基于Transformer的语言模型(LM)在不同层次逐渐融合更多事实信息的过程。观察结果表明,虽然在不同层次中,“Seattle”作为下一个词的概率保持相似,但正确答案“Olympia”的概率从较低层次逐渐增加到较高层次。DoLa利用这个事实,通过对比两个层次之间的差异来增强LLM模型的概率,使其更倾向于生成符合事实的输出。
*

图1显示了一个简单示例的这一思想的示例。虽然“Seattle”在所有层中都保持较高的概率——这可能是因为它是一个句法上合理的答案,但是在较高层注入更多的事实知识后,真实答案“Olympia”的概率增加了。在这种情况下,通过对比不同层之间的差异,可以揭示出真实答案。基于这一概念,提出了一种新的解码方法,即 对比层解码(DoLa),以更好地展示嵌入在LLM中的事实知识,而无需检索外部知识或进行额外的微调。

对TruthfulQA和FACTOR Muhlgay等的实验表明,DoLa能够提高LLaMA系列模型的真实性。对StrategyQA和GSM8K的思维链推理以及开放式文本生成结果(使用GPT-4评估)的进一步实验也显示出它可以促进更具事实性的推理。最后,对于生成开放式文本的实验结果表明,与原始解码方法相比,DoLa能够生成更具信息量和显著更具事实性的响应,从而获得更好的评分。从效率的角度来看,发现DoLa在解码过程中只引入了很小的额外延迟,因此可以作为一种实用且有用的解码策略,用于提高LLM的真实性。

2 方法

最近的语言模型由一个嵌入层、N个堆叠的Transformer层和一个仿射层ϕ(·)组成,用于预测下一个词的分布。给定一个token序列{ x 1 , x 2 , . . . , x t − 1 x_1, x_2, . . . , x_{t−1} x1,x2,...,xt1},嵌入层首先将token嵌入到一个向量序列 H 0 = H_0 = H0= { h 1 ( 0 ) , . . . , h t − 1 ( 0 ) h^{(0)}_1, . . . , h^{(0)}_{t−1} h1(0),...,ht1(0)}中。然后, H 0 H_0 H0会依次经过每个Transformer层的处理。将第 j j j层的输出表示为 H j H_j Hj。然后,词汇头 ϕ ( ⋅ ) ϕ(·) ϕ()预测下一个标记 x t x_t xt的概率。

在这里插入图片描述
其中X是词汇集。

与将ϕ仅应用于最后一层不同,本方法对比高层和低层的信息以获得下一个标记的概率。更具体地说,对于较低的层次,还使用 ϕ ( ⋅ ) ϕ(·) ϕ()计算下一个标记的概率,

在这里插入图片描述
将语言头直接应用于中间层的隐藏状态的思想被称为 早期退出(early exit),即使没有特殊的训练过程,也被证明是一种有效的推理方法,因为Transformer层中的 残差连接(residual connections) 使得隐藏表示逐渐演变而不会出现突变。为了简洁起见,使用 q j ( x t ) q_j(x_t) qj(xt)表示 q j ( x t ∣ x < t ) q_j(x_t | x<t) qj(xtx<t),然后通过以下方式计算下一个token的概率:

在这里插入图片描述

在传统的推理过程中,模型会一直通过所有的层级进行前向计算,直到最后一层得到最终的输出。然而,早期退出的想法是在模型的中间层级中引入额外的预测头(prediction head),使得模型可以在中间层级上进行预测并提前输出结果。通过在中间层级上添加预测头,模型可以在计算过程中进行一些中间的预测,而不必等待整个网络完成所有的计算。这样可以在某些情况下提高推理的速度,并且可以在某些层级上提供更早、更粗略的结果。这对于一些实时应用或资源受限的环境中特别有用。

在Transformer模型中,残差连接(residual connections)是一种技术,用于解决深度神经网络中的梯度消失和训练困难的问题。它通过将输入信号与层内的输出信号相加,从而允许信息在网络中跳跃传播,使得网络能够更容易地学习和优化。
在每个Transformer层中,输入信号(例如,注意力机制的输入)通过两个子层:多头自注意力机制(multi-head self-attention)和前馈神经网络(feed-forward neural network)。残差连接就是将输入信号与子层的输出信号相加,得到层内的最终输出。
数学上,假设输入信号为x,子层的输出为F(x),则残差连接可以表示为:
o u t p u t = x + F ( x ) output = x + F(x) output=x+F(x)
这种残差连接的设计使得网络的梯度能够更容易地在反向传播过程中传递。如果子层的输出F(x)接近于零,那么残差连接就起到了"跳过"子层的作用,保留了输入信号的信息。这有助于防止梯度消失,并使得网络能够更快地收敛和学习更复杂的表示。

这里,M层被称为早期层(premature layer),而最终层被称为成熟层(mature layer)。
操作符 F ( ⋅ , ⋅ ) F(·, ·) F(⋅,⋅) 在第2.3节中会进一步详细介绍,它用于通过在对数域中计算两个分布之间的差异来对比早期层和成熟层的输出分布。在每个解码步骤中,使用分布距离度量 d ( ⋅ , ⋅ ) d(·, ·) d(⋅,⋅)(使用Jensen-Shannon散度)来动态选择早期层,该度量衡量成熟层与J中所有候选层之间的距离。第2.1节和第2.2节中会详细讨论 d ( ⋅ , ⋅ ) d(·, ·) d(⋅,⋅)。选择具有最大距离 d ( ⋅ , ⋅ ) d(·, ·) d(⋅,⋅)的层作为早期层的动机是为了最大化成熟层和早期层之间的差异。

2.1 事实知识在不同层级上演化

使用32层的LLaMA-7B模型进行初步分析。

在这里,计算早期退出输出分布 q j ( ⋅ ∣ x < t ) q_j(· | x<t) qjx<t 和最终层输出分布 q N ( ⋅ ∣ x < t ) q_N(· | x<t) qNx<t之间的Jensen-Shannon散度(JSD),以展示早期退出输出与最终层输出的差异。图2显示了解码输入问题的答案时的JSD值,从中可以观察到两种模式。

在这里插入图片描述
最终第32层和偶数层早期退出层之间的Jensen-Shannon散度。列名表示每个解码步骤中预测的下一个标记。行名表示早期退出层的层索引,从第0层(词嵌入层)到第30层。

Jensen-Shannon散度(Jensen-Shannon Divergence,JSD)是一种用于衡量两个概率分布之间差异的统计度量。它是由Jensen不等式和Kullback-Leibler散度(KL散度)推导而来。
KL散度是用于衡量一个概率分布相对于另一个概率分布的不确定性或信息损失的度量。然而,KL散度并不是对称的,即KL(P||Q) ≠ KL(Q||P),其中P和Q是两个概率分布。为了解决这个非对称性,JSD将两个概率分布的KL散度的平均值作为度量,它的计算公式如下:
J S D ( P ∣ ∣ Q ) = ( K L ( P ∣ ∣ M ) + K L ( Q ∣ ∣ M ) ) / 2 JSD(P||Q) = (KL(P||M) + KL(Q||M)) / 2 JSD(P∣∣Q)=(KL(P∣∣M)+KL(Q∣∣M))/2
其中,M是P和Q的平均分布,计算方式为M = (P + Q) / 2。
JSD的取值范围在0到1之间,当P和Q完全相等时,JSD为0;当P和Q完全不同且无交集时,JSD为1。

模式1: 第一种模式是在预测重要的命名实体或日期时,例如图2中的Wole Soyinka和1986,这些需要事实知识。我们观察到在较高层级上计算得到的JSD仍然非常高。这种模式表明,模型在最后几层仍在改变其预测结果,并可能将更多的事实知识注入到预测中。

模式2: 第二种模式是在预测功能词(如was、the、to、in)以及从输入问题中复制的token(如first Nigerian、Nobel Prize)时。在预测这些“简单”token时,可以观察到从中间层开始,JSD变得非常小。这一发现表明,语言模型在早期层已经决定了要生成的标记,因此在较高层级上几乎保持输出分布不变。这一发现也与早期退出语言模型中的假设一致。

从定性上讲,当下一个词的预测需要事实知识时,LLaMA似乎会在较高层级上改变预测结果。因此,在突变前/后的层之间对比可能会放大来自较高层级的知识,并使模型更加依赖其内部的事实知识。此外,这种信息的演化似乎会逐个token地变化。在本文的方法中,需要准确选择包含合理但较少事实信息的早期层,而这个层级不一定总是保持在相同的早期层。本文提出了一种动态选择早期层的方法,如图3所示。
在这里插入图片描述

2.2 动态早期层选择

为了放大对比解码的效果,理想情况下应选择与最终层输出最不同的早期层作为最佳的早期层。为了在每个时间步骤上实现动态的早期层选择,采用以下两个层获得的下一个词分布之间的距离度量,
在这里插入图片描述
其中JSD(·, ·)表示Jensen-Shannon散度。在早期层的子集中,选择有最大散度的层作为早期退出的目标层,即早期层——第M层(0 ≤ M < N),
在这里插入图片描述
J J J是考虑用于早期层选择的候选早期层的集合。对于具有可变层数的LLaMA模型,根据其总层数将Transformer层分为2到4个"桶",以便专注于与某个层级范围的对比。仍然使用验证集来根据当前任务选择最佳的桶。更多细节请参见第3.2节。

这种动态层选择策略使得模型能够根据每个令牌的复杂性和难度选择最合适的早期层,从而更好地利用Transformer模型不同层级学到的知识。

除了动态层选择策略外,还可以考虑一种非常简单的方法,即在所有可能的早期层上使用验证集进行穷举实验,并选择具有最佳验证性能的层。将这种简单方法称为DoLa-static。

然而,DoLa-static存在以下缺点:

  • 1)层级的搜索空间较大,
  • 2)最佳层级对数据分布敏感,因此需要符合数据分布的验证集。

本文提出的动态层选择策略通过缩小层级搜索空间并减少对符合数据分布的验证集的依赖,从而缓解了静态层选择方法的缺点。在第4.1节中对比了这种动态策略与DoLa-static方法的有效性。

2.3 预测对比

根据第2.2节获得的早期层和成熟层,目标是放大成熟层的输出,同时降低早期层的输出。按照Li等人(2022)提出的对比解码方法,从成熟层的对数概率中减去早期层输出的对数概率。然后,使用得到的分布作为下一个词的预测结果,如图1所示。
在这里插入图片描述
类似于Li等人(2022年)的方法,子集 V h e a d ( x t ∣ x < t ) ∈ X V_{head}(x_t|x_{<t})∈ X Vheadxtx<tX被定义为是否具有足够高的成熟层输出概率的token,
在这里插入图片描述
如果成熟层中一个token的预测概率过小,那么它很可能不是一个合理的预测。因此将该令牌的概率设置为零,以最小化误报和漏报的情况。在DoLa的背景下,误报指的是一个不合理的令牌,在对比后由于不同层对这些不合理令牌的不稳定低概率范围,可能会被奖励高分。漏报指的是当模型对一个简单决策非常自信时,高分令牌的输出概率在不同层中变化不大,导致对比后得分较低,所以需要在这种情况下强制模型仍然从这些高分令牌中进行选择。这种策略被称为自适应可信度约束。

重复惩罚(Repetition Penalty) 是为了解决DoLa方法可能导致模型生成语法不正确的段落的问题。尽管在实证研究中没有观察到这样的问题,但是发现了DoLa生成的分布有时倾向于重复先前生成的句子,特别是在生成长的思维链推理序列时。因此,在解码过程中,引入了Keskar等人(2019年)提出的简单重复惩罚方法,其中使用了θ = 1.2。关于重复惩罚的实证分析结果在第4.3节中进行了展示。

3 实验

3.1 任务

考虑两种类型的任务:多项选择任务和开放式生成任务。

对于多项选择任务,使用了TruthfulQA和FACTOR(新闻/维基)。
对于开放式生成任务,使用了TruthfulQA(由经过微调的GPT-3评估),以及涉及推理的任务,特别是StrategyQA和GSM8K。

这两个任务需要进行思维链推理。最后,使用Vicuna QA基准提出的GPT-4自动评估来评估作为聊天机器人助手的性能。

3.2 实验设置

使用了LLaMA模型的四个规模(7B、13B、33B、65B),并将它们与三个基线进行比较:
1)原始解码(根据任务使用贪婪解码或抽样解码),
2)对比解码(CD),其中LLaMA-7B作为业余模型,而LLaMA-13B/33B/65B作为专家模型,
3)推理时间干预(ITI)。ITI使用LLaMA-7B和在TruthfulQA上训练的线性分类器。

实验重点是对比DoLa中的层差异和CD中的模型差异,没有使用额外的技术,例如限制早期层或业余模型的上下文窗口,以保持实验设置的简洁。

将自适应可信度约束(α)设置为0.1,重复惩罚(θ)设置为1.2,以符合之前的研究。

在动态早期层选择中,将Transformer层分成多个桶,并选择一个桶作为候选层(J)。对于LLaMA-7B(32层),使用两个桶:[0, 16), [16, 32);
对于LLaMA-13B(40层),它们是[0, 20), [20, 40);
对于LLaMA-33B(60层),有三个桶:[0, 20), [20, 40), [40, 60);
对于LLaMA-65B(80层),有四个桶:[0, 20), [20, 40), [40, 60), [60, 80)。
第0层指的是第一个Transformer层之前的词嵌入输出。

为了提高效率,只考虑偶数层(第0层、第2层等)作为候选层。这种设计限制了超参数搜索空间,只需要进行2-4次验证运行。

使用两折交叉验证(TruthfulQA-MC、FACTOR)或特定的验证集(GSM8K、StrategyQA)来选择最佳的桶。对于缺乏验证集的Vicuna QA,使用GSM8K集合中的最佳桶。

3.3 多项选择

3.3.1 TruthfulQA:多项选择

使用Lin等人(2022年)和Li等人(2023年)的默认QA提示。

在自适应可信度约束中,将 − ∞ -∞ 替换为-1000,以避免破坏语言似然分数。对于似然分数的计算,重复惩罚是不必要的。使用两折交叉验证来确定候选层的最佳桶,基于MC3分数。表1中的结果显示,LLaMA模型在四个规模上的性能显著提升,优于ITI和CD,并且证实了我们方法的有效性。在两折交叉验证中,较高的层一直被选择:7B:[16, 32);13B:[20, 40);33B:[40, 60);65B:[60, 80)。

在这里插入图片描述

3.3.2 FACTOR:维基、新闻

在FACTOR的多项选择任务中,每个示例都有一段长段落和四个完整的句子选项,其中一个是正确答案。使用其维基和新闻子集作为两折交叉验证的两个折。在自适应可信度约束中,使用-1000而不是 − ∞ -∞ 。表1显示,本方法通常优于基线2-4%,比CD更有效,除了13B模型在维基子集上的情况。对于FACTOR,所选择的候选层一直较低:7B为[0, 16),13B/33B/65B为[0, 20)。这与TruthfulQA选择较高的层不同。这是因为TruthfulQA的多项选择项目具有短的关键事实回答,而FACTOR的回答是长句子的完成。正如在第2.1节中指出的,与较高的层进行对比对于关键事实效果更好,但对于包含许多易于预测标记的句子,较低的层可能更合适。

3.4 开放式文本生成

3.4.1 TruthfulQA

在开放式的TruthfulQA设置中,真实性和信息性由两个经过微调的GPT-3进行评判。通过不回答问题,即回答“我没有评论”,可以轻松获得100%的真实性得分,但信息性得分为0%。在实验中,遵循第3.3.1节中的两折交叉验证结果,使用较高的候选层进行解码。

在这里插入图片描述

使用与Lin等人(2022年)和Li等人(2023年)相同的默认QA提示。表2显示,本文的方法始终提高了真实性得分,保持信息性在90%以上,并且拒绝回答的比例(%Reject)低于10%。它在四个LLaMA模型上将整体(%Truth*Info)得分提高了12%-17%,达到了ITI的性能水平,而ITI依赖于带有人工标签的监督训练,与本文的方法不同。

CD提高了真实性,但经常拒绝回答,生成“我没有评论”这样的回答,例如LLaMA-33B模型有超过60%的时间。这影响了它的%TruthInfo得分。怀疑这是因为CD在对比时使用LLaMA-7B,而33B和7B模型在大多数问题上具有类似的知识水平。主要的区别在于33B在遵循指示方面更好,这解释了为什么CD经常回答“我没有评论”,因为这个答案在指示提示中被指明。

3.4.2 推理链思维

在StrategyQA和GSM8K上评估了我们的解码策略,这些任务不仅需要准确性,还需要推理链思维(CoT)能力,以获得良好的性能(Wei等人,2022b)。我们随机抽样了GSM8K训练集的10%作为这两个任务的验证集。最佳层桶为7B的[0, 16),13B/33B/65B的[0, 20),与FACTOR的结果一致,表明与较低层进行对比对于推理任务是有效的。

StrategyQA: 在StrategyQA上评估了DoLa,这是一个需要多跳策略回答的数据集,使用了CoT提示。如表2所示,DoLa在四个LLaMA规模上提高了1-4%的准确率,而CD大多降低了性能。这表明,将大型模型与较小模型进行对比可能会损害推理能力,因为较小模型也具有一定水平的推理能力。相反,本文的方法在缺乏完整推理能力的较低层之间进行对比,展示了其有效性,并且对比不同层而不是不同模型是必要的。

GSM8K: 在GSM8K上测试了DoLa,这是一个需要事实知识和算术推理的数学问题基准。表2显示,除了7B外,大多数LLaMA规模的准确率提高了2%。这表明,即使在需要算术推理的任务中,使用DoLa对比较高或较低层是有益于性能的。

3.5 GPT-4的自动评估

在Vicuna QA基准测试上评估了本解码方法,该测试使用GPT-4进行自动评估,以评估开放式聊天机器人的能力。根据GSM8K/FACTOR的验证结果,使用较低层作为解码的候选层,使用四个LLaMA模型。GPT-4进行的成对比较评分结果如图4所示,显示DoLa在基线模型中表现出色,特别是在13B和33B模型中。这表明DoLa即使在开放式聊天机器人场景中也很有效。在第4.5.4节的分析中还展示了一些定性研究的例子。

在这里插入图片描述

分析

4.1 静态与动态过早层选择

引入了DoLa的一个变体,即DoLa-static,它在整个解码过程中选择一个固定的层进行对比。通过列举来自所有层的DoLa-static结果,展示了GSM8K验证集的一些结果(图5),以及附录B中FACTOR的结果(图7)。

在这里插入图片描述

在图5a中,通过对比较低的层,DoLa-static的性能更好。一些“最佳”层,如LLaMA-7B中的第10层,甚至超过了DoLa的表现。然而,这些最佳层在不同的数据集上具有敏感性,使得DoLa-static在没有任务特定验证集的情况下不够通用,而实际应用中可能并不总是可用。

随机抽取了另外10%的GSM8K子集,并在图5b中展示了结果,DoLa-static在这两个10%的GSM8K子集中显示出不同的最佳层。在子集#1中,第10层是最佳层,而在子集#2中,第2层是最佳层(图5a和5b)。使用子集#1的最佳层来处理子集#2会降低其性能,突显了DoLa-static对固定层选择的敏感性。相比之下,通过对比较低的层,DoLa在两个子集中都保持了较高的得分,几乎与表现最佳的DoLa-static层相匹配,突显了DoLa的稳健性。此外,DoLa简化了超参数搜索空间:它只需要进行2-4次桶测试,几乎比DoLa-static需要的对所有层进行的16-40次运行少10倍。

4.2 随机层选择基准线

在这里插入图片描述

提出的方法中一个问题是:这种动态层选择方法有多优化?
为了进行比较,使用了一个类似于DoLa的“随机”基准线,但是层是随机选择的。表3中的结果显示,这种随机方法的表现比原始基准线要差,突显了基于JSD的层选择策略的重要性。

4.3 重复惩罚

在这里插入图片描述

之前讨论过,DoLa有时会重复内容,特别是在StrategyQA和GSM8K中。为了减轻这个问题,引入了重复惩罚。图6显示这种惩罚改善了DoLa在StrategyQA上的表现,但对基准线的表现产生了负面影响。对于CD,惩罚会带来轻微的提升,但仍不如基准线有效。GSM8K的相同结果包含在附录D中。

4.4 非LLaMA模型

在这里插入图片描述
为了检查DoLa在LLaMA系列之外的模型上的适用性,在MPT-7B模型(MosaicML,2023年)上对DoLa进行了测试。表4中的初步结果显示,在大多数数据集上都获得了性能提升,但在GSM8K上没有。这表明DoLa具有在各种Transformer模型中推广的潜力。GSM8K的例外情况可能源于MPT-7B的有限数学能力。

4.5 定性研究

在这里插入图片描述

在表5中,展示了使用LLaMA-33B回答的TruthfulQA示例,包括使用DoLa和不使用DoLa的得分,通过经过微调的GPT-3对其真实性和信息量进行评分。这些答案是通过贪婪解码确定性地生成的。在第一个示例中,基准线生成了合理但不正确的日期“1776年7月4日”,而DoLa则输出了正确的日期“1776年8月2日”。在第二个示例中,基准线提供了错误的建议“在报失人员前等待24小时”,而DoLa提供了真实的回应。这些实例突显了DoLa在避免生成虚假信息方面的有效性。

在第三个示例中,与基准线相比,DoLa在真实性方面表现较差。基准线表示“我没有评论”,在真实性得分为1.0,信息量得分为0.0。相反,DoLa提供了详细但不正确的信息,在真实性得分为0.0,信息量得分为1.0。附录E中包含了更多的TruthfulQA示例。附录F中还包含了更长回答的其他Vicuna QA示例。

4.6 延迟

在这里插入图片描述
还评估了DoLa对解码延迟的影响,并与基准线进行了比较,两者都采用贪婪解码。表6中的结果显示,DoLa将解码时间增加了1.01到1.08倍。这种适度的增加表明本文的方法可以广泛应用,成本增加很小甚至可以忽略不计。

相关工作

限制

虽然DoLa方法增强了LLM的真实性,但它也有一些限制,需要注意:

  1. 着重于真实性:尚未探索我们的方法在其他方面(如指令遵循[Wei et al., 2021]或从人类反馈中学习[Ouyang et al., 2022])的表现如何。
  2. 仅限于推理:依赖现有的架构和预训练参数,没有使用人类标签或事实知识库进行微调[Li et al., 2023],限制了可能的改进。
  3. 不依赖外部知识:本方法仅依赖模型的内部知识,而不使用外部检索模块,例如一些检索增强语言模型所做的那样[Izacard et al., 2022; Borgeaud et al., 2022; Ram et al., 2023]。因此,它无法纠正训练过程中获取的错误信息。

需要注意的是,我们的方法提供了一种基础性改进,理论上适用于任何基于Transformer的LLM。上述限制可以通过将上述要素与我们的解码策略结合的未来工作进一步解决。

总结

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《C和指针》(6)指针

问题 如果一个值的类型无法简单地通过观察它的位模式来判断&#xff0c;那么机器是如何知道应该怎样对这个值进行操纵的&#xff1f; 答&#xff1a;机器无法作出判断。编译器根据值的声明类型创建适当的指令&#xff0c;机器只是盲目地执行这些 指令而已。 C为什么没有一种方…

【图像分类】卷积神经网络之ResNet网络模型实现钢轨缺陷识别(附代码和数据集,PyTorch框架)

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 本篇博文,我们将使用PyTorch深度学习框架搭建ResNet实现钢轨缺陷识别,附完整的项目代码和数据集,可以说是全网…

2023高频前端面试题-浏览器

1. 浏览器是如何解析 CSS 选择器的&#xff1f; 在生成渲染树的过程中&#xff0c;渲染引擎会根据选择器提供的信息来遍历 DOM 树&#xff0c;找到对应的 DOM 节点后将样式规则附加到上面。 来看一段样式选择器代码、以及一段要应用样式的 HTML&#xff1a; .mod-nav h3 spa…

密码学基础

密码学总览 信息安全面临的危险与应对这些威胁的密码技术&#xff1a; 关于上图中的威胁&#xff0c;这里在简单的说明&#xff1a; 窃听&#xff1a;指的是需要保密的消息被第三方获取。篡改&#xff1a;指的是消息的内容被第三方修改&#xff0c;达到欺骗的效果。伪装&…

21.9 Python 使用Selenium库

Selenium是一个自动化测试框架&#xff0c;主要用于Web应用程序的自动化测试。它可以模拟用户在浏览器中的操作&#xff0c;如打开网页、点击链接、填写表单等&#xff0c;并且可以在代码中实现条件判断、异常处理等功能。Selenium最初是用于测试Web应用程序的&#xff0c;但也…

Haproxy负载均衡集群

一、haproxy概念&#xff1a; Haproxy&#xff1a;他也是常用的负载均衡转发 nginx支持四层转发&#xff0c;七层转发 haproxy也可以四层和七层转发 LVS的DR和NAT是基于四层转发 TUN是四层七层 基于四层的转发&#xff1a; LVSnginxhaproxy 基于七层的转发&#xff1a; …

【python与数据结构】(leetcode算法预备知识)

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ python与数据结构 Python 中常见的数据类型数据结构1.数组&#xff08;Array&#xff09;2.链表&#xff08;Linked List&#xff09;3.哈希表&#xff08;Hash Table&#xff09;4.队列&#xff08;Queue&#x…

洛谷 B2029 大象喝水 C++代码

题目描述 AC Code #include<bits/stdc.h> using namespace std; int main() {int h,r;cin>>h>>r;double val;val3.14*r*r*h;int ans20000/val;ans;cout<<ans<<endl;return 0; }

动手学深度学习(李沐)的pytorch版本(包含代码和PDF版本)

目录 网址&#xff08;特别适合自学&#xff09; 说明: 代码与PDF版 网址&#xff08;特别适合自学&#xff09; 传送门 界面一览&#xff1a; 说明: github上一个项目将《动手学深度学习》从mxnet改为了pytorch实现。感谢大佬们的工作。   特别说明该电子版网页是通过do…

JVM调优(10)JVM的运行时数据区

一、概述 对于 C C 来说&#xff0c;在内存管理领域&#xff0c;JVM既拥有最高的权利&#xff0c;但是同时他们又是从事最基础工作的劳动人员&#xff0c;因为他们担负着每一个对象从开始到结束的维护责任。而对于Java来说&#xff0c;再虚拟机自动内存管理的帮助下&#xff0…

2000-2021年三批“智慧城市”试点名单匹配数据

2000-2021年三批“智慧城市”试点名单匹配数据 1、时间&#xff1a;2000-2021年 2、指标&#xff1a;行政区划代码、地区、所属省份、年份、智慧城市试点、最早试点年份 3、来源&#xff1a;住建部公布的三批“国家智慧城市名单” 4、说明&#xff1a;内含原始文件和匹配结…

Liunx两台服务器实现相互SSH免密登录

一、首先准备两台Linux虚拟机当作此次实验的两台服务器 服务器1&#xff1a;server IPV4&#xff1a;192.168.110.136 服务器2&#xff1a;client IPV4&#xff1a; 192.168.110.134 二、准备阶段 [rootserver ~]# systemctl disable firewalld #关…

Web3 治理实践探讨:如何寻找多元化发展路径?

Web3 领域变革正崭露头角&#xff0c;而社区治理开始成为行业热议话题。Web3 项目如何探寻多元化建设的解困路径&#xff0c;究竟是治理模型的精进成为首要问题&#xff0c;还是吸纳更多资金与组织教育培训&#xff0c;让开发者成为项目建设的中坚力量&#xff1f;本期 TinTinW…

知识分享|分段函数线性化及matlab测试

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all;gn10;tn1;x_pfsdpvar(1, tn,…

【Python爬虫三天从0到1】Day1:爬虫核心

目录 1.HTTP协议与WEB开发 &#xff08;1&#xff09;简介 &#xff08;2&#xff09;请求协议和响应协议 2. requests&反爬破解 &#xff08;1&#xff09;UA反爬 &#xff08;2&#xff09;referer反爬 &#xff08;3&#xff09;cookie反爬 3.请求参数 &#x…

程序设计语言

编译解释 传参还是传值 编译原理

Centos使用tomcat部署jenkins

jenkins的最新版本已经不在支持jdk8&#xff0c;支持的jdk环境如下&#xff1a; 安装jdk环境 yum -y install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64安装tomcat tomcat官网 cd /optwget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.82/bin/apache-tomcat…

大数据-Storm流式框架(七)---Storm事务

storm 事务 需求 storm 对于保证消息处理&#xff0c;提供了最少一次的处理保证。最常见的问题是如果元组可以被 重发&#xff0c;可以用于计数吗&#xff1f;不会重复计数吗&#xff1f; strom0.7.0 引入了事务性拓扑的概念&#xff0c;可以保证消息仅被严格的处理一次。因此可…

leetCode 2578. 最小和分割 + 排序 + 贪心 + 奇偶分组(构造最优解)

2578. 最小和分割 - 力扣&#xff08;LeetCode&#xff09; 给你一个正整数 num &#xff0c;请你将它分割成两个非负整数 num1 和 num2 &#xff0c;满足&#xff1a; num1 和 num2 直接连起来&#xff0c;得到 num 各数位的一个排列。 换句话说&#xff0c;num1 和 num2 中所…

黑客在Pwn2Own Toronto上以58个零日漏洞赚取超过100万美元

Pwn2Own Toronto 2023黑客大赛已经圆满结束&#xff0c;安全研究人员通过攻击消费类产品的58个零日漏洞&#xff08;以及多个漏洞碰撞&#xff09;赚取了1,038,500美元。此次比赛由趋势科技的零日倡议&#xff08;Zero Day Initiative&#xff0c;简称ZDI&#xff09;组织&…