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。上述限制可以通过将上述要素与我们的解码策略结合的未来工作进一步解决。

总结

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

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

相关文章

开始学习Go编程

探索Go编程中的语法、数据类型和控制流 Go&#xff0c;又称为Golang&#xff0c;因其简单性、性能和效率而广受欢迎。在本文中&#xff0c;我们将深入研究构成Go编程语言基础的基本概念。从理解其语法和数据类型到掌握控制流和函数&#xff0c;我们将为您提供启动Go编程之旅所…

利用JMeter生成加密数据写入数据库

有部分数据直接插入数据库是不可以的&#xff0c;需要加密处理&#xff0c;例如密码都指定为加密后的数据字符串。今天我们来学习一下如何利用JMeter生成加密数据并写入MySQL数据库中。如何JMeter如何连接数据库&#xff0c;可以看我之前写的随笔&#xff0c;JMeter接口测试-JD…

Linux之线程池

线程池 线程池概念线程池的应用场景线程池实现原理单例模式下线程池实现STL、智能指针和线程安全其他常见的各种锁 线程池概念 线程池&#xff1a;一种线程使用模式。 线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能。而线程池维护着多个线程&#xff0c;等待…

基于机器视觉的手势检测和识别算法 计算机竞赛

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng…

【代码随想录】算法训练计划03

1、203. 移除链表元素 题目&#xff1a; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5] 思路&#xf…

linux进程间通信

文章目录 前言一、管道通信1、进程间通信目的2、进程间通信分类3、匿名管道通信3.1 匿名管道通信介绍3.2 匿名管道通信3.3 匿名管道读写规则3.4 匿名管道特点3.5 站在文件描述符角度-深度理解管道3.6 站在内核角度-管道本质 4、进程池练习5、命名管道6、匿名管道与命名管道的区…

智慧公厕:细致入微的城市贴心服务与便捷方便的生活配套

在现代城市生活中&#xff0c;公厕作为重要的城市基础设施&#xff0c;一直是城市发展的关键环节之一。然而&#xff0c;传统的公厕常常存在着设施陈旧、管理不善和卫生状况差等问题&#xff0c;给市民的生活品质和城市形象带来了一定的影响。为了提供更好的城市公厕服务&#…

Python 框架学习 Django篇 (六) 数据表关联、ORM关联

在后端服务器开发中&#xff0c;特别是前后端分离的架构中数据库是非常重要的&#xff0c;后端主要就是负责管理数据&#xff0c;而我们经常使用的mysql、oracle 都是关系型数据库&#xff0c;什么是关系型数据库&#xff1f;就是建立在关系模型基础上的数据库&#xff0c;而最…

Sql Server中的表组织和索引组织(聚集索引结构,非聚集索引结构,堆结构)

正文 SqlServer用三种方法来组织其分区中的数据或索引页&#xff1a; 1、聚集索引结构 聚集索引是按B树结构进行组织的&#xff0c;B树中的每一页称为一个索引节点。每个索引行包含一个键值和一个指针。指针指向B树上的某一中间级页&#xff08;比如根节点指向中间级节点中的…

超全面测评!2023年最常用的15款原型设计工具

在互联网和软件行业中&#xff0c;原型设计是产品经理、交互设计师以及运营人员等职位必不可少的一门技能。原型设计工具的重要性也是人尽皆知&#xff0c;这都是因为原型设计工具是帮助设计者表达产品想法、功能设定及流程逻辑的最佳方式。 今天就为大家带来原型设计工具的相…

「林曦的亲子美育」讲讲关于阅读的那些事儿

「林曦的亲子美育」是“林曦的小世界”2023年策划的一档新栏目。林曦老师作为一个“小男生的妈妈”,在这些年分享了许多关于亲子教育的心得&#xff1a;以“美”作为连接和最高标准&#xff0c;会护持着小朋友的选择和人生。教育是一个生活的过程。做一餐饭、读一本书、看一张画…

HCL模拟器选路实验案例

此选路题目选自职业院校技能竞赛中的一道题比较考验思路&#xff0c;适合于参加新华三杯大赛以及网络专业的同学&#xff0c;当做练习题目进行解题​​​​​​​ 题目 1.S1、S2、R1、R2运行ospf进程100&#xff0c;区域0&#xff0c;R1、R2、R3、R4、R5运行ospf进程200&#…

Ocelot简易教程目录

Ocelot简易教程目录 这里写目录标题 Ocelot简易教程目录 Ocelot简易教程&#xff08;一&#xff09;之Ocelot是什么Ocelot简易教程&#xff08;二&#xff09;之快速开始1Ocelot简易教程&#xff08;二&#xff09;之快速开始2Ocelot简易教程&#xff08;三&#xff09;之主要特…

安装虚拟机找不到虚拟网啦1(eth1)不出现

一、安装虚拟机找不到虚拟网啦1&#xff08;eth1&#xff09;不出现 1、先安装virtualbox 2、再安装vagrant 3、在windows使用ipconfig没有VirtualBoxHost-OnlyNetWork解决方法 1) 解决办法 在windows的设置中找到 网络和Internet 选项&#xff0c;选择右侧 更改适配器选项 …

微信小程序开发之投票管理及小程序UI的使用

目录 一、小程序UI 1.讲述 2. 介绍vantWeapp 3. 使用vantWeapp 安装 构建 依赖 引用 二、后端 1. 后端实体对象 2. 后端接口 3. 实现类 4. 请求处理类 三、前端 1. 定义路径 2. 页面引用 3. 页面 4. 页面美化 5. 数据 6. 效果展示 一、小程序UI 1.讲述 小…

信息学奥赛一本通2061:【例1.2】梯形面积

2061&#xff1a;【例1.2】梯形面积 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 172550 通过数: 68183 【题目描述】 在梯形中阴影部分面积是150平方厘米&#xff0c;求梯形面积。 【输入】 (无&#xff09; 【输出】 输出梯形面积&#xff08;保留两位小数&a…

HarmonyOS开发:NodeJs脚本实现组件化动态切换

前言 上篇文章&#xff0c;我们使用NodeJs脚本完成了HarmonyOS项目的组件化运行&#xff0c;但是由于脚本是基于4.0.0.400版本的DevEco Studio开发的&#xff0c;可能在配置文件的修改上有些许差距&#xff0c;那么遇到这种情况怎么办&#xff0c;一种是再写一套针对性的脚本文…

【Oracle】[INS-30131]执行安装程序验证所需的初始设置失败。

这里写目录标题 一、问题描述1 报错内容1.1 无法从节点“kotin”检索 exectask 的版本1.2 工作目录"xxx"无法在节点"kotin"上使用 2 相关环境2.1 安装软件2.2 安装系统 3 解决思路分析 二、解决方案1 方案一、 满足验证条件 - 不换系统1.1 第一步、检查文件…

p5.js 到底怎么设置背景图?

本文简介 点赞 关注 收藏 学会了 在 《p5.js 光速入门》 里我们学过加载图片元素&#xff0c;学过过背景色的用法&#xff0c;但当时没提到背景图要怎么使用。 本文就把背景图这部分内容补充完整&#xff0c;并且会提到在 p5.js 里使用背景图的一些注意点。 背景图的用法…

在虚拟环境中,通过pip安装tensorflow

目录 激活python虚拟环境&#xff0c;更新pip 通过pip 安装tensorflow 确定python版本&#xff1a; ​编辑安装tensorflow: ​编辑 为什么使用pip安装tensorflow? 激活python虚拟环境&#xff0c;更新pip 命令为python -m pip install --upgrade pip 通过pip 安装tensorf…