← 懂一点

幻觉与上下文窗口——大模型的两个天生短板

2026-07-18

本文是专栏《从零看懂大模型》第 5 篇。回到目录与导读。上一篇:提示词工程

前面几篇都在讲大模型有多能干。这一篇泼点冷水——讲它两个改不掉的天生短板。理解它们,你才知道什么时候该信它、什么时候该留个心眼。

这两个短板是:幻觉(一本正经地胡说)上下文限制(记不住太长)。它们都不是 bug,而是第 1 篇那个工作原理的直接副产品。

短板一:幻觉——它会"睁眼说瞎话"

你大概遇到过:问模型一个人物、一本书、一条 API,它答得信誓旦旦、有名有姓,结果一查根本不存在。这就是幻觉(hallucination)

为什么会这样?

回到本质:模型在做的是**"预测下一个最像样的词",而不是"检索一个确认为真的事实"**。

它追求的是**"读起来对不对",不是"事实上对不对"。当它对某件事其实没把握时,它也不会说"我不知道"——因为在它读过的文本里,一个问题后面总是跟着某种自信的回答**,很少跟着"这个我不清楚"。于是它就编一个最像真的出来,语气还特别笃定。

打个比方:这像一个特别要面子、又极度擅长圆场的人。你问他任何事,他都能对答如流、逻辑自洽——但他优先保证的是"听起来可信",而不是"确实如此"。

你问:请介绍一下《XX 心理学》这本书的作者。
(其实根本没这本书)

模型:这本书由著名心理学家张某某于 2015 年出版,
      主要探讨……
      —— 名字、年份、内容全是现编的,但编得有鼻子有眼。

怎么应对?

一句话记住:模型担保"像真的",不担保"是真的"。事实核查这道关,得你自己把。

短板二:上下文窗口——它记不住太长

第 2 篇提过"上下文窗口":模型一次能同时摊开来看的 token 有上限。这带来两个现实约束。

约束 A:超出窗口的,它压根看不见

你和模型的对话、你贴给它的长文档,全都要装进这个窗口。一旦总量超过上限,早先的内容就会被"挤出去",模型就当没看见过。

上下文窗口(比如 20 万 token)就像一张有限大的桌子:
┌─────────────────────────────┐
│  系统设定 + 历史对话 + 你贴的文档 + 当前问题 │
└─────────────────────────────┘
        装满了 → 最早的内容被推下桌 → 它"忘"了

这就是为什么很长的对话到后面,模型会"忘记"你开头说过的话——不是它记性差,是那部分已经不在桌上了。

约束 B:就算装得下,中间也容易被"读漏"

有个被反复观察到的现象,业内叫**"中间迷失"(lost in the middle):当上下文很长时,模型对开头和结尾的内容记得清楚,对正中间**的内容却容易忽略。就像人读一篇长文,最有印象的往往是开头和结尾。

所以哪怕文档没超窗口,把关键信息埋在超长文档正中间,也可能被它读漏。

怎么应对?

两个短板,一个根源

你会发现,这两个毛病其实同源:

短板 表面现象 根源
幻觉 一本正经地编造 它在"猜最像的词",不是"查确认的事实"
上下文限制 长了就忘、中间读漏 它一次只能摊开有限 token,且注意力不均匀

都不是"模型不够聪明",而是"预测下一个词"这套机制的固有代价。知道了根源,你就不会用错地方——它是极强的"生成"和"理解"工具,但不是可靠的"事实数据库"和"无限记忆体"。

小结

短板讲完,我们把目光投向前沿。最后一篇聊聊 2025 年以来最大的变化——推理模型:o1、o3、DeepSeek-R1 是怎么通过"先想后答",把复杂推理能力又拔高一截的。

继续阅读:推理模型——让模型"先想后答"的新范式