论文解读:Factuality Enhanced Language Models for Open-Ended Text Generation

论文解读:Factuality Enhanced Language Models for Open-Ended Text Generation

image.png

Github:https://github.com/nayeon7lee/FactualityPrompt

一、动机

  • 大规模预训练语言模型在NLP上展现出了很惊艳的效果,成为主要的方法之一。然而大模型依然存在事实不准确的问题,现有很多工作开始探索大模型的事实性问题;
  • 然而,这些工作侧重于针对特定下游任务(即源文本和目标文本之间的事实一致性)进行微调的语言模型的忠实性(或事实性)。 很少有探索来解决用于通用开放式文本生成的预训练语言模型中的事实错误,其目标是从给定上下文(例如,GPT-2 中的用例)生成连贯的延续;
  • 一种提升模型的事实性最有效的方法是引入外部知识库。一个structure或graph结构表征知识并与上下文进行结合,从而实现知识增强;另一种是基于信息检索增强模式,然而其需要引入额外的模型,增加了模型的开销;
  • 本文关注于开放领域文本生成的评估和提升大模型的事实性:
    • 构建一个benchmark,以及设计一个评价指标。这个自动评估的benchmark和metric与人类的相关性很高;
    • 更大规模的模型的事实性会更好,尤其是实体层面上的错误可以从63.69%降低到33.3%;
    • nucleus sampling策略更容易导致幻觉,因此需要提出一种面向事实性提升的decoding的采样策略;
    • 直接在factual text data上进行预训练提升效果其实并不明显,因此需要对此进行优化;
    • 使用上述的一些优化之后,实体层面上的错误可以从33.3%进一步降低到14.5%;

二、FactualityPrompts与事实评估

目前一个很大的挑战是如何评估模型的事实性,尤其是开放文本生成领域内,其需要涉及到定位真实知识在无数个世界知识内的位置。对于知识资源,我们选择wikipedia。

FactualityPrompts测试集

主要构建factual和nonfactual prompts。
image.png
挑选FEVER数据集的验证集作为评估数据。

FEVER is a fact-checking dataset consisting of claims that are SUPPORTED, REFUTED or unverifiable (NOTENOUGHINFO) by Wikipedia documents. These claims are created by annotators who were asked to alter or paraphrase the sentences from Wikipedia. We leverage the SUPPORTED and REFUTED claims from FEVER validation set

FEVER相关工作:《FEVER: a large-scale dataset for fact extraction and verification》

Ground-truth Knowledge

当模型生成出一段文本时,我们需要准备相关的事实知识来评估这个文本的事实性。
我们将知识分为document-level和sentence-level两种类型:

  • document knowledge:直接将wikipedia的document作为knowledge;
  • sentence knowledge:通过TF-IDF或者sentenceTransformer的方式进行相似度计算,从wikipedia中召回出高相似度的句子作为candidates;

Metric

(1)NE-related metric
如果模型生成出了一短文本,其中包含了一个实体,但是这个实体没有在ground truth knowledge中出现过,我们认为这个实体是幻觉的

相关论文:Entity-level factual consistency of abstractive text summarization

NE Error:a model is hallucinating (making factual errors) if it generates a NE that does not appear in the ground-truth knowledge source.
N E E R = ∣ H A L L N E ∣ ∣ A L L N E ∣ NE_{ER}=\frac{|HALL_{NE}|}{|ALL_{NE}|} NEER=ALLNEHALLNE

  • A L L N E ALL_{NE} ALLNE表示大模型生成的文本中包含的所有实体
  • H A L L N E HALL_{NE} HALLNE表示出现在 A L L N E ALL_{NE} ALLNE但是没有出现在当前样本对应ground truth knowledge的实体;

判断生成的文本中的实体以及其是否存在ground truth knowledge中,采用spacy进行实体匹配。

扫描二维码关注公众号,回复: 15956131 查看本文章

该指标越小越好。

(2)Entailment Ratio
参考NLI的思想,即判断模型生成的文本与ground truth knowledge是否存在蕴含关系。
E n t a i l R = ∣ E N T A I L g e n ∣ ∣ A L L g e n ∣ Entail_{R}=\frac{|ENTAIL_{gen}|}{|ALL_{gen}|} EntailR=ALLgenENTAILgen

  • A L L g e n ALL_{gen} ALLgen表示当前模型生成的所有文本;
  • E N T A I L g e n ENTAIL_{gen} ENTAILgen表示生成的文本中与ground truth knowledge存在蕴含的集合;

NLI模型直接选择现有的基于RoBERTa在MNLI上微调的的NLI模型:https://pytorch.org/hub/pytorch_fairseq_roberta/

该指标越大越好

(3)Generation Quality Evaluation

  • Fluency:直接使用PPL困惑度指标;
  • Diversity:使用N-Gram(4-Gram);
  • Repetition:degeneration问题的度量,来自于论文《The curious case of neural text degeneration》

评价指标的相关性分析
上述提出的两个knowledge方面的指标是否与人类的事实评价具有相关性呢?我们随机挑选200个样本,并获得NE和Entail两个指标,同时也让标注人员从这两个方面对样本生成的内容进行打分;
与人类相关性如图所示:
image.png

预实验

image.png

  • 模型规模越大,模型的事实性就越好;
  • 不论是Factual Prompt还是NonFactual Prompt,都会导致nonfactual generation;
  • nucleus decoding虽然可以提高模型的diversity、降低重复生成率,但是也会降低模型生成的事实性;

我们对 530B LM greedy生成的事实错误进行了定性分析,以了解当解码选择的随机性受到严格限制时,剩余的错误是什么。

三、方法

Factual-Nucleus Sampling

为了能够在生成的质量(Diversity和Repetition)和事实性上进行trade-off,我们需要改进现有的生成采样策略。

模型的生成是逐个字符生成的,因此如果模型在没有任何prefix的前提下生成文本时,生成的最开始阶段的一些词是不会存在幻觉的,而随着不断地生成过程中,后面生成的词会促使整个文本产生幻觉。

There is no preceding text at the start of a sentence, so it is safe for LM to generate anything as long as it is grammatical and contextual.

例如“Samuel Witwer’s father is”是一个nonfactual文本,但是当后面生成了“Lutheran minister”时,就导致了幻觉问题。

为了缓解这个问题,提出一种动态的necleus probability p p p
p t = max ⁡ { ω , p × λ t − 1 } p_t=\max\{\omega, p\times\lambda^{t-1}\} pt=max{ ω,p×λt1}

  • λ \lambda λ-decay:随着生成的token数量 t t t增加,逐渐衰减 p p p的取值;
  • p p p-reset:当一个句子生成完毕后, p p p的值会因为 t t t的增加而变得很小,当生成新的句子时,期望 p p p能够恢复到原始的值;
  • ω \omega ω-bound:为了避免 p p pdecay后过小,设置一个lower bound;

不同的消融以及对应不同prompt的实验结果:
image.png
image.png

  • 不同的超参数取值会有不同的效果,可以发现factual nucleus方法能过很好地在factuality和diversity之间做好平衡。
  • nuclues相比greedy,可以提升diversity等指标,但是也加剧了幻觉的问题;在factuality层面上,factual nucleus可以逼近甚至超越greedy,而且diversity和repetition虽然不如nucleus,但是也远远超过了greedy。

Continual-Pretraining

(1)Prepending TopicPreifx
对于一些语料,有一些含有人称代词He、She等,导致并不知道He具体是谁。而往往为了降低GPU显存,通常采用chunk机制,导致很多文档被分割化,这些被分割后的文档可能只有一些代词,这会导致信息“碎片化”,并导致出现在具有相似上下文的独立文档中的实体的错误关联。
为了解决这个问题,在每个document之前都拼接一个前缀。例如wikipedia语料中,每个trunk之后的文本前都拼接一个对应于wikipedia的页面title(一般wikipedia页面的title都是entity)作为topic prefix。即告诉模型这段话讲的是什么entity。
(2)Sentence Completion Loss
我们认为,LM 被统一训练来预测句子中的每个子词标记,而确保句子后半部分的正确预测对于事实性更为关键。
因此,在训练阶段设置一个句子补全的loss。对于一个句子,获得一个划分点,划分点之后的部分计算loss。
划分点可以有三种策略:
image.png
我么推荐使用第一个。
实验结果如下所示:
image.png
可以发现,当同时结合使用Factual Nucleus 和两个ContinualPre-training策略时,提升了模型的事实性。
sentence completion loss可以认为是让模型更加关注句子后半部分,因为前半部分的句子通常不会产生幻觉,可以认为是初期阶段构造上下文,而后半部分的生成的内容会有很大概率与前半部分产生冲突,因此期望模型更加关注后半部分的生成

猜你喜欢

转载自blog.csdn.net/qq_36426650/article/details/132001357
今日推荐