某个交互式教学游戏里,KV-cache 被做成绕着角色旋转的护盾球。弹幕密了,球不够用,伤害穿透,角色掉血——不是被击中,是被挤死的。游戏叫 GPU Survivors: Latent Space Hell,2024 年 7 月发在 DEV Community,本意是教人理解 LLM 推理期的内部压力:上下文窗口、激活调度、权重存储、对抗输入。
这游戏本身不算漏洞,连边缘漏洞都算不上。但把机制翻译成游戏机制这件事,值得多拆一层。cosine similarity 做成方向性弹幕伤害,quantization 做成攻速提升但伤害削减,weight decay 缩小 hitbox,dropout 给概率闪避,jailbreak 做成拆锁,data bias 做成偏移力场,KV-cache 就是那圈护盾球——几乎每一项都在标"模型哪个部位能被外力干预"。开发者承认代码和封面图都借了 AI 的手,Foundry 加 Gemini。AI 教别的 AI 内部压力,再让另一个 AI 画张封面,这套自指链还挺完整的。
教学归类没错。但这张地图的读者,不止是来学概念的玩家。
换成攻击者的思路,整张地图最值钱的一条是 KV-cache 那栏。护盾球转不过来就掉血,现实里 KV-cache 占显存和内存,上下文越长占得越多,模型能用来做判断的余量就越少。攻击者不需要知道注意力机制的任何细节,只需要知道一件事:往上下文里塞够多的内容,就能挤掉模型的判断余量。上下文膨胀→KV-cache 被挤占→输出竞争加剧→藏在文档里那行写给 agent 的隐式指令更容易命中。这条链在游戏里被可视化成"护盾球转速下降"。教学里管这叫内部压力。攻击手册里,它就是触发条件。
这个点我一开始判成科普娱乐,想着一个游戏能教出什么攻击性来。转念把三档难度翻出来,看法变了。企业级 API 六点血带加成,消费级 GPU 五点血,智能吐司四点血还少经验——每一档都是对同一模型不同承载力的标注。同样的上下文灌进企业推理集群和灌进个人显卡,结果不会是同一个,攻击者会掐着硬件算压力线,不会对着文档猜。还有那个 15 分钟准时出现的无敌 boss,普通怪清空,Hardware Degradation 出来打不动——现实里的压力劣化就是这样的,上下文积累到阈值,性能断崖,不提前打招呼。级别上调,但没到全行业连夜打补丁的程度。低概率高杀伤,值得记一笔。
——离题了,收。回到能落地的动作上。
拆弹清单就三条:
一,先把上下文长度压下来。能让模型塞多长,不等于所有文档都适合进同一个上下文。每多一万 token,KV-cache 就厚一分,模型剩下的判断余量就薄一分。先压上下文再调模型,比往 system prompt 里堆安全提示词划算。
二,KV-cache 用量得可观测。显存和内存占用要做监控,异常增长先于输入异常报警。等模型开始"突然变笨"再排查,已经晚了。
三,别把安全提示词当护盾球堆。内部压力一大,最先被挤出上下文的就是那些"请小心"之类的话,保优先级最低,一挤就掉。
地图不咬人。不知道收上下文权限的部署才咬人。
