技术 · 深入

同一句话,为什么有时它读得到、有时读不到?

不是模型变笨了,是它读的位置不一样
你大概遇到过:同一段要求,问第一遍它遵守,问第三遍就当没看见。多数人以为是自己没写清楚,于是把提示词越写越长 —— 结果更糟。真正的原因往往是位置:在用了分块压缩的长上下文模型上,每个 token 相对压缩窗口的边界有一个「相位」,同一句话落在不同相位,被读到的概率可以差出几十个百分点。这一页给三条可落地的摆放规则(关键句前置或紧贴问题 · 首尾各放一次 · 分块边界不切关键句)外加一套自查动作 —— 同一问题换个位置再问一次,答案漂了,就是位置敏感,该重排了。
方法 · 一图看懂
1
先测位置敏感 — 同一句关键信息,换个位置各问一次,看答案是否漂移
2
关键三类前置 — 硬约束 · 当前状态 · 判定标准:放最前,或紧贴问题
3
首尾各放一次 — 中间只留索引,不做二次展开
4
边界不切关键句 — 压缩 / 分块时让切口落在段落之间,不落在句子里
「相位」到底是什么
采用分块 KV 缓存压缩的模型,会把长历史按固定步长切成一块块压下去。每个 token 相对它所在块的边界有一个位置,论文把这个位置叫相位。同一件事实在不同相位上被检索的难度并不相同 —— 有的相位「记得牢」,有的相位天然模糊。这不是模型忽好忽坏,而是它读的位置换了。
实测差多少:40.2 → 19.1 → 6.1
论文给出的三个量级很有说服力:基础版 V4-Flash 在不同相位之间的检索准确率波动达 40.2 个百分点;经后训练后降到 19.1;把压缩步长由 4 收紧到 2 的 V4.1-Flash 进一步降到 6.1。另一侧的旁证更直观:只改代码开头注释的长度,就能让推理结果在 FP8 正确与 FP32 错误之间每 4 个 token 循环一次。
所以可操作的那一条
既然强弱相位客观存在,人能做的就是别把关键信息交给运气:凡是你必须它照做的句子,要么放最前(系统提示顶部),要么紧贴问题,要么首尾各出现一次。⛔ 最不该的位置是「长文档中段」 —— 那里最容易落在弱相位,且你从输出上看不出任何异常。
原理 · 为什么有效
模型不是「通读」你的上下文,而是在压缩后的表示上按位置检索。位置决定检索强度 ⇒ 关键信息的位置,和它的措辞一样重要。把「说什么」写对只解决一半;「放哪儿」是另一半。
适用场景
适合这几类人:① 长文档问答经常漏掉中段要求 ② 系统提示写了十几条规则、执行时总丢几条 ③ 用压缩 / 摘要机制跑长任务,发现规则会「悄悄消失」。⛔ 不适合:单轮短问答(几段话以内),位置影响可以忽略。
自测 · 5 问
关键要求是否放在最前或紧贴问题(⛔ 不埋在中段)
同一关键句是否做过「换位置再问一次」的对照测试
首尾是否各出现一次,且中间只留索引不重复展开
压缩 / 分块时,边界有没有落在关键词或关键句中间
长任务中途是否复查过:早期立下的硬约束现在还读得到吗
怎么上手 · 验证步骤
先只做一件事:把你最在乎的那条规则,从系统提示的中段挪到第一行,其余一个字不改,再跑一次同样的任务。若行为有变化,说明你确实踩到了位置敏感,接着按四条规则把其余关键句也排一遍。
自查动作 —— 把你写好的提示词切两版:A 版关键句在中间,B 版关键句在最前,同一个问题各问一次。两版答案不一致 ⇒ 位置敏感成立,按本节重排;两版一致 ⇒ 该任务对位置不敏感,不必过度前置。
[C级]字节跳动 Seed 团队论文《Periodic Weak Spots: Phase Sensitivity from Chunked KV-Cache Compression》(arXiv 2609.36322 · 2026-09-28 · 提出分块 KV 缓存下的「相位敏感」) [C级]品玩 Pandaily 报道(引 Seed 论文原文 · 给出相位间波动 40.2 / 19.1 / 6.1 三个实测值) [C级]AIProductHub 快讯(引 Seed 论文 · 关键信息前置或重复放置可提升抓取概率) 同类:上下文不是越摘越短,是越养越准 · 上下文可以改,但有几行不许删 · 上下文爆掉,压缩不是第一步
继续往下读
同级:上下文不是越摘越短,是越养越准 随机一篇