当前位置: 首页 » 资讯 » 新科技 » 正文

把稀有的失败,用对的方式去问

IP属地 中国·北京 科技行者 时间:2026-10-31 02:18:06


你有没有想过这样一个问题:两个在平均表现上看起来几乎一样的系统,会不会在极端情况下差得天差地别?

比如两个自动驾驶模型,平时的平均事故率都是百万分之一,听起来都挺安全。但如果你只看平均数,可能会忽略一个致命的事实:其中一个模型在遇到罕见的极端路况时会彻底失控,另一个却能稳住。平均数一样,不代表尾部风险一样。

这正是这篇论文要解决的问题。论文关注的是一个叫CVaR的指标。

CVaR(条件风险价值):衡量"最坏情况下的平均表现"的统计量。比如设定尾部比例为10%,CVaR就是把所有结果从差到好排序后,取最差的10%那部分,算它们的平均值。它比"最坏情况"这种单点指标更稳健,也比"平均值"更能反映风险。

问题是,想要准确估计CVaR,传统做法得跑很多很多次完整的模拟。想象你要评估一个语言模型工作流在处理金融报表时会不会偶尔犯严重的数值错误,你得让它跑成千上万次,才能攒够那1%甚至更少的"倒霉情况"样本。而现实中,每一次模拟可能都要调用一次大模型,都要花钱、花时间。预算,成了瓶颈。

但论文发现了一个关键突破口:在很多场景里,系统其实不是一个黑箱,而是由一堆可以单独"拎出来问"的小模块组成的。比如一个语言模型审核流程,可能反复用到同一个审核提示词;一个强化学习策略,可能反复经过同一个状态。这些重复出现的小模块,叫做"查询组"或者"核"。

查询组(Query Group):论文中指一个可以被独立采样的条件概率分布,比如某个状态下采取某个动作后会发生什么,或者某个审核提示词会得到什么回复。它是整个系统里最小的可以单独"问"的单元。

既然这些模块可以单独查询,那问题就变成了:给定一笔固定的预算,该把查询次数分配给哪些模块,才能最准地估出CVaR?

这篇论文的答案,是一套叫做Tail-Influence Sampling(尾部影响采样,简称TIS)的方法。

为什么"视觉上一样"不代表"信息量一样"

论文一开篇就用了一个特别直观的例子,狙击了一个大家可能想当然的直觉:既然某个模块经常被访问,那它肯定重要,应该多采样;如果两个模块的奖励方差差不多,那它们对最终结果的影响应该也差不多。

论文用一个构造出来的反例彻底打碎了这个直觉。设想有十个动作可选,每个被选中的概率一样(都是十分之一),每个动作对应的奖励分布,均值都是0.5,方差都是1/36,完全没法从这两个统计量区分它们。但其中一个动作,有十分之一的概率拿到0分,剩下时间拿到5/9分;另外九个动作则是一半概率拿1/3分、一半概率拿2/3分。

现在设定关注最差的10%情况。那个会偶尔拿0分的动作,正好卡在这个阈值附近,它的不确定性直接决定了CVaR往哪边动。而另外九个动作,不管怎么采样,它们的结果都稳稳地高于这个阈值,压根不影响CVaR的计算。

论文算出来的结果很扎眼:如果按访问频率或者按均值方差来分配采样预算,得到的误差方差是1/G(G是动作数量),而真正最优的分配方式,误差方差只有1/G?。当G等于10的时候,最优分配的误差只有传统方法的十分之一。

这就像一个保险公司在评估一批客户的风险。如果只看"这个客户来咨询的次数"或者"这个客户历史理赔金额的平均值和波动幅度",你可能完全漏掉真正决定公司会不会破产的那个客户:他看起来普普通通,理赔次数不多,金额波动也不大,但他恰好是那种"一旦出事就会触发巨额连锁赔付"的类型。如果保险公司把风控资源按"咨询频率"分配,那笔该砸在这个客户身上的审查预算,就会被稀释到一堆根本不会出问题的客户身上。等真出事时,公司才发现自己押错了地方。

这个例子揉碎了"视觉上相似就等于统计上无差别"的假设,也是这篇论文存在的理由:你需要一个专门衡量"这个模块的不确定性,到底会不会传导到尾部风险"的指标,而不能偷懒用"访问频率"或者"均值方差"去代替它。

尾部影响:把一次采样的"蝴蝶效应"算清楚

那么,这个专门的指标到底怎么算?

论文的思路分三步。第一步,把CVaR写成一种叫做"shortfall"(缺口)的东西的函数。

Shortfall(缺口):给定一个阈值q,缺口就是"q减去实际结果,如果结果超过q就算0"。直白地说,就是衡量结果比某个及格线差了多少,超过及格线就不计。CVaR其实可以写成这个缺口期望值的一个简单变换。

第二步,论文用了类似强化学习里"贝尔曼方程"的递归结构来追踪:某一步观测到的一个随机结果,怎么一层一层地影响到最终根节点的缺口。

贝尔曼方程/递归:强化学习里用来把"未来所有步骤的价值"拆解成"当前这一步的奖励加上下一步价值"的递归公式。论文把这个思路搬到了分布式的场景,追踪的不是一个数值,而是一整条概率分布。

关键的地方在这里:如果某个查询组(比如某个审核提示词)在整个流程里被反复用到,那么对这个组采一次样,它的影响会同时波及好几个阶段的计算。论文没有把这些影响拆开单独算,而是先把一次采样在所有阶段产生的效果加总起来,再去衡量这个"总效果"在不同采样之间的波动有多大。这个波动的标准差,就是论文定义的"尾部影响"规模。

这里有一个特别容易被忽略但其实很关键的细节:论文强调要保留"同一次观测在不同阶段之间的协方差"。换句话说,如果你犯了想当然的简化,把一次观测在阶段1和阶段2的影响当成两个独立的随机变量分别算方差再相加,你会算错。论文举了个具体例子:在一个两步模型里,把协方差删掉之后计算出的方差是真实值的一半。这就像你在算一场足球比赛里两脚进球对总比分的贡献,如果忽略了"这两脚球其实是同一个球员在同一次反击里踢的,他要是状态好这两脚都进,状态差可能两脚都不进",这种相关性,你算出来的风险评估就会失真。

算出了每个查询组的尾部影响规模之后,第三步就简单了:用经典的奈曼分配(Neyman Allocation)规则,把采样预算按"影响规模"成比例地分给各个查询组。

奈曼分配:一种经典统计学里的最优采样分配规则,简单说就是,一个模块的不确定性越大、影响越大,就该给它分配更多的采样次数,分配比例正好等于影响规模的占比。

论文证明了,这套分配方式对应的误差方差,正是这个采样设计下理论上能达到的最优下界,这叫"有效性"(efficiency)。换句话说,不存在另一种聪明的统计估计方法,能在同样的采样预算下做得更好。

试想一下,一个工厂质检员要检查流水线上的一批零件,手里只有有限的检测设备使用时间。如果他把时间平均分给每一道工序,看起来很公平,但有些工序出问题的概率本来就极低,而且即便出问题也不影响成品质量。真正该重点盯防的,是那道"一旦出错就会导致整批报废"的关键工序。平均分配时间,看似公平,实则是在浪费本该集中火力的那部分预算,最后真正该被发现的致命缺陷,反而因为抽检次数不够而被漏掉。

从理论到实践:一个会"自学"的采样器

理论上知道该怎么分配是一回事,但现实中你并不知道每个查询组的真实概率分布,更不知道它的尾部影响规模到底是多少。这些都得从数据里学出来。

这就是TIS算法真正要解决的工程问题。TIS的做法分两步走。

第一步,先花一小部分预算做"试点"(pilot):对每个查询组均匀地采集少量样本,用这些样本拟合出一个初步的概率模型,再用这个初步模型去估算每个查询组的尾部影响规模。

第二步,根据试点估出来的影响规模,把剩下的预算按比例分配给各个查询组,去做"正式"的采样,最终的CVaR估计只用正式采样的数据,试点数据用完就扔。

论文证明了一个很强的理论结果:只要试点规模和预算随时间增长的方式满足一定条件(比如试点大小是总预算的2/3次方量级),TIS最终能达到和"上帝视角"(完全知道真实概率的oracle)一样好的渐近误差,即便把试点的开销也算进总预算里。

但这里有个隐患,论文也诚实地指出来了:试点毕竟是小样本,万一试点运气不好,没有抽到那个决定尾部风险的罕见结果呢?论文给了一个具体例子:十分之九的概率事件,如果只抽10个样本,有大约35%的概率一次都没抽到。在这种情况下,TIS会严重低估这个组的重要性,给它分配的后续预算也会严重不足,而这个被忽视的组,恰恰可能就是尾部风险真正的来源。

这就像一个新来的保险精算师,只看了这个月的理赔记录,就匆匆下结论说"这类业务风险很低,不用多调查"。但如果这个月恰好没有出现那种小概率的巨额理赔事件呢?如果精算公司完全信任这份试点报告,把后续的风险审查资源都撤走了,等真正的尾部事件发生时,才发现自己完全没准备。

为了防住这个隐患,论文设计了一个"锚定"(anchored)版本的TIS。

锚定TIS:把基于尾部影响学出来的采样比例,和基于"访问频率"(occupancy,就是试点模型估出来的每个状态被访问的概率)学出来的采样比例,各取一半混合起来使用。

这个设计背后的逻辑很朴素:访问频率这个信号不需要精确知道尾部在哪里,只要知道"这个状态经常被经过"就够了,所以它更稳健、更不容易被小样本的运气带偏。论文证明,这种混合设计的渐近误差,最多是纯理论最优值的两倍,这是为了防止"试点运气不好"而付出的保险费。相当于你不完全信任精算师的小样本报告,但也不完全否定它,而是把它和一份更保守、更基于历史频率的报告各取一半,用这种混合策略去分配下一阶段的审查资源。即便精算师的报告判断失误,你也不会把全部资源都押错方向。

什么时候,尾部信号其实等于均值信号

论文还有一个挺有意思的理论发现,告诉我们尾部专门的分配方法并不是任何时候都值得用。

如果你的系统满足两个条件:一是概率网格里包含了所有可能出现的中间结果(也就是说这个离散化表示是"精确"的,没有近似误差);二是"没拿到满分的概率"本身就低于你关注的尾部比例(比如你关注最差10%,而系统出错的概率只有5%),那么论文证明,这时候CVaR会退化成一个均值的简单线性变换,此时每个模块对CVaR的"尾部影响"正好是它对均值影响的固定倍数(1/α倍)。

直白地说,当失败本身足够罕见、罕见到比你关心的尾部比例还小的时候,最差的那一批结果,其实就是"所有没拿到满分的情况,加上一些刚好凑数的满分情况"。这时候,排序就固定了,CVaR跟着均值走,你根本不需要专门针对尾部设计一套复杂的采样策略,用估计均值的那套简单方法就够了,而且均值信号通常更容易学,因为它不依赖于准确找到那个分位点阈值。

这就像一家医院评估某种罕见病的早期筛查方案。如果这种病的发病率只有0.1%,而医院关心的是"最差1%病例的平均严重程度",那这最差的1%里几乎全是得病的人,外加一点点凑数的轻症。这时候,只要盯住"平均发病率和平均严重程度"这个更容易统计的信号就够了,没必要专门为了"最严重的那批"去设计一套复杂的风险模型。但如果发病率是5%,而你关心的是最差1%,那最差的1%里全是重症患者,这时候均值信号就完全看不出重症患者和轻症患者的区别了,你必须专门针对尾部设计监测方案。

论文给了一个具体的诊断工具:计算试点阶段估出来的"尾部影响分布"和"均值影响分布"之间的总变差距离,如果这个距离足够大(论文的经验阈值是0.21),就该用锚定TIS;如果足够小,用更简单的均值和访问频率混合方案就够了,计算量还更省。这个诊断规则在论文的实验里,对148个测试场景里的141个做出了正确或者打平的选择。

实验验证:从悬崖行走到财报审核

论文在好几个场景里验证了这套方法,从经典的强化学习环境到真实的语言模型工作流。

在CliffWalking(一个经典的悬崖行走强化学习环境,智能体要绕过悬崖走到终点,但地面很滑,走错一步就可能摔下悬崖)里,设定20步的时间跨度、149个状态动作组合,在每个核查询400次的预算下,TIS相比学到的访问频率分配,误差降低了40.9%;相比完整的轨迹采样(也就是老老实实跑完整条路径的传统做法),误差降低了76.3%。

在一个季节性库存管理的模拟场景里(8个时间步、41个有效模块),1200次查询预算下,TIS相对均匀采样的误差比值是0.657,学到的访问频率是0.918,完整轨迹采样则是2.22,几乎是均匀采样误差的两倍还多。

最有意思的是语言模型工作流的实验。论文设计了一个基于MMLU-Pro(一个多任务语言理解基准测试集)的审核流程:模型先给出答案,然后根据自己的置信度,选择"重新考虑""质疑"或者"验证"这三种后续动作之一。这个流程有91个可以直接查询的提示词组合,在跑了6轮调用的深度下,论文发现了一个很说明问题的失败案例:纯粹的TIS,在Qwen3-4B模型上的误差竟然是均匀采样误差的1.38倍,在GLM-4-32B上更是达到1.77倍,比什么都不做还差。

这正是前面说的"试点运气不好"的隐患在真实场景里的体现。而锚定版本的TIS,把这个问题扭转了回来,误差降到均匀采样误差的0.056到0.093,在六个测试模型里的五个都拿到了最低误差。

在FinQA(一个基于真实财报的数值推理数据集)的财务审核场景里,锚定TIS在Phi-4-mini模型上,相比完整轨迹采样,误差降低到了2.4到3.4倍更低(在6轮调用的更长审核流程里)。但在Qwen3-4B模型上,情况却反过来了,完整轨迹采样反而更好。原因也很清楚:Qwen在这个任务上几乎是确定性的,几乎不犯错,这正好落进了前面说的"尾部信号等于均值信号"的退化情形,论文算出来这个场景下的"距离诊断值"接近0,印证了理论预测。

这篇论文把"评估一个策略有多安全"这件事,从"砸钱跑更多次模拟"变成了"想清楚该把钱花在哪里"。它给出的尾部影响分数,本质上回答了一个很根本的问题:这个不确定的环节,到底会不会真的传导到我最关心的那个风险指标上。这个问题看似简单,但论文告诉我们,光靠直觉(访问频率高就重要、波动大就重要)很容易答错,答错的代价,在CliffWalking这种小例子里是误差翻倍,在真实的金融审核或者自动驾驶评估里,可能就是真正该被发现的风险被完全漏掉。

写在后面

读这篇论文的过程中,最触动我的不是那套数学推导本身,而是论文反复强调的一件事:平均意义上的"重要"和尾部意义上的"重要",是两件完全不同的事情,而我们在日常判断中,几乎总是默认它们是一件事。

这让我想到一个更普遍的现象。我们评估很多系统的时候,习惯性地用"访问频率"或者"常见程度"去代替"重要性":一个客服问题被问得越多,就觉得越该优化;一段代码被调用得越频繁,就觉得越该重点测试。但这篇论文用一个干净的数学构造告诉我们:频率和重要性可以是完全独立的两个维度,你需要一个真正追踪"这个环节的不确定性会不会传导到我关心的结果"的指标,而不能偷懒拿频率去凑数。

另一个值得单独拿出来说的细节是,论文对"试点失效"这件事的态度非常坦诚。很多方法论文在提出一个新方法之后,会倾向于只展示它成功的场景。但这篇论文把纯TIS在深层语言模型工作流里失败的数据老老实实摆出来了,误差比什么都不做还高77%,然后才引入锚定机制去弥补这个漏洞。这种"先暴露问题,再给出补丁,并且诚实地说补丁只能保证不超过两倍的理论代价"的叙述方式,比一味宣传方法多么好,更让人觉得这套工具是可信的。

还有一个问题,论文自己也没有完全回答:锚定TIS用的是"一半尾部影响、一半访问频率"的固定混合比例。但这个"一半一半"是不是在所有场景下都是最优的权重?论文给出的理论保证是"最多比最优方案差两倍",这个保证对应的权重选择,恰好就是对半分。如果某个场景下访问频率特别不靠谱,是不是应该把权重更多地放在尾部影响那一边?这个权重该怎么随着场景自适应地调整,论文没有展开,留给了后续的研究。

下次当你评估一个系统到底安不安全的时候,或许可以先问自己一句:我现在盯着的这些高频出现的环节,真的是决定最坏情况的那些环节吗?还是说,真正的风险,正藏在某个很少被访问、但一旦被访问就后果严重的角落里,安静地等着被下一次预算分配忽略掉?

Q&A

Q1:Tail-Influence Sampling是什么?

A:Tail-Influence Sampling(TIS)是论文提出的一种采样预算分配方法,通过试点模型估算每个可查询模块对CVaR尾部风险的影响规模,再按影响规模比例分配后续采样次数,从而在固定预算下更准确地估计策略的尾部风险。

Q2:为什么访问频率高的模块不一定该多采样?

A:因为访问频率只反映一个模块被经过的次数,不反映它的结果是否会落入关注的最差那批情况。论文用构造例子证明,两个访问频率和奖励方差完全相同的模块,一个对尾部风险有决定性影响,另一个完全没有影响,按频率分配预算会漏掉真正关键的模块。

Q3:锚定TIS解决了什么问题?

A:纯TIS依赖小规模试点估算影响规模,如果试点没抽到罕见但关键的结果,会严重低估某个模块的重要性,导致后续采样不足。锚定TIS把尾部影响分配和访问频率分配各取一半混合,渐近误差最多是理论最优值的两倍,用来防止试点判断失误带来的严重后果。

【数据支持来自天眼查App】

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其内容真实性、完整性不作任何保证或承诺。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。