把大模型从演示变成能值班的系统时,推理退化几乎总会先露出工程缺口。下面按可执行的顺序来拆:先讲它解决什么、卡在哪,再讲选型时看哪些数字,最后落到智能体和网关该怎么接。本文面向要上线的工程师,不写空泛趋势。

一、先分清三种形态:不是同一种 bug

用过 ChatGPT、Claude 或本地部署开源模型的人,多半见过:模型忽然把同一个词或同一句话无限循环;或者突然吐出控制字符、乱码、纯数字串;更糟时输出空掉、截断,像「死」在某一步。这些现象常被笼统叫成退化(degeneration)、文本循环或模型崩溃。若只当成「模型质量差」或「prompt 写坏了」,线上排查就会走偏—— 三种常见形态往往不是同一种 bug,触发条件、观测信号和止血手段都不一样。

这里讨论的是推理阶段:权重已固定,只做前向。训练时的 loss spike / NaN 见 36|训练稳定性 。解码旋钮本身(temperature、top-p、重复惩罚如何改分布)见 48|从 logits 到文本 ;KV 显存与驱逐见 49|KV Cache 。这里钉住故障机制:注意力与自回归如何把小偏差锁死,数值路径如何把半崩变成乱码,以及生产上如何分层防御。

二、注意力坍塌:Softmax 马太效应、Sink 与 Causal Mask

线上排障第一件事不是调 temperature,而是 分类 。混用止血手段会互相打架:抬高温度可能打断循环,却抬高误入词表边缘的概率。

Holtzman 等人( The Curious Case of Neural Text Degeneration , ICLR 2020)系统刻画的是 开放生成下似然最大化带来的重复与乏味 ——主要对应上表第一行,以及「语义兜圈」这种软退化。乱码与 NaN 路径更多是数值工程与实现细节,不在他们的主实验里,但生产里必须和第一类并列处理。

三、死循环:概率偏置如何变成注意力雪崩

\[ \mathrm{Attention}(Q,K,V)=\mathrm{softmax}\!\left(\frac{QK^\top}{\sqrt{d_k}}+M\right)V \]

\(M\) 为 Causal Mask(未来位置为 \(-\infty\) )。退化时,这条链上的每一步都可以把微弱偏差放大。

四、乱码:数值溢出如何把半崩变成词表真空

设两个 logit 差为 \(\Delta\) 。 \(\Delta\) 稍大时,softmax 几乎把质量集中在最大值上——这是指数函数的性质,不是实现 bug。单步里「注意力略集中」往往无害;危险在于自回归把本步输出写进下一步上下文,偏差被循环使用。

Xiao 等人(StreamingLLM, ICLR 2024 ,arXiv:2309.17453)表明:模型常把不成比例的注意力质量分给序列开头少数 token(如 BOS),即使语义上对当前预测贡献很小——这些位置充当注意力泄洪区(attention sink)。长上下文下有效语义权重被稀释时,模型更依赖 sink 与最近若干 token。若最近片段已进入重复模式,注意力更容易被钉在该模式上。这与 49|KV Cache 里驱逐策略「必须保留 sink」的工程事实是同一现象的两面:sink 对稳定性有用,也对「一旦污染就难脱困」负责。

五、无意义数字与语义兜圈:软退化

Causal Mask 禁止看未来。过去一旦被重复或乱码污染,当前 \(Q\) 只能对着已经坏掉的历史 \(K\) 打分,无法靠「向前看」纠错。它不是退化的唯一原因,却是正反馈得以锁死的结构条件——退路在架构上被关掉了。细节见 17|Causal Mask 。

Holtzman et al.(ICLR 2020)指出:自然语言中真实连续重复并不常见,但模型条件分布仍可能给「再来一个相同 token」不低的质量;贪心只要它是 \(\arg\max\) 就会选中。选中后上下文变成「…… \(w\ w\) 」,继续重复的概率往往更高。采样有机会绕开,贪心没有回头路。策略层旋钮与组合陷阱见 48 ;这里只钉故障面:贪心是放大器,不是根因的全部。

六、分层防线:每一层挡哪一类

\(w\) 被反复写入后,KV Cache 里堆积高度相似的 \(K_w\) 。下一步 \(Q\) 与这些 \(K\) 的点积集中,softmax 后最近重复位置占压倒权重,其他语义被淹没——于是继续输出 \(w\) 。经验上,从「还像人话」到「不可逆循环」可以发生在很少几个 token 内,因为有效信息占比在指数下降。

Keskar 等人在 CTRL( arXiv:1909.05858 , 2019)引入 repetition penalty:对已出现 token 的 logit 按 \(\theta>1\) 缩放,打断「重复仍是 \(\arg\max\) 」的条件。 \(\theta\) 过大则专有名词、变量名、JSON key 等 应该重复 的内容也被打压——这是 48 已写清的副作用;排障时不要把「禁重复」当成万能开关。

落地时建议先做的 5 件事

  1. 用自己的 20 条真实请求测 TTFT / TPOT / 失败原因,不要只看公开榜。
  2. 先写显存和 KV 缓存账,再决定卡数、量化和并发上限。
  3. 网关层把鉴权、配额、审计和模型路由收口,应用里不要各接各的 Key。
  4. 工具调用默认拒绝,按白名单放开,高风险动作必须人审。
  5. 模型升级准备回滚:旧权重、旧 Prompt、旧评测集要能一键切回。

和智能体产品怎么接

对龙虾PRO这类要把 OpenClaw 落到中国业务场景的平台来说,推理退化决定的是延迟能不能进对话、成本能不能规模化、出了问题能不能追溯。技能市场、数字员工和网关都应该吃同一套观测与权限,而不是文章里的概念演示。

效率龙虾 会带着下面这段开聊

按文章《别只背名词:推理退化怎么用到生产》把卡点收成可执行步骤:先做什么、别踩哪条、怎么验证。

用效率龙虾试这篇

本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源

常见问题 FAQ

什么是AI智能系统?

「AI智能系统」可概括为:推理退化不是单一故障。死循环、乱码/控制字符、无意义数字串各自踩中注意力正反馈、数值溢出与词表边缘的不同路径。本文分清三种形态的触发条件与可观察信号,钉住 Softmax 马太效应、Attention Sink、Causal Mask 退路切断、FP16/量化与 KV Cache 污染,并给出架构到运行时的分层防线、争论与开放问题。 本文从定义、方法与实践要点展开说明。

为什么要关注AI智能系统?

关注AI智能系统,是因为它直接影响效率、风险与可复制性。文中指出:用过 ChatGPT、Claude 或本地部署开源模型的人,多半见过:模型忽然把同一个词或同一句话无限循环;或者突然吐出控制字符、乱码、纯数字串;更糟时输出空掉、截断,像「死」在某一步。这些现象常被笼统叫成退化(degeneration)、文本循环或模型崩溃。若只当成「模型质量差」或「prompt 写坏了」,线上排查就会走偏—— 三种常见形态往往不是同一种 bug,触发条件、观测信号和止血手段都不一样。

如何落地AI智能系统?有哪些关键步骤?

建议按以下路径推进AI智能系统:1) 用自己的 20 条真实请求测 TTFT / TPOT / 失败原因,不要只看公开榜。;2) 先写显存和 KV 缓存账,再决定卡数、量化和并发上限。;3) 网关层把鉴权、配额、审计和模型路由收口,应用里不要各接各的 Key。;4) 工具调用默认拒绝,按白名单放开,高风险动作必须人审。;5) 模型升级准备回滚:旧权重、旧 Prompt、旧评测集要能一键切回。。细节见正文对应章节。

AI智能系统适合哪些人或团队?

AI智能系统更适合:产品/技术负责人、运营与增长团队、需要落地智能体或自动化的中小团队、关注「AI智能系统」方向的读者。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。

关于「一、先分清三种形态:不是同一种 bug」,本文给出了什么结论?

在「一、先分清三种形态:不是同一种 bug」部分,要点是:这里讨论的是推理阶段:权重已固定,只做前向。训练时的 loss spike / NaN 见 36|训练稳定性 。解码旋钮本身(temperature、top-p、重复惩罚如何改分布)见 48|从 logits 到文本 ;KV 显存与驱逐见 49|KV Cache 。这里钉住故障机制:注意力与自回归如何把小偏差锁死,数值路径如何把半崩变成乱码,以及生产上如何分层防御。 二、注意力坍塌:Softmax 马太效应、Sink 与 Causal

关于「二、注意力坍塌:Softmax 马太效应、Sink 与 Causal Mask」,本文给出了什么结论?

在「二、注意力坍塌:Softmax 马太效应、Sink 与 Causal Mask」部分,要点是:事实是同一现象的两面:sink 对稳定性有用,也对「一旦污染就难脱困」负责。 五、无意义数字与语义兜圈:软退化 Causal Mask 禁止看未来。过去一旦被重复或乱码污染,当前 (Q) 只能对着已经坏掉的历史 (K) 打分,无法靠「向前看」纠错。它不是退化的唯一原因,却是正反馈得以锁死的结构条件——退路在架构上被关掉了。细节见 17|Causal Mask 。 Holtzman et al.(ICLR 2020)指出:自然语言