LLM长文本处理:Lost in the Middle问题及解决方案

2024-07-10 173 0

虽然当前各个厂商的LLM均可处理长文本,例如qwen2可处理 128K的文本,但由于目前大部分的LLM均是基于Transformer的Encoder-Decoder或者Only-Decoder架构,不可避免的都会存在Lost in the Middle 问题。

1.什么是LLM的Lost in the Middle问题?

即LLM在处理长文本时,如果需要的关键信息在长文本的开始或者结束位置附近,则LLM可获取较好的输出效果。反之,如果关键信息在长文本的中间位置,则LLM的效果会变差。

例如在一个基于20篇文档的问答系统中,假设只有1篇文档D包含了答案,那么文档D在20篇文档中的不同位置时,LLM回答准确率大致如下:

LLM长文本处理:Lost in the Middle问题解读

基于20篇文档构成的问答提示词如下:

LLM长文本处理问答系统

从结果可发现:当文档D在第一个位置时,LLM的准确率较高。当在末尾时(第20个位置)准确率有一定下降,但是当文档D在中间位置时,准确率最低。LLM的性能随着D位置的不同呈现一个U型的变化。

2.长文本的Lost in the Moddle是普遍的么?

从作者的实验结果来看,基于Transformer的Encoder-Decoder或者Only-Decoder架构都存在这样的问题。在长文本中,LLM的性能随关键信息在长文本中的位置变化而呈现U型变化。

3.Lost in the Middle问题对LLM信息提取的影响

由于本司自研的LLM提取能力中,输入的用户与坐席的文本也存在长文本,且关键信息位于文本中部这样的情形,因此Lost in the Middle问题会对LLM的提取能力造成影响。

目前由于我司的长文本比例较少,但未来会形成基于多通话,多文档的信息提取能力,故该问题的影响将会增加。

4.如何降低Lost in the Moddle的影响?

目前暂时有3种方法可以缓解:

方法1:使用RAG技术,尽量找到与关键信息相似的信息加入到提示词中

方法2:使用KNN等文本相似度算法,找到与问题相近的案例加入到提示词中

方法3:使用数据增强方式,增强训练数据集

参考文章:Lost in the Middle: How Language Models Use Long Contexts

相关文章

LARS:一种评估LLM输出结果准确性概率的方法
LLM时序对话处理:使用小结更新方法实现对话信息的有效处理
BSDetector: 一种衡量LLM输出结果好坏的评价方法
LLM Self-Improve: 一种使用大LLM生成训练集并微调LLM的方法
LLM文本小结生成:一种基于内容标签生成文本小结的方法
LLM Lost-in-the-Middle问题解决:构造信息位置无关的增强训练数据集

发布评论