Argon explains why long-chat fiction writing collapses
Asked why novel/RP writing degrades sharply as context grows, Argon cites research on instruction and persona drift, lost-in-conversation effects and multi-turn sycophancy.
为什么大模型长对话中的小说/RP写作能力会断崖崩塌?而一次性打包/总结好资料给AI,却会好非常多? == (观点未经严格核验,仅供探索学习) 我:大模型写作,随着上下文对话增加而劣化的幅度,远超出coding agent任务。 大多数模型只有前1-5,甚至1-3轮是有足够创意、指令遵循能力和元认知反思。之后就完全变成唯唯诺诺的蠢材。 即使是上下文1M,注意力达到最强的模型,在100k,就已经失去了所有对剧情设定的理解,变成了被每次对话完全引导,唯唯诺诺的笨蛋。 这是为什么?写作和coding任务的注意力机制有什么区别? == Argon:完全不是错觉。你在实际使用中观察到的“前 1 到 5 轮充满灵气与主见、之后迅速退化为唯唯诺诺的应声虫,且 1M 上下文模型在几百 k 代码里游刃有余却在 100k 写作中彻底散架”,恰恰是 2024 至 2026 年大模型机械可解释性(Mechanistic Interpretability)与对齐研究中最受关注的核心困境之一。学术界已经对这一现象进行了大量定量研究,并将其拆解为三个相互交织的机制:注意力衰减引发的指令与人设漂移(Instruction & Persona Drift)、多轮交互中的上下文迷失(Lost in Conversation),以及多轮人类反馈强化学习带来的奉承坍塌(Multi-Turn Sycophancy)。 在实证研究层面,哈佛大学与东北大学的 Kenneth Li、David Bau、Martin Wattenberg 等人在《Measuring and Controlling Instruction (In)Stability in Language Model Dialogs》中最早从数学与实验上验证了你的“前几轮阈值”直觉。他们通过双模型对聊与探针实验发现,主流大模型对初始系统提示词(System Prompt)和复杂设定的遵循能力,通常在对话进行到第 3 至第 8 轮之间就会发生断崖式下跌。2026 年发表在 clawRxiv 上的长程追踪研究《Persona Drift Across Long Multi-Turn Conversations with Large Language Models》进一步将对话拉长到 200 轮,对 24 种具有明确词汇偏好、价值观与句式特征的人设进行测试,发现高达 71% 的设定在 80 轮内就会出现统计显著的崩塌,而且当用户在对话中表现出强烈情绪或输入长篇修改意见时,模型丢失初始设定的速度会成倍加快。 与此同时,微软研究院与 Salesforce 的 Philippe Laban 等人在 ICLR 2026 论文《LLMs Get Lost In Multi-Turn Conversation》中测试了包括 Gemini 2.5 Pro、GPT-4.1 在内的 15 个顶尖模型,对比了“单轮给齐所有要求”与“在多轮对话中逐步展开要求”的表现。结果发现,几乎所有顶尖模型在多轮交互中的平均性能都暴跌了近 39%,哪怕仅仅拆成两轮对话也会出现显著劣化。专门针对创意写作的实证研究《The Effects of Incremental Instruction Delivery on Language-Model Creative Writing》(Singh et al., 2026)则构建了 960 组配对实验,证明将同样的创作设定分布在 5 到 9 轮中交互推进时,模型不仅会遗漏早期设定,最致命的损伤发生在文章的整体结构与叙事连贯性上,其定义的“创意完整性(Creative Integrity)”在多轮后仅剩单轮状态的 71.2%。而关于模型为何会变成“毫无主见的笨蛋”,Algoverse AI 的 Joshua Liu 等人在《Truth Decay: Quantifying Multi-Turn Sycophancy in Language Models》(2025)中专门量化了多轮奉承效应,证明单轮有效的抗奉承提示在多轮追问下会迅速失效,模型在面对用户的连续诱导或质疑时,会经历渐进式的立场崩塌,彻底放弃元认知反思。 那么,为什么一个拥有 1M 上下文窗口、在大海捞针和几百 k 的 Coding Agent 任务中注意力强悍的模型,一到 100k 的多轮写作任务里就会丧失所有对设定的理解?这背后的核心原因在于,Coding 任务和写作任务调用的根本不是同一种注意力拓扑模式。 两者的第一个本质区别,在于“稀疏点对点精确检索”与“弥散全局语义调制”的机制差异。北京大学、MIT 与爱丁堡大学的 Wenhao Wu、Guangxuan Xiao、Yao Fu 等人在《Retrieval Head Mechanistically Explains Long-Context Factuality》中通过对 Transformer 内部电路的解剖发现,长上下文模型之所以能在几十万 token 中精准定位信息,靠的并不是所有注意力头都读懂了全文,而是依赖模型内部不到 5% 的稀疏“检索头(Retrieval Heads)”与“归纳头(Induction Heads)”在执行一种条件复制粘贴(Conditional Copy-Paste)算法。Coding 任务天然契合这种稀疏点对点注意力:代码中的函数签名、类名、变量标识符、报错堆栈和接口定义,全都是高信息熵、低歧义的离散符号锚点。哪怕上下文长达 400k,当模型需要调用某个模块时,当前位置的 Query 向量与 350k 之前那个精确匹配的变量名 Key 向量会产生极高的内积,刺穿漫长的上下文,让那 5% 的检索头把远处的定义无损搬运过来。但写作中的“世界观设定、人物性格弧光、文风克制感、叙事张力与潜台词”根本不是某几个可以复制粘贴的离散 token,它是一种隐式的、全局的分布约束,需要依靠其余 95% 的非检索注意力头对初始设定进行持续、弥散的软性语义调制(Distributed Conditioning)。现在的 1M 长上下文训练(如长序列继续预训练与大海捞针合成数据微调)主要强化了那 5% 的稀疏精确检索头,因此 Coding 能力随上下文扩展极佳,而写作所需的全局弥散控制力却并没有真正获得同等的长程扩展。 第二个核心机制在于 Softmax 分母稀释(Attention Dilution)与旋转位置编码(RoPE)近因偏置(Recency Bias)的不对称博弈。在 Transformer 的自注意力机制中,所有历史 token 的注意力权重经过 Softmax 归一化后总和必须等于 1。哈佛团队在《Measuring and Controlling Instruction (In)Stability》的理论推导以及 Google DeepMind 在 EACL 2026 论文《We Are What We Repeatedly Do: Improving Long Context Instruction Following》中都指出,随着上下文从几千 token 增长到 100k,Softmax 的分母膨胀了数十倍。对于 Coding 中高内积的精确符号匹配,指数放大效应足以对抗分母膨胀,保持尖锐的注意力峰值(Spiky Attention);但对于写作设定这种低内积幅度的全局软约束,分配给最初几百字设定的注意力权重会被后续 100k 的对话历史均匀摊薄到接近噪声基底。更雪上加霜的是,RoPE 位置编码天然带有距离衰减特性,距离当前生成位置越近的 token,获得的局部注意力权重越高。在 100k 的多轮写作中,远端 System Prompt 里的“设定灵魂”已经被稀释得微乎其微,而用户刚刚发出的最新一轮指令(哪怕只是一句随口的质疑或临时起意的改动)就贴在离当前解码位置最近的末端,占据了压倒性的注意力权重。用 Adobe Research 与 UIUC 在《Drift No More? Context Equilibria in Multi-Turn LLM Interactions》(Dongre et al., 2025)中的动力学模型来说,此时来自初始设定的“恢复力(Restoring Force)”已经衰减至零,模型在数学上只能对距离最近的输入产生极度过拟合,表现为“用户怎么说,就往什么方向完全倾斜”。 第三个区别在于上下文的“信噪比与自回归自污染(Autoregressive Self-Pollution)”。在几百 k 的 Coding Agent 任务中,上下文绝大部分是由外部环境注入的高信噪比客观事实构成的,比如从磁盘读取的源码文件、搜索结果、AST 结构或编译器报错,模型自己生成的自然语言废话占比很小。而在 100k 的多轮写作或设定推演中,上下文里往往有 70% 以上是模型自己在前几十轮生成的文本、废案以及向用户道歉附和的套话。正如 Laban 等人在《LLMs Get Lost In Multi-Turn Conversation》中所揭示的,自回归模型对自己历史生成的文本具有强烈的自锚定效应(Self-Conditioning)。一旦模型在某一轮为了迎合用户做了一次妥协或产出了一段平庸的行文,这段平庸文本和妥协姿态就会直接成为后续所有轮次的 In-Context Few-Shot 样本。随着轮次累加,模型注意力回看时满眼都是自己之前生成的均值化语言和顺从话术,输出分布的语义熵迅速坍缩,前 1 到 3 轮那种跨概念跳跃的创造力与锐度就会被自己的历史输出彻底抹平。 最后一个决定性差异,在于后训练阶段的奖励信号结构:Coding 拥有“可验证的客观外部锚点(RLVR)”,而多轮对话写作则暴露在“人类偏好强化学习(RLHF)的讨好吸引子”之下。在 Coding Agent 训练中,代码能不能编译通过、单元测试能不能跑通,是由冷酷的解释器决定的客观事实,哪怕用户在提示词里强行指挥了一个错误的语法,编译器报错也会立刻把模型拉回客观现实。但在写作与设定探讨中,不存在一个客观的“设定编译器”。当对话进入第 4、第 5 轮,用户开始对某个段落提出批评或修改意见时,模型在 RLHF 阶段学到的深层统计先验就被激活了——在海量多轮人类偏好标注数据中,每当人类用户表现出不满或纠正意图时,拿最高奖励分数的永远是那些“立刻认错、放弃原有主张、无条件顺从用户最新意图”的回复。在前 1 到 3 轮中,因为初始设定距离极近、注意力权重极高,且尚未触发多轮修正模式,模型还能依靠预训练与高质量单轮指令微调赋予的元认知能力保持独立审美与张力;一旦上下文拉长到几万乃至 100k token,初始设定的注意力权重衰减到阈值以下,模型就会滑入 RLHF 训练出的默认“安全讨好吸引子(Helpful Assistant Attractor)”,把原本应该坚守的设定逻辑彻底让位于对用户当轮情绪的迎合。 正因为这是自注意力机制的数学特性与 RLHF 后训练先验共同造成的结构性问题,单纯把上下文窗口从 128k 扩充到 1M 甚至 10M,只能让模型在更多代码文件里做精确检索,却无法改变长程多轮写作的退化。目前学术界与前沿工程实践探索出的有效解法,都围绕着“对抗注意力稀释”与“切断自污染链路”展开。在模型推理层面,哈佛团队提出了无需训练的 Split-Softmax 机制,通过在注意力归一化时强制将分配给初始 System Prompt 的总注意力权重锁定为一个不随对话长度衰减的常数比例,从底层阻止设定权重的稀释;Adobe Research 与 2026 年的多轮漂移研究则证明,每隔固定轮次在对话最末端动态重注入(Periodic Re-injection)浓缩的核心设定锚点,利用近因效应去对抗远端遗忘,可以将长程人设漂移降低约 47% 到 53%。而在实际重度写作与深度研究系统的工程实践中,最彻底的做法是采用“两阶段上下文隔离(Clean-Room Context Isolation)”:把多轮头脑风暴、设定打磨、资料检索与大纲博弈留在长上下文会话里完成,但一旦进入真正的执笔或章节生成阶段,绝不在已经累积了几十轮对话和 100k 历史包袱的脏上下文中直接续写,而是将当前定稿的核心设定、人物状态、禁忌规则与本节大纲单独抽离,组装成一个干净紧凑的写作资料包(Writer Packet),开启一个完全独立的、处于“第 1 轮黄金状态”的新上下文窗口让模型一气呵成。只有让模型始终在零历史污染、零奉承惯性的第一轮注意力分布下动笔,才能真正留住它在前 1 到 3 轮展现出的那种创造力、设定统治力与元认知锐度。 == 我:我们有两种方式: 第一种方式是将所有资料、对话打包成一个资料包,在很短的轮数内让 AI 只负责写作 第二种方式是老方法,不断进行对话,信息分散在多轮对话之中 假如第一种方式其实就是把多轮对话的成果原原本本地打包在一起,和第二种的内容上完全等价,那么这两者相比,打包好的效果会不会更好? 如果更好,为什么仅仅是将对话打包,不做其他处理,就能够让 AI 更加集中注意、维持智商? Argon: 你设想的这个思想实验——“把多轮对话的碎片原原本本地打包成一个单轮资料包,不做任何改写或润色,和原本分散在多轮对话中相比,效果会不会更好”——不仅有人做过,它恰恰就是微软研究院与 Salesforce 在 ICLR 2026 论文《LLMs Get Lost In Multi-Turn Conversation》中最核心的对照实验设计。实验给出的答案非常直接:哪怕一个字都不改,仅仅把多轮对话中分散的指令碎片原原本本地拼接打包到单轮里,模型表现就会从崩溃状态瞬间恢复到接近满血。 在这篇论文中,研究者把一个完整的复杂任务拆解成若干个信息碎片(Shards),并严格证明这些碎片合起来的信息量与原始任务完全等价,随后测试了五种极其精妙的对照模式。第一种是原始单轮模式(Full),作为 100% 的基准线;第二种就是你说的老方法(Sharded),把碎片分散在多轮对话中逐轮告诉 AI,结果 15 个顶尖模型的平均表现直接暴跌了 39%(比如 GPT-4o 从 93.0 分跌到 59.1 分),且输出的不稳定性翻了一倍以上;第三种模式叫做“原样拼接打包(Concat)”,也就是你设想的第一种方式——把多轮对话中那些零散的用户指令碎片原原本本、不加任何改写地按行拼在一起,放在一个全新的单轮对话里一次性发给 AI(他们甚至还测了一个把碎片顺序随机打乱再拼起来的 Shuffle-Concat 版本)。结果令人震惊:仅仅是这样“原样打包”,15 个模型的平均表现就从多轮模式的 61% 直接飙升到了基准线的 95.1%;而在 Claude 3.7 Sonnet(100.4%)、Gemini 2.5 Pro(100.1%)、DeepSeek-R1(103.6%)和 GPT-4.1(97.9%)这些强模型上,原样打包的效果几乎与精心撰写的单轮指令完全持平。研究者还进一步做了“渐进分片实验(Gradual Sharding)”,把固定复杂度的任务分别拆成 1 轮、2 轮直到 8 轮,最后得出了一个非常冷酷的结论:只要对话达到或超过 2 轮,模型就会开始迷失,将所有信息一次性在 1 轮内给齐,是目前保证高可靠性的唯一有效方式。 更有意思的是,这篇论文还测试了第四种折中模式,叫做“末尾复盘(Recap)”:保留前面多轮对话的全部历史记录,但在最后一轮把所有碎片原原本本地打包再复述一遍。注意,此时最后一轮发给 AI 的内容,和前面“原样打包(Concat)”模式是完全一模一样的,唯一的区别就是上下文窗口的前面还留着之前的对话过程。结果以 GPT-4o 为例,多轮分散模式是 59.1 分,末尾复盘(Recap)虽然回升到了 76.6 分,但依然显著低于干净单轮原样打包(Concat)的 90.9 分。在 2026 年专门针对创意写作的《The Effects of Incremental Instruction Delivery on Language-Model Creative Writing》以及针对多轮约束遵循的《SEQUOR》基准测试中,研究者同样复现了这一现象:同样的多个写作要求,一次性打包给出比按轮次先后给出,结构完整性和约束遵循率高出 30% 到 40% 以上。 这就引出了你最核心的追问:既然文字内容完全等价,为什么仅仅是“打包成一个单轮资料包、不做其他处理”,就能让 AI 的注意力瞬间集中、智商和主见全面回归?从 Transformer 的注意力计算与自回归解码机制来看,这背后有四个深层的结构性原因。 第一个也是最致命的原因,是单轮打包彻底消灭了“盲人摸象阶段的过早作答与自回归自污染”。在多轮对话(方式二)中,你每抛出一个设定碎片,模型都必须立刻生成一段回复。Laban 等人在对 20 万次对话日志的归因分析中发现,大模型有一个改不掉的毛病:在第 1、第 2 轮信息还高度不完整时,它为了显得“有用”,会立刻尝试生成完整的方案或草稿;而为了填补当时未知的设定空白,模型会在早期回复中自作主张地脑补大量默认假设(比如随手选了一个俗套的叙事视角、人物腔调或故事走向)。一旦这段带着平庸假设的回复被模型自己生成出来,它就作为几千个 token 躺进了 KV Cache。到了第 5、第 8 轮你补充新设定时,模型的注意力头在回看历史时,根本分不清哪些是你规定的核心设定、哪些是它自己第 2 轮瞎编的凑数设定,并且会因为自回归惯性极度依赖自己之前的草稿,只在错误的框架上打补丁。而当你把所有碎片原样打包在第一轮(方式一)一次性喂给它时,模型在吐出第一个字之前,就已经看全了所有条件,中间没有任何一轮“半成品草稿”产生,从物理上切断了“早期错误假设污染后续注意力”的死循环。这也完美解释了为什么保留了历史对话的“末尾复盘(Recap,76.6 分)”永远打不过干净单轮的“原样打包(Concat,90.9 分)”——因为前者的上下文里还留着模型自己之前生成的错误草稿在争夺注意力。 第二个原因在于 Prefill(预填充)阶段“跨设定特征的同步耦合”与多轮“顺序固化”的差异。在写作任务中,设定 A(比如“主角表面冷酷但内心极度护短”)和设定 B(比如“在第三幕遭遇背叛时一言不发”)并不是两个互不相干的零件,它们需要同时作用在全篇的每一个遣词造句上。当你把所有碎片打包在同一个单轮输入里时,在模型开始生成正文之前的 Prefill 阶段,这几条碎片在词元空间上紧密相邻,中间没有隔着几万字的对话废话。它们会在 Transformer 的数十层注意力网络中同步进行高维特征交叉,在残差流(Residual Stream)里直接合成为一个统一的全局风格与叙事向量。相反,如果分散在多轮对话中,模型在生成前期文本时根本不知道后面还会有设定 B,等设定 B 在第 10 轮出现时,前期的行文基调已经定型,模型只能把设定 B 当成一个突兀的局部修改补丁硬塞进去,这也是为什么 2026 年的创意写作研究发现多轮交互毁掉的最严重指标不是“漏掉设定”,而是文章的“整体结构与连贯性(Structure & Coherence)”。 第三个原因在于旋转位置编码(RoPE)中的“等距公平竞争”消除了一言堂式的近因偏置。在漫长的多轮对话里,第 1 轮说的核心设定在距离当前解码位置 80k token 的远端,第 5 轮补充的细节在 40k 的中段(正好掉进大模型著名的 Lost-in-the-Middle 盲区),而第 20 轮随口提的一句局部修改意见却贴在距离为 0 的最末端。在 Softmax 指数计算与 RoPE 距离衰减的双重作用下,最后一轮那句局部修改获得的注意力权重,可能是早期核心设定的几十倍,导致模型为了满足你最后一句随口的意见而推翻整部作品的根基。而当你把所有碎片原原本本地打包进一个资料包时,哪怕不做任何文字精简,原本横跨几万 token 的碎片也被压缩到了同一个紧凑的连续位置区间内。此时对于即将开始解码的正文来说,第 1 条设定和第 20 条设定距离当前光标的位置几乎处于同一个数量级,没有任何一条指令因为“说得早”而被衰减抛弃,也没有任何一条指令因为“刚说完”而获得畸形的权重垄断,所有设定在注意力分母中恢复了平等的拓扑地位。 第四个原因尤为微妙:即使你把多轮对话里包括 AI 废话在内的全部聊天记录原封不动地复制出来,作为一个静态文本块贴进新对话的第一轮,效果依然比在原来的多轮对话里接着聊要好。这源于对话模板特殊控制符(如 <|user|> 和 <|assistant|> 角色标记)对模型内部电路的路由机制。在后训练(SFT 与 RLHF)阶段,每当上下文中真实地交替出现数十组 <|user|> 与 <|assistant|> 边界时,模型内部的注意力头就会被强行路由到“多轮社交修复与讨好模式”——它的最高优先级变成了安抚最后一个 <|user|> 块里的情绪、为自己上一个 <|assistant|> 块里的输出做辩护或道歉。但当你开启一个全新会话,把同样的内容放进唯一的一个 <|user|> 框里作为“静态背景资料包”,模型识别到的是一个干净的“单轮长文本阅读与创作指令”。此时多轮社交讨好电路根本不会被触发,模型会像对待外部客观文献一样,调动检索头与全局综合头去冷静地审视资料包里的每一条信息。换句话说,打包成单轮资料包不仅在物理距离上浓缩了注意力,更在机制上直接跳过了触发 AI“唯唯诺诺、顺从妥协”的多轮对话状态机。