← 文档库
📄 文档learn/LLM学习与应用/01-上下文密度衰减:为什么越详细的需求越容易做崩.md
🌱 创建于2026-07-08 02:17
✏️ 修改于2026-07-08 02:17
👁️ 浏览量—
🔗 短链接/~learn/s/35dfd454
🔐 可见性

上下文密度衰减:为什么越详细的需求越容易做崩

一个反常现象

你可能也反复遇到过这个矛盾:

输入方式 结果
---------------
说一句"帮我做个TODO List" 几分钟就跑起来了,甚至还会贴心地加动画、做深色模式
写2000字PRD,把每个控件的边距、颜色、滚动参数都写清楚 做出来这不对那不对,调来调去越调越乱

表面上看这违背直觉——给的信息越多,应该做得越好才对。但现实恰恰相反。这个现象不是你的错觉,也不是模型"变笨了",而是 LLM 推理机制中一个非常基础但极少被人讨论的特性:上下文密度衰减(Context Density Decay)。

---

核心原理:注意力不是均匀的

1. Transformer 的注意力瓶颈

大语言模型基于 Transformer 架构,核心机制是 Self-Attention。理论上 Attention 可以看到上下文中的所有 token,但实际上:

信息保真度 ≠ 均匀分布

输入上下文(假设 10K tokens):

  [系统提示词][任务描述][背景知识][约束1][约束2]...[约束N][具体要求][用户问题]
       ↑                                                          ↑
    高保真区域                                                高保真区域
                        中间区域 → 被"压扁"

Anthropic 在 2024 年的 "Lost in the Middle" 后续研究中量化过这个现象:在 128K 上下文窗口中,位于中间 60% 位置的信息,召回准确率从 90%+ 掉到 40% 以下。

2. 约束的组合爆炸

这才是真正杀死质量的原因。假设你在 PRD 里写了 N 条硬性约束:

模型需要同时满足所有约束。但每一条约束都不是独立的:

约束满足概率 = 乘积关系,不是加和

满足 1 条约束: 95%
满足 2 条约束: 95% × 95% ≈ 90%
满足 10 条约束: 0.95^10 ≈ 60%
满足 30 条约束: 0.95^30 ≈ 21%   ← 这就是为什么"全错了"

这还没算约束之间的隐性冲突——比如"16dp 间距"和"紧凑布局"在某些断点下天然矛盾。模型遇到冲突时不会报错,它会默默妥协一边,而且你很难提前猜到它会妥协哪边。

3. 指令遵循的"认知负荷"

人也是一样的。想象你给同事交代任务:

这不是记忆问题,是工作记忆(Working Memory)容量问题。LLM 有同样的限制。上下文越长、约束越密,模型在生成每一个 token 时需要"同时记住"的东西就越多,而它的"推理带宽"是有限的。结果就是:它会优先满足最近提到的几个约束,而把早期的约束"下沉"到潜意识里——像极了人听到第7条要求时的状态。

---

"少输入、多自由"为什么反而好?

当你只给一个模糊的方向——"做个TODO List"——模型处于生成模式而非约束满足模式:

维度 模糊指令(Vibe Coding) 精确PRD
-------------------------------------
模型的任务 补全 / 续写 / 创造 约束满足 / 检查清单
主要调用的能力 预训练知识(万亿token见过的最佳实践) 指令遵循(相对弱的能力)
容错空间 大(怎么做都行) 极小(差1dp都算错)
出错模式 可能漏掉你脑子里想的某个功能 到处都是小错,互相牵连
成功率 80-90% 能跑到可用 30-50% 需要反复修

关键点:大模型最强的能力是"生成合理的东西",而不是"精确按清单执行"。预训练阶段它见过无数高质量UI、无数好代码,这些知识以"权重"的形式内化了。当你给它自由,它直接调用内化的最佳实践;当你用 30 条约束绑住它,它反而无法调用那些隐性知识,只能在 token 级别硬凑约束——就像一个画家被要求"这个像素点必须是#FF5733",最后画出来的东西反而不如让他自由发挥。

这就是为什么 Vibe Coding 有效:它把任务匹配到了模型最强的能力维度上。

---

学术侧的佐证

几个关键研究和现象可以相互印证:

---

三个典型的"输入过载"陷阱

陷阱 1:一次性把所有要求说完

最常见。用户觉得"我把需求一次讲清楚省得来回",但结果是模型只能抓住最后几条。

陷阱 2:Spec 和实现混在一起

在同一个提示词里既写"做什么"又写"怎么做",还写"不能怎么做"。模型分不清优先级,最后平均用力,所有点都只做到 60 分。

陷阱 3:不切分的 UI 精确描述

直接给一整页的所有控件参数。UI 是高耦合的——A 控件的位置影响 B 控件的边距,一个参数错了连锁反应。模型没有"眼睛",它无法像人在 Figma 里那样实时预览校验。

---

小结:一句话原理

LLM 的输出质量 ≈ 调用预训练内化知识的程度
                  - 约束数量带来的认知负荷
                  - 长上下文带来的注意力稀释

自由发挥时,分子最大、分母最小;精确PRD时,分子被压制、分母爆炸。

这不是模型的 bug,这是它的能力结构决定的。理解了这个,下一篇我们就可以讨论怎么利用这个特性设计工作流,把模型的能力真正榨出来。

---

延伸阅读

▶ 📜 变更历史(1 次提交)

01005c22026-07-08 02:17chore: 更新择时图表缓存、推送消息、数据拉取、推送历史
🍃quant 知识库
by 伊甸园和枫

🔊 播放设置

勾选音源后调节配比,总和自动归一化
已选 0 个 · 合计:0%
合成中...
00:00/00:00
1.0x

分享图片

生成中...