AI 文摘

也看大模型RAG问答中的Proposition式检索思路:兼读领域特定问答中的幻觉检测方法


  • By AiBard123
  • December 15, 2023 - 2 min read



作者: AINLP 来源: AINLP

我们在前面的文章中介绍了一个关于RAG中的上下文构造问题。《Compressing Context to Enhance Inference Efficiency of Large Language Models》(地址:https://arxiv.org/pdf/2310.06201.pdf) 提出了一种名为"选择性文本"(Selective Context)的方法,通过识别和修剪输入上下文中的冗余内容,使输入更加紧凑,从而提高LLM的推理效率,这种方法本质上是一种“去停用词”的方案,但通用性不会太强。

所以,如何更好地进行切分,应该以怎样的检索粒度对检索语料进行分割和索引往往会成为一个问题?

例如,我们可以将文本切分成多个层级的段落、句子,可以预先生成摘要,可以对摘要进行再摘要等等。

在推理时选择适当的检索粒度是提高密集检索器检索和下游任务性能的一种简单而有效的策略,因此这个方面也会出来许多有趣的工作,我们今天先谈谈这个话题。

除此之外,我们也可以关注评估,最近大模型特定领域的幻觉评估(苹果公司针对汽车领域的幻觉评估),也很有趣,我们也来看看。

本文对这些工作进行介绍,供大家一起思考,对评估和RAG感兴趣的可以关注。

一、FACTOID-WIKI:以命题为单元的RAG检索方案

应该以怎样的检索粒度对检索语料进行分割和索引?在推理时选择适当的检索粒度是提高密集检索器检索和下游任务性能的一种简单而有效的策略。

如上所示,同一模型在三种不同粒度下检索到的文本。

从理论上讲,段落代表了具有较长上下文的较粗检索单元,能够为问题提供更多相关信息。然而,段落通常包括无关的细节,这可能会在下游任务中分散检索器和语言模型的注意力。

另一方面,句子级别的剔除提供了一种更精细的方法,但因为语义仍然可能是复杂和复合,而且它们往往不是自足的,缺乏必要的上下文信息,无法判断查询与文档的相关性。

《Dense X Retrieval: What Retrieval Granularity Should We Use?》(地址:https://arxiv.org/pdf/2312.06648.pdf)一文针对检索单元的选择(如文档、段落或句子)显著影响检索和下游任务的性能的问题,引入了一种新的检索单元-命题。

比较有趣的是,通过实证比较了不同的检索粒度,结果显示基于命题的检索在密集型检索中显著优于传统的段落或句子方法。

后续可以关注github地址:https://github.com/chentong0/factoid-wiki/blob/main/README.md

1、基本思想

命题粒度是整个方案的核心,其假设每个命题都能准确地描述一个与上下文相关的原子事实,命题可以作为信息检索问题的检索单元。命题代表文本中意义的原子表达,由以下三个原则定义。

首先,每个命题都应对应文本中的一个独特意义片段,所有命题的组合将代表整个文本的语义;

其次,一个命题应该是最小的,即它不能被进一步拆分成单独的命题;

最后 ,命题应符合上下文并自包含)。命题应包含文本中所有必要的上下文(如核心参照),以解释其含义;

以图2所示,这段文字包含三个命题,每个命题都与比萨斜塔的一个不同事实相对应:修复前的角度、当前的角度和水平位移。在每个命题中,都包含了该段落的必要上下文,因此命题的含义可以独立于原文进行解释。

2、如何将文本生成命题

为了将维基百科页面分割成命题,对文本生成模型进行了微调,将其称为命题生成器(Propositionizer)。命题器将段落作为输入,生成段落中的命题列表。具体的,首先向GPT-4发出指令,其中包含命题定义和1-shot演示,此处对应的prompt如下:

从一组42k段落开始,使用GPT-4生成段落到命题对的种子集,然后使用种子集对Flan-T5-large模型进行微调。

处理后的语料库称为FACTOID-WIKI。

3、测试及效果

以维基百科为检索源,对五个不同的开放域QA数据集进行了评估:NQ、TQA、WebQ、SQuAD、EQ。

在检索模型上,比较了以下六种有监督或无监督密集检索模型的性能,包括 SimCSE:BERT-base编码器,在从维基百科随机抽样的无标记句子基础上训练;

Contriever:采用BERT基础编码器,通过维基百科的无标记文档和网络抓取数据构建的段对进行对比训练。

DPR:一个双编码器BERT基础模型,在五个开放域质量保证数据集上进行了微调,包括(NQ、TQA、WebQ和SQuAD)。

ANCE:使用了与DPR相同的设置,并使用基于硬否定的训练方法ANCE)训练模型;

TAS-B:双编码器BERT基础模型,由在MSMARCO上训练的具有交叉注意力的教师模型提炼而成。

GTR:基于T5的编码器,在在线论坛数据进行预训练,并在MSMARCO和NaturalQuestion上进行了微调。

在指标上,使用Recall@k作为评估指标。

对比的实例:

总结的来说,这种方法,本身是对检索信息的一种压缩,可以是摘要,也可以是之前我们所说的去除

二、DelucionQA:领域特定问答中的幻觉检测

检测领域特定问答中的幻觉,《DelucionQA: Detecting Hallucinations in Domain-specific Question Answering》(地址:https://arxiv.org/pdf/2312.05200)提出了DELUCIONQA,这是一个大型数据集,用于促进红外辅助汽车人工质量保证系统中幻觉检测的再搜索。

1、数据集的构建

为了收集数据集,创建了一组汽车修理手册技术领域的问题,并使用配备多个重试器的质量保证系统为每个问题生成不同的检索结果。然后,根据这些检索结果生成各种答案,最后形成由人工标注者标注的(问题、再三重结果、答案)三元组。

1)问题创建

分两步创建一组与Jeep2023Gladiator相关的QA问题。

首先,使用LLM从特定领域的数据重新来源(本例中为官方汽车手册)中自动生成候选问题。为此,下载了HTML格式的公开汽车手册,并按照HTML段落结构将其分割成小块。

然后,用户手动过滤候选问题集,删除不现实的问题,并对剩余问题进行润色(例如,将问题改写为真实用户可能会问的问题)。

此外,作者还将自动生成的问题中缺少的重要问题添加到数据集中。

2)质量保证的上下文检索

对于每个问题(例如,“如何激活Uconnect语音识别系统?),采用稀疏和密集检索函数作为更高级检索方法的基础。使用Pyserini工具包,稀疏检索函数是Lucene5基于关键字的tf-idf变体,密集检索基于FAISS索引,并使用重现的ColBERT进行嵌入和检索评分。

由于检索上下文的范围会影响系统效率和答案质量,对每篇文档进行了不同粒度的索引(文档级、章节级和段落级)。这样,检索模块就能在适当的索引级别上进行选择,并使用符合问题的良好范围内的上下文。

例如:

在Top-k组合检索上,由于稀疏检索是以关键词为基础的,因此会受到词组重叠的限制,并忽略潜在的同义词和句子的相似含义。因此,除了Pyserini方法之外,引入了一种集合检索功能,它结合了稀疏和稠密重估方法。该集合方法采用多阶段检索范式,首先超量检索5倍的所需检索结果。合并密集检索和稀疏检索模块的得分后,系统重新排序并选出前k个结果。

在自适应组合检索上,不同粒度的静态文档分割并不能保证返回的上下文在最佳范围内与问题相匹配。因此,在上述集合检索方法的基础上,采用自适应集合检索方法,作为寻求动态上下文范围的改进方法。

在具体实现上,自适应检索检查从顶部的整篇文档到底部的段落等不同层次的检索得分,从而在文档中寻找与输入问题相匹配的适当范围,并根据确定的范围调整检索得分,当计算出的文档级得分较低时,我们仍会深入挖掘结构化文档的下层,匹配相关的文本块,最终合并相关的文本块,忽略相关性较低的部分,调整最终检索得分。

2、幻觉自动检测

检测幻觉的两种自动方法主要包括基于句子相似性的幻觉检测以及基于关键词提取的幻觉检测。

1)基于句子相似性的幻觉检测

基于句子级相似性的方法基本思想是确定答案中的每个句子是否以检索结果(即上下文)为基础,否则,这些句子很可能是LLM产生的幻觉。如果有一个或多个句子被认为没有依据,那么答案就会被预测为"幻觉”。

该方法计算两种相似度量:基于句子嵌入的相似度和句子重叠率。我们使用这两种度量方法来检测答案中的一个句子是否被认为与检索结果中的一个或多个句子相似(即基于),如图2所示,其中第三个句子被标记为"幻觉",因为它被认为与检索上下文中的任何句子都不相似。

这两种相似度计算方法从不同的角度评估两个句子(一个在答案中,另一个在检索结果中)之间的相似度。

基于句子嵌入的相似性计算是计算语言模型为两个重点句子分别生成的嵌入向量的余弦相似性。如果余弦相似度得分大于某个阈值,则这两个句子被认为是相似的,也就是说,检索结果中的句子会被预测为有依据的。

句子重叠率计算专门用于处理一对多或多对一映射的情况(即答案中的一个句子可能融合了检索上下文中多个句子的信息,反之亦然)。在这种情况下,对于重点答案句和上下文句来说,即使较短的句子主要是另一个句子的一部分,它们的句子嵌入相似度得分也可能很低,因为较长的句子可能包含大量额外信息。

在这种情况下,句子重叠率方法旨在捕捉这种部分相似性。该方法通过以下步骤判断两个句子是否相似:

步骤1:进行动态编程,以最大化重叠为目标比较两个句子,输出显示重叠词的最优路径。

步骤2:计算重叠长度,方法是累计重叠短语的标记数,每个重叠短语包含的单词数超过4个或n个,其中n是较短句子长度的30%。不考虑相对较短的重叠短语,以避免"the"等常用词的噪音影响。

步骤3:计算句子重叠率,即重叠长度除以较短句子中的重叠词数。如果该比率大于阈值,则认为两个重点句子相似。这两种句子相似度测量方法具有互补优势。基于嵌入的度量适用于一对一的映射,而基于重叠的相似度则适用于一对多和多对一的映射。

如list1所述,将它们进一步组合成一种混合幻觉检测方法。如果基于嵌入的方法认为一个句子不相似,混合幻觉检测方法就会检查基于重叠的方法是否认为该句子相似。如果这两种测量方法都认为句子不相似,那么该句子就会被标记为不支持(即幻觉)。

2)基于关键词提取的幻觉检测

利用关键词提取来检测幻觉方法的主要思想是,给定一个由LLM生成的答案,如果答案中相当一部分关键词在检索上下文中不存在,则认为LLM对答案产生了幻觉。

总结

本文主要介绍了一个RAG文本细粒度表证的工作,其中我们能看到的如何进行评估,以及不同表征之间的对比,领域的幻觉问题也值得我们关注,其利用基于关键词提取和相似度的评估,也可以引入到真实业务里的评测当中。

对了,《A Review On Table Recognition Based On Deep Learning》一工作介绍了现有表格识别相关的数据集。

地址:https://arxiv.org/pdf/2312.04808,对表格识别感兴趣的可以看看。

参考文献

1、https://arxiv.org/pdf/2312.06648.pdf

3、https://arxiv.org/pdf/2312.04808

3、https://arxiv.org/pdf/2312.05200

进技术交流群请添加AINLP小助手微信(id: ainlp2)

请备注具体方向+所用到的相关技术点

![](https://api.allorigins.win/raw?url=https://mmbiz.qpic.cn/mmbiz_jpg/nW2ZPfuYqSJADkmZ2IX6Z23znAibuEevotDMq9iaMxiapK7jfMibiauGFkycicAJEs6x5U9SGyDJZ0S1tRed9TPNUUDQ/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1)

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括LLM、预训练模型、自动生成、文本摘要、智能问答、聊天机器人、机器翻译、知识图谱、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP小助手微信(id:ainlp2),备注工作/研究方向+加群目的。

  


  


![](https://api.allorigins.win/raw?url=https://mmbiz.qpic.cn/mmbiz_jpg/nW2ZPfuYqSKABHCqVVQkVYPrM4XY1vsd0iaeuXzyJnoFc8cibd5mYb4wdA3WMQtiaPVmr0XLZHMuVibqWncibpnTSnQ/640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1)

更多AI工具,参考Github-AiBard123国内AiBard123

可关注我们的公众号:每天AI新工具