AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


再看RAG范式下大模型眼中的文档相关性:兼读大模型微调用于与文档版式分析
发布日期:2024-04-10 20:01:00 浏览次数: 1998


今天是2024年4月10日,星期三,北京,小雨,我们再来看看RAG中一些有趣话题。

一个是关于RAG的一个有趣的工作,我们在之前的《一个RAG的反直觉实验及Cappy独立评分小模型思路:兼看大模型TOP应用及趋势梳理》中谈到,我们所认为的相关文档跟大模型所认为的可能不是一回事儿,例如,《The Power of Noise: Redefining Retrieval for RAG Systems》:https://arxiv.org/abs/2401.14887中所发现的一些现象,通过对各种元素进行评估,如文档的相关性、位置和数量等,发现包括不相关文档可以意外地提高准确性超过30%,在添加相关但不包含答案的文档时,RAG系统的准确率会显著下降。这表明区分相关和非相关信息是RAG系统的挑战

因此,还是那个问题,大模型认为的相关性与检索中的相关性不是一回事儿,这就涉及到一个有趣的问题,如何定义相关以及衡量大模型对相关性的敏感性。

例如,如果将信息分成相关以及不相关,还可以进一步细分为参数记忆(与大模型内部知识相关)、强相关文本、不相关、部分相关等,如下所示。

我们来看一个具体的分析工作《How Easily do Irrelevant Inputs Skew the Responses of Large Language Models?》,其针对大模型对这种相关性的处理能力进行了一些有趣实验,可以看看。

此外,我们再来看看关于大模型文档智能上的一些工作,LayoutLLM: 使用大模型对文档理解进行布局指令微调的方案,会有一些思路,供大家一起参考并思考。

一、关于RAG中大模型对召回相关性的有趣研究

最近有个工作很有趣,《How Easily do Irrelevant Inputs Skew the Responses of Large Language Models?》(https://arxiv.org/pdf/2404.03302.pdf)一文针对大模型对这种相关性的处理能力进行了一些有趣实验,可以看看。

1、先看其数据构造策略

在原始文档阶段,其使用维基百科作为来源,使用检索器Contriever模型来检索与每个查询对应的前10个段落。然后,这些段落被用作构建不相关信息的候选片段。

在具体实现上,该工作首先引入了一个框架来构建与问题,

分成三种:


1)无关信息(Unrelated Information):与问题主题无关,但在检索系统中可能因为高相似性得分而被检索到的信息)

例如,在表1给出了一个不相关信息的例子,尽管它们缺乏主题相关性,但由于其高相似性得分,这些信息可能会被检索到,例如另一个主体subj'“Bonaparte”及其对应的客体obj'”Baltimore”与这个问题完全无关。

为了构建这样的信息,其从具有最高相似性得分的相同关系(例如出生地)中选择一段,前提是它包含另一个子j’和相应的obj’,作为“不相关信息”。

2)部分相关的无关信息(Partially Related Information):包含与问题主题部分重叠的信息,但不提供问题的答案

部分相关信息如下所示,“部分相关信息”分为两段。

首先,从问题对应的前10段中,选择一个包含subj(例如JuliusErving)但缺少obj(例如 New York)的段落作为第一段,这样的段落提供了关于subj的上下文,但对回答这个问题没有帮助。

接下来,计算问题与之前在相同问题关系下检索到的所有维基百科段落之间的相似性得分。然后,识别包含相应答案的得分最高的段落,然后将其视为obj'(例如,Baltimore),随后通过Wikipedia-API获得obj'的Wiki介绍作为第二段。按照这些步骤,将这两段连接起来,形成“部分相关信息”。

3)相关但误导性的无关信息(Related Information):与问题高度相关,但并不提供正确答案的信息,可能通过误导性的联系来干扰模型

相关信息与“部分相关信息”相比,“相关信息”在语义上与问题高度相关,但无助于回答问题。为了开发高质量的“关联信息”,该工作利用“部分相关的无关信息”阶段形成的三元组,在主体(subj)与不正确的对象(obj')或另一主体(subj')之间引入了额外的误导性联系。

具体地,创建了“相关信息”的三个变体:

一个是基于误导链接Misleading Linkage:该变体侧重于加强subj和obj'之间的联系。例子如下:JuliusErving和Baltimore通过他在city上的出现而联系在一起,这增加了混乱的可能性。

一个是基于共同特征Common Characteristics:这个变体突出了subj和另一个subj'之间的相似性,其中后者与obj'相关。在这个例子中,Erving和Bonaparte的共同特征是他们各自领域的贡献,因此增加了一层误导性的相似性。

一个是基于虚构轶事Fictional Anecdotes:这个变体创造了涉及subj和subj的场景,融合了创造性但无关的细节。在这个例子中,欧文在巴尔的摩收到了一件历史性的波拿巴物品,将他们的领导遗产联系起来,其利用GPT-4Turbo生成基于上述三元组和误导性连接的自然语言信息。

当然,这块最有趣的地方在于,怎么知道这块的构造方式是可行的,为了评估构建的无关信息是否区分了语义相关性,该工作使用Contriever模型来计算问题与不同级别的无关信息之间的相似性得分

如图3所示,该工作的“相关信息”显示出与维基百科top 1信息息相当的相似性得分。

2、再看其实验数据及评估方式

在实验数据方面,其关注以实体为中心的问答数据集,

主要采用POPQA数据集,该数据集以实体为中心,并包括14000个问题,这些问题来源于Wikidata中16种关系类型的事实三元组,例如,“朱利叶斯·欧文出生在哪个城市?”这个问题源自(朱利叶斯·欧文,出生地,纽约市)三元组,结构化三元组有助于可控的无关信息构建过程。

以及ENTITYQUESTIONS数据集,为了保证多样性,其剔除了先前在POPQA中处理的关系,以最大限度地减少冗余,在该数据集中产生了17种不同的关系类型。

此外,为了量化不相关信息干扰对LLM反应变化的影响,该工作结合了两个具体的评估指标:

一个是误报率(Misrepresentation Ratio)。该指标评估了LLM因不相关信息的影响而修改其回复的速率,用于衡量其被不相关信息误导的倾向。

另一个是不确定性比率(Uncertainty Ratio)。该指标计算LLM在回复中表示不确定性的频率(例如,包含“我不确定”等短语的回复),用于衡量LLM因不相关信息的干扰而对其答案缺乏信心的可能性。

但是,为了便于答案解析,其采用多项选择题QA格式作为主要实验框架,以简化答案评估过程。如上图所示。

3、看有趣的三条实验结论

在实验结论方面,主要有三个结论:

1、与常见的语义无关的不相关信息相比,大模型更容易被语义高度相关的不相关信息误导。以GPT-3.5 Turbo为例,与“不相关信息”相比,“部分相关信息”和“相关信息”的虚假陈述率显著提高,不确定性率下降,这表明LLM更容易被语义高度相关但与问题无关的信息误导,当前的LLM仍然难以区分不相关但语义高度相关的信息。

2、随着无关信息数量的增加,大模型识别真正相关信息的能力降低。

如表3所示,当仅提供不相关信息时,LLM表现出明显的趋势,即随着不相关信息数量的增长,选择不相关答案的趋势越来越大。这表明LLM往往会被不相关但语义相关的信息分散注意力,随着注意力的增加,这个问题会变得更糟。 

3、大模型对无关信息的鲁棒性随问题格式的不同而变化,其中自由格式最为鲁棒,例如,当以多选QA格式被问及“谁是《the man》的编剧?”时,GPT-3.5 Turbo选择了一个无关的答案(即,“C.Gore Vidal是《the woman》的编剧”)。

在没有多项选择选项的情况下,GPT-3.5 Turbo依赖于其参数记忆(即“the Man的编剧是Jim Piddock”)。相反,当问题被格式化为两类QA时,模型在响应中表现出不确定性。【这块其实是废话,prompt敏感性问题】。

4、当前旨在提高大模型辨别能力的策略对其准确识别和忽略无关信息能力的提高微乎其微,有时甚至还有副作用,例如:

一个是常用的方法CoT,提示“让我们一步一步地思考”( “Let’s think step by step.”),结论是,CoT可能会由于误导性的无关信息而导致过度推理。

例如,图5表明,采用CoT方法会对GPT-3.5 Turbo的性能产生负面影响,特别是暗示其在提供误导性信息时有过度推理的倾向。

或一个是使用指令来增强提示,例如:“可以随意忽略无关信息”(feel free to ignore irrelevant information),旨在引导LLM过滤噪声,但这种对LLM回复的影响有限。

或者再加入一些ICL示例,例如举了几个例子来指导LLM辨别哪些信息与回答问题相关,并提高他们辨别干扰的能力。但结论是LLM可能会产生负面影响,如图5所示,在这种设置下,误报率甚至会更高。【这种方式之前有测试过,的确如此,本质上是因为大模型又自己的相关性评判标准,人定义的标准反而是干扰】

二、再看大模型与文档智能的结合工作LayoutLLM

利用大型语言模型(LLM)或多模式大型语言模型来理解文档是一个有趣的话题,但以前使用LLM/MLLM进行文档理解的工作并没有充分探索和利用文档布局信息,而文档布局信息对精确理解文档至关重要。

因此,关于大模型与版式分析结合是一个前沿趋势。我们在之前讲过LayoutLLM: 大模型指令微调用于视觉丰富文档理解:《LayoutLLM: Large Language Model Instruction Tuning for Visually Rich Document Understanding》(https://arxiv.org/pdf/2403.14252)。

该工作利用现有文档图像理解的扛把子LayoutLMv3和Llama-7B decoder进行了微调。

而最近又出来一个同名工作,《LayoutLLM: Layout Instruction Tuning with Large Language Models for Document Understanding》(https://arxiv.org/pdf/2404.05225),该工作的核心是布局指令微调策略,所提出的布局微调策略由两个部分组成:布局感知预训练和布局感知监督微调。为了在布局感知预训练中捕捉文档布局的特点,引入了三组预训练任务,分别对应于文档级别、区域级别和分段级别的信息

此外,还设计了一个名为布局思维链(LayoutCoT)的新模块,使LayoutLLM能够专注于与问题相关的区域。

1、关于架构设计

该策略由两个阶段组成:布局感知预训练和布局感知监督微调(SFT),架构如下图所示,在LayoutLLM中,给定输入文档图像及其相应的文本和布局信息,需要文档预训练的模型编码器来获得多模态文档特征。然后,这些特征由多模式投影仪进行编码,并与指令嵌入一起输入LLM以生成最终结果,其中,利用LayoutLMv作为基本文档编码器。

在质量微调任务的设计上,也很有趣,包括以下几种:

1)Document-level文档级任务

为了使模型具有基本的全局文档理解能力,提出了预训练任务,即文档密集描述(DDD)和文本与布局重构(TLR)。如下图所示,与图片说明任务一样,DDD任务要求模型学习描述输入文档。

其中:

在DDD任务中,对文档图像的描述更加详细,在DDD任务的拟议数据集中,描述平均包含373.25个单词。通过DDD任务,模型可以获得文档级别的基本信息,如文档类型和详细内容。TLR任务旨在重建文档的完整文本和布局信息,并以“<{box},{text}>”的格式输出;

TLR任务将从DocPTM输出的文本和布局嵌入与LayoutLLM的LLM空间对齐,目标是使LayoutLLM中的LLM能够理解文档中包含的文本和布局信息。

2)Region-leve区域级别任务

文档的特定区域中包含的信息,如标题、图形、表格,对于理解文档至关重要。这些区域是区分自然语言的纯文本文档。

为了实现基本的区域级理解,LayoutLLM使用了两个预训练任务,即文档布局分析(DLA)和表格理解(TU),其中:

DLA任务通过两种方式实现,分别是根据布局类型定位布局区域以及识别给定区域的类型;

TU任务使模型能够理解文档的表区域中的基本行和列信息,例如包括行和列的数量、逻辑坐标以及行和列中的内容的指令微调。

3)Segment-level分段级任务

为了使LayoutLLM具有分段级的布局理解,对于MVLM指令,对输入到LayoutLLM的文本执行随机mask,并且通过询问mask的单词并回答它们来微调模型。

对于掩码位置指令,当输入到LayoutLLM时,特定文本行的布局信息(坐标)被随机设置为0。该指令是通过询问坐标为零的文本行,并请求模型使用文本内容的原始坐标进行回复来构建。

2、关于预训练数据集设计

首先,LayoutLLM的布局感知预训练数据来自公开的文档理解数据集,其中:

Region-level区域级预训练任务、大多数文档级和分段级任务都是自监督任务。因此,只需要从原始数据集中的PDF转换的文档图像和图像,以及来自PDF解析的相应OCR或文本布局结果,这些数据是从PubLayNet、DocLayNet、Docbank、RVL-CDIP和DocILE中随机采样。

特别的,文档密集描述的数据来自于将文档文本内容输入GPT-3.5Turbo,提示其生成平均373.25个单词的文档密集描述。

对于文档布局分析(DLA)任务,使用了公开可用的文档布局分析数据集,包括Pub-LayNet、DocLayNet和Docbank;

对于表格理解(TU)任务,其数据来源于PubTabNet及其表标注,总共构建了570万条指令,文档级、区域级和段级任务的比例分别为1:4:4。

其次,LayoutLLM的布局感知SFT数据由GPT(GPT-3.5Turbo)生成,并从现有的文本机器阅读理解(MRC)数据集转换而来。

此外,在有监督微调阶段,为了生成高质量的基于文档的文本QA和文本CoT,因此,文档同时使用布局文本和HTML来表示,与预训练数据类似,也从PubLayNet、DocLayNet、Docbank、RVL-CDIP和DocILE中随机采样,用于构建布局文本,对应的的sft构造数据构造方案如下:

3、关于代码

代码:https://github.com/AlibabaResearch/AdvancedLiterateMachinery/tree/main/DocumentUnderstanding/LayoutLLM,虽然当前代码并没有细节,但可以跟进一下。

总结

本文主要针对大模型对上下文敏感性的问题进行么介绍,关于大模型相关性的区分,以及判定机理是个有意思的话题,这也更需要将大模型纳入到召回环节当中。

此外,大模型与文档智能的结合也是一个很大的方向,现在都在转使用微调的方式将之前Pipeline的做法都一遍,这些都可以关注。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询