Skip to content
L1 用起来

上下文塞太长会怎样

能塞进去和读得进去,是两件事。

就像一整箱资料倒在桌上 ​

你把一箱合同倒在一张桌子上,摊得很开,然后问自己:「第三页那张 2019 年的补充协议里,违约金怎么写的?」

你翻得动吗?表格这么大,纸片互相压着,你得一张张拨开。人都会翻错,只是程度不同。

模型就是那张桌子。2026 年的产品标的窗口数字都很漂亮,几十万、几百万词元听着很唬人。但论文测出来的结果跟这个数字关系不大。

关键那篇论文做了什么 ​

2023 年 7 月,Nelson F. Liu 等人做了一件很简单的事:拿两段东西喂给模型——一段是多文档问答,一段是找特定键值对。同一份资料,同样的问题,只改一件事:答案在长文本的开头、中间、还是结尾。

结果是两头好,中间差。差异相当明显,而且不是模型越小越明显——那些专门标榜长文本能力的模型照样中间掉。

这篇论文给这个现象取了个名字:迷失在中间。

我第一次看到的时候不太信,因为我自己那会儿在用的产品,标称能读很长的 PDF,读得挺顺的。后来我专门试了一次:把一份三十页的合同切成三段,让它回答第七页里某个具体条款的编号。两次答案不一样,第二次那个编号是我瞎编的,它顺着说了。

它为什么会这样 ​

机制层面目前最有解释力的说法来自 2024 年 6 月 Hsieh 等人的论文:模型对词的注意力天然是 U 形的——不管某段内容重不重要,开头和结尾的词都比中间的词更容易被注意到。

他们的解释是位置本身的偏差,不是内容不重要。所以「我把最重要的放在最后」这个土办法能奏效,不是模型读懂了,是它正好看到了。

他们还设计了一个叫「found-in-the-middle」的校准(calibration)方法 —— 训练中途动手把偏差压回去的做法,在一批检索增强生成的任务上比之前的方法高最多 15 个百分点。方向对了,但只在论文的实验设置里成立。

那长文档到底怎么办 ​

四步,我一直在用。

先切。 一份长文档按章节或者页码切成几块,每块一次问。宁可多问几次。窗口再大,它也不会因为你能塞就多给你准确性。

再定位。 第一遍别急着问「答案是什么」,先问「这份文件有哪几章,每章大概讲什么」。这一遍很短,但它给你一张目录。

然后才问细节。 拿着目录,把相关的两三块单独贴进去问。这时候它们都落在窗口的头和尾。

最后核。 涉及数字、日期、条款编号的,回到原文看一眼。我在这一页前面说的那句「它给的、你原文里没有的数字一律当幻觉」,在这里最要紧。

还有一个很土但很有用的习惯:重要的话写两遍。 一遍在开头,一遍在结尾。这不是玄学,就是顺着那个 U 形走。

费用和等待也在涨 ​

顺带说个实际后果。上下文越长,跑一次要读的字越多,越慢越贵。有些产品的价格页面直接按输入和输出的词元数算,一份一百页的 PDF 反复问十次,账单会提醒你这不是免费的。

有个省钱的办法:先问一遍「这份文档里有没有我要的东西」,确认有,再贴全文。

延伸阅读 ​

  • Lost in the Middle: How Language Models Use Long Contexts(Nelson F. Liu、Kevin Lin、John Hewitt et al.,2023,arXiv 预印本)—— 同一份资料,只改答案所在的位置,做多文档问答和键值检索两类任务。成绩最好的是信息在开头或结尾的时候,挪到中间就明显掉,哪怕是对着长文本专门训练过的模型也一样。这一篇给「迷失在中间」这个说法留下了名字,这一页的切分办法基本是从它推出来的。arXiv: 2307.03172

  • Found in the Middle: Calibrating Positional Attention Bias Improves Long Context Utilization(Cheng-Yu Hsieh、Yung-Sung Chuang、Chun-Liang Li et al.,2024,arXiv 预印本)—— 接着上一篇往下挖,把掉分的原因归到模型内在的 U 形位置偏差上:开头的词和结尾的词被关注得更多,跟它们重不重要没关系。作者设计了一个叫 found-in-the-middle 的校准机制来抹平这个偏差,在一批检索增强生成任务上比已有方法高最多 15 个百分点。这个数字只在论文自己的设置里成立,尚未被广泛复现。arXiv: 2406.16008

动手试试 ​

找一份手边的长文档,二十页以上就够。

第一轮贴全文,问「这份文件一共有哪几部分,每部分主要讲什么」。第二轮把文件砍成两半,只贴前一半,再问同样的问题。

把两轮列出的部分对照一下。我猜第一轮会漏掉中间某一块。

顺便看一眼这次用了多少词元、提示里显示的计费数字。

下一站 ​

知道该怎么切了,剩下的就是挑东西了:现在到底有哪些工具能打开,各是什么来路。

内容用 VitePress 构建,站内链接全部为相对路径。