采风全网
达观天下

大语言模型读长文档时,那些被摊薄的注意力

有人把三十页的产品说明书贴进对话框,连问三个问题。第一个回答还算靠谱,第二个开始把前面的参数换了个说法,第三个干脆绕开了原文里明确写着的限制条件。文档明明就在那儿,模型却像是读到后面忘了前面。

窗口变长之后,问题换了位置

大语言模型处理文本的方式,是把每个词压成向量,再让这些向量彼此“看”一眼,算清楚谁该关注谁。序列越长,这种两两比对的计算量涨得越快,工程上要靠稀疏化、分块、缓存这些手段把成本压下来。窗口从几千扩到几十万,听着是能力升级,实际是压力转移:信息确实都装进去了,可分配到每一段上的注意力被摊薄了。

这有点像把一份材料摊在一张过大的桌子上。每页都看得见,但没有哪一页被真正拿起来细读。位置也有关系,开头和结尾往往被记得更牢,中间那一段最容易滑过去。

检索和长窗口,不是一道选择题

检索增强的路子是先找出相关段落,再喂给模型;长窗口的路子是全塞进去,让它自己挑。前者省算力,但成败取决于切分是否合理、召回是否准;后者省掉了一整条工程链路,代价是把负担交给了注意力机制本身。

实务中更常见的做法是两者叠着用:先把长材料做结构化处理,拆成带标题的小节,需要精确引用时保留原文片段,需要概括时用摘要。这样既不至于让模型在几万字里漫游,也保留了上下文之间的连贯。

几条具体的写法

  • 把关键约束放在最前面,重复一次在末尾,中间放细节。
  • 长文档先让它自己列一份结构清单,确认章节对得上,再问具体问题。
  • 要求引用时,让它指出原句所在的小节标题,而不是复述大意。
  • 一次只推进一个改动,多轮叠加容易让前后约束互相打架。

它不会主动承认自己没看到

遇到没读到的部分,大语言模型很少说“这里我没看到”,更常见的反应是顺着已有上下文补一个听起来合理的答案。语气越流畅,越难分辨。所以判断一段输出能不能用,关键不在于它写得多顺,而在于你能不能把某句话指回原文的某一行。指不回去的,就还只是草稿。

这也是为什么在真实工作流里,模型的位置往往被放在中间:前头有人把材料整理清楚,后头有人核对出处。它省掉的是翻找和起草的时间,省不掉的是对内容负责的那一环。窗口还能继续变长,但这件事大概不会因此改变。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:大语言模型读长文档时,那些被摊薄的注意力
文章链接:https://tech.cfdanews.com/ai/796.html