为什么“窗口更长”不能解决问题

常有人以为,只要模型上下文窗口够大,就能把整局录像一口气读完。可以算一笔示意账:一局 40 分钟的比赛,按每秒抽取一帧,就是 2400 张画面;再叠加每个 tick 的 Telemetry、几十分钟的队伍语音转写,即使做了压缩,也是相当大的输入。就算能装下,模型在超长输入里也常常出现“中间丢失”一类的现象,对开头与结尾记得清,中间反而模糊。更长的窗口只是减轻了容量问题,并没有解决“该记什么”。

更关键的是,比赛里绝大多数内容并不重要。走位、换弹、空转,占了时间的大头,而真正影响结果的,可能只有几十个事件。所以长上下文的目标不是把一切都留下,而是把“重要的”以可查询的形式留下。这个判断与 关键事件检测 是同一类问题,也是长上下文处理的入口。

原始录像事件时间线分层摘要检索记忆回答与引用
图:长录像处理的分层结构:原始数据先压缩为事件时间线,再形成多层摘要,回答问题时按需检索,并回到原始证据核对。

事件时间线:把录像变成可以翻页的账本

第一步是把原始信号转成结构化的事件时间线。每条事件包含时间戳、参与者、位置、事件类型,以及当时的关键状态,例如经济、人数、目标归属。“第 12 分 40 秒,A 组从中路转向侧翼,对方视野丢失”这样的一行,远比几百帧画面容易保存和比较。PA真人平台把事件时间线作为长上下文的骨架,画面和语音则退居为需要时调取的证据。

时间线的好处是天然按时间排序,可以做区间查询,比如“第 10 到 15 分钟里所有资源变化”;也能按类型、选手、地图区域过滤。它相当于给模型一本账本,而不是一堆散页。前提是事件抽取本身足够准确,否则账本上写错的每一条,都会成为后续推理的地基。

分层摘要:从一句话到一分钟,再到一整局

有了事件时间线,还需要不同粒度的摘要。一个常见的层次是:最底层是逐事件记录;往上是“回合摘要”或“一波团战摘要”,说明起因、过程、结果;再往上是阶段摘要,比如前期节奏、中期资源争夺;最顶层是整局概述。回答“这局输在哪”时,从顶层开始,遇到需要细节的地方再向下钻取,而不是一次读完全部,PA真人的复盘流程就是这样逐层下钻的。

分层摘要的坑在于层与层之间的误差会累积。假设某个回合摘要把“被抓单”写成了“团战失利”,阶段摘要就会顺着这条错误结论继续概括。因此摘要要保留指向下一层的引用(时间戳或事件编号),必要时能回溯核对。可以把摘要当作索引,而不是真相本身。

检索式记忆:需要什么,才取什么

当用户问“这名选手前三局在这个点位上死过几次”“这次转点和上一局有什么相似”,模型并不需要把所有历史放进窗口,而是用检索取回最相关的几条事件与摘要。检索可以基于时间、地图区域、事件类型这样的结构化条件,也可以基于向量相似度,找出“形状相似”的片段,例如同一种被抓单的模式。

检索方式 适合的问题 可能出错的地方
结构化过滤 某时间段、某位置、某类事件的统计事件抽取有漏,统计就偏低
向量相似 找相似的局面或失误模式 相似度高不等于原因相同,不同补丁版本可能失效
时间邻近还原某个事件的前因后果 窗口太窄看不到远因,太宽则引入噪声

检索也有覆盖问题:如果查得太窄,会漏掉真正的远因,比如死亡的原因在 30 秒前;查得太宽,又会把无关事件混进来。常见的处理方式是先取最近的事件,再沿着因果线索向前扩展,而不是简单取前后固定时长。相关做法在 死亡前 30 秒的复盘 里也有体现。

遗忘与压缩:忘什么,比记什么更重要

任何长期记忆都需要遗忘策略。一个直接的原则是:状态发生转折的事件优先保留,如目标被拿下、经济反超、阵型崩溃;重复且低信息的事件合并为统计量,比如“这一分钟内共 6 次小规模交火”;较老的细节降级为摘要。对个人长期数据也一样,近期的表现保留细节,早期的只保留趋势。

压缩的同时要标记不确定性。对没有把握的信息,摘要里应该写“可能”“未核实”,而不是直接抹平。PA真人在设计中把“摘要”和“证据”分开存放,回答问题时同时给出证据的时间戳,这样即使摘要有偏差,用户也能回头核对。

幻觉风险:长上下文里最容易出的错

长上下文场景里的幻觉,往往不是凭空编造,而是“合理但没有发生”:模型记得某位选手常在某点位防守,就推断这一局也守在那里;模型知道这类阵容通常压制对手,就宣称这一波是压制。这是把统计规律当作了当前事实。应对办法主要有三条:让每一条结论必须引用具体事件或时间戳;对没有证据的部分明确标为“推测”;在输出前做一次与事件时间线的一致性检查,发现矛盾就退回“无法确定”。

小结长录像不是靠更大的窗口硬读,而是靠事件时间线做骨架,分层摘要做索引,检索取回细节,遗忘规则控制体积,并让每个结论带着证据。PA真人大模型把“能回到原始证据”当作长上下文设计的底线。