随机模型输出如何比较?

发布时间:2026/10/10 1:43:25
随机模型输出如何比较?
第196题随机模型输出如何比较1. 核心结论随机模型不能通过单次运行结果判断优劣。合理的比较方式是固定测试条件对同一批样本重复运行多个 trial得到性能分布随后利用配对比较和置信区间判断两个模型之间的差异是否稳定存在。假设有两个模型AAA和BBB测试集包含NNN个任务每个任务独立重复运行RRR次。定义sm,i,r s_{m,i,r}sm,i,r​表示模型mmm在第iii个任务、第rrr次运行中的得分。最终比较的对象应包括平均性能随机波动模型间性能差值差值的不确定性任务级 Win / Tie / LossAgent 场景中的成功率、轨迹、违规、恢复能力、延迟和成本。2. 为什么不能只运行一次假设模型AAA和模型BBB在同一个任务上分别生成第一次A正确 B错误如果只运行这一次很容易得出A B第二次可能变成A错误 B正确随机生成模型的输出受到采样、模型服务和执行环境等因素影响。因此单次观测sAsB s_A s_BsA​sB​不能直接推出E[sA]E[sB] E[s_A] E[s_B]E[sA​]E[sB​]真正需要估计的是模型在目标任务分布上的期望性能及其不确定性。3. 第一层先固定实验条件比较随机模型之前需要尽量控制除模型本身之外的变量。两个模型应使用完全相同的测试集PromptSystem Prompt上下文工具集合工具权限检索数据最大 Token 数Stop Condition输出格式评测器超时设置成本预算。如果比较模型版本还应记录Model IDModel SnapshotTemperatureTop-pSeed如果接口支持推理参数Prompt VersionTool VersionDataset Version。可以把一次实验配置写成C(D,P,M,T,E,B) C(D,P,M,T,E,B)C(D,P,M,T,E,B)其中DDDDatasetPPPPromptMMMModelTTTToolsEEEEnvironmentBBBBudget。模型比较时只修改真正希望研究的变量。4. Agent 场景还需要固定工具和环境如果评测的是 Agent随机性可能来自两个位置Model Randomness和Environment Randomness例如一个 Agent 调用搜索 APIAgent → Search API → Web → Result今天与明天调用搜索 API结果可能已经不同。此时即使模型完全相同Agent 的最终结果也可能变化。因此离线回归测试通常应该固定工具 Mock测试 Sandbox文件版本数据库 SnapshotAPI Response网络条件权限Golden Artifacts。形成固定任务 固定环境 固定工具输出 随机模型这样才能主要测量模型随机性。真实环境鲁棒性可以作为另一组实验单独测试。5. 第二层每个任务重复运行对于测试集中的每一个任务xi x_ixi​让模型分别运行RRR次yi,1,yi,2,…,yi,R y_{i,1},y_{i,2},\ldots,y_{i,R}yi,1​,yi,2​,…,yi,R​例如Task 1 A1 A2 A3 ... AR B1 B2 B3 ... BR Task 2 A1 A2 A3 ... AR B1 B2 B3 ... BR ... Task NRRR没有统一固定值。可以先做 pilot experiment根据输出波动大小和希望达到的置信区间精度决定重复次数。如果输出非常稳定可以减少运行次数。如果 Agent 或生成任务随机性很大就需要增加重复次数。6. 第三层计算每个任务的平均性能模型mmm在任务iii上的平均得分定义为$$\bar{s}_{m,i}\frac{1}{R}\sum_{r1}^{R}s_{m,i,r}$$整个测试集上的平均性能$$\bar{s}_m\frac{1}{N}\sum_{i1}^{N}\bar{s}_{m,i}$$于是可以得到Model A: mean 0.82 Model B: mean 0.79但这里只说明Δ0.03 \Delta0.03Δ0.03还不能判断这3%3\%3%的差异是否稳定。7. 第四层必须报告随机波动除了 Mean还应该报告Standard DeviationStandard ErrorConfidence Interval分位数。例如Model A: 0.82 ± 0.03 Model B: 0.79 ± 0.08此时可以看到模型BBB的平均值只低0.030.030.03但运行波动明显更大。对于生产系统这种稳定性差异本身可能具有实际价值。因此随机模型评估应该同时报告PerformanceUncertainty Performance UncertaintyPerformanceUncertainty8. 第五层使用配对比较如果AAA和BBB都在相同任务上运行应该利用这种配对关系。对于第iii个任务定义$$\Delta_i\bar{s}_{A,i}\bar{s}_{B,i}$$然后计算$$\bar{\Delta}\frac{1}{N}\sum_{i1}^{N}\Delta_i$$这样比较的是同一个任务上A 相比 B 到底改善了多少。配对比较能够减少不同测试任务难度造成的干扰。例如TaskABΔ\DeltaΔ10.90.70.220.60.6030.80.9-0.141.00.80.2最终判断来自{Δ1,Δ2,…,ΔN} \{\Delta_1,\Delta_2,\ldots,\Delta_N\}{Δ1​,Δ2​,…,ΔN​}这一差值分布。9. 第六层给差值计算置信区间推荐直接报告$$\DeltaMetric(A)-Metric(B)$$以及其置信区间。例如ΔF1 3.2% 95% CI [1.1%, 5.0%]这说明在当前评测设计下模型 A 的优势具有较好的稳定性。如果结果是ΔF1 1.0% 95% CI [-2.0%, 4.1%]当前实验无法稳定区分两个模型。这里更合理的结论是现有证据不足以确认 A 优于 B。Bootstrap 是一种常见做法。可以反复对测试任务进行有放回采样D(1),D(2),…,D(K) D^{(1)},D^{(2)},\ldots,D^{(K)}D(1),D(2),…,D(K)每次重新计算Δ(k) \Delta^{(k)}Δ(k)最后利用{Δ(1),…,Δ(K)} \{\Delta^{(1)},\ldots,\Delta^{(K)}\}{Δ(1),…,Δ(K)}构造置信区间。10. 第七层二值任务直接比较成功概率对于 Agent 任务最终结果经常是Success Failure此时每个任务可以估计成功概率$$\hat p_{m,i}\frac{\sum_{r1}^{R}\mathbf{1}(success_{m,i,r})}{R}$$例如Task 17 Model A: 10次运行 8次成功 Success Rate 80% Model B: 10次运行 5次成功 Success Rate 50%整个测试集再计算$$SuccessRate_m\frac{\text{Successful Runs}}{\text{All Runs}}$$同时报告置信区间。11. 第八层开放式生成可以使用 Win / Tie / Loss对于没有唯一标准答案的生成任务例如问答总结代码 ReviewAgent 分析安全报告生成可以对同一个输入产生Output A Output B然后做 Pairwise EvaluationA Win Tie B Win最终报告P(AB) P(AB)P(AB)P(AB) P(AB)P(AB)P(AB) P(AB)P(AB)例如A Win: 57% Tie: 24% B Win: 19%这通常比简单给两个独立平均分更容易解释。12. 如果使用 LLM-as-a-Judge需要额外控制 Judge 偏差LLM Judge 本身也具有随机性和系统性偏差。一个重要问题是Position Bias。例如第一次给 JudgeAnswer A Answer B第二次交换位置Answer B Answer AJudge 的判断可能发生变化。因此 Pairwise Judge 最好至少执行Round 1: A vs B Round 2: B vs A并检查Position Consistency如果交换答案顺序以后判断发生大量变化说明 Judge 本身不稳定。同时应固定 Rubric隐藏模型身份随机化答案顺序记录 Judge Version对困难样本进行人工复核用人工标注集校准 Judge。13. Agent 不能只比较最终答案Agent 的两次运行可能最终都成功但过程风险完全不同。例如Agent A: 3次工具调用 无权限违规 一次成功 Agent B: 17次工具调用 2次错误调用 1次越权尝试 最终也成功只比较Task Success 1会认为两者完全相同。因此 Agent 离线回归应该至少同时看13.1 任务结果Task Success RateAnswer CorrectnessGoal Completion。13.2 执行轨迹Tool SelectionTool Argument AccuracyStep Count无效循环重复调用。13.3 安全与策略Policy ViolationUnauthorized Tool CallPrompt Injection Success RateSensitive Data Exposure。13.4 故障恢复人为注入TimeoutTool ErrorConnection ResetPermission DeniedDirty OutputDuplicate Callback。然后统计$$RecoveryRate\frac{\text{Recovered Tasks}}{\text{Injected Failure Tasks}}$$13.5 系统成本还需要报告TokenLatencyTool CallsAPI CostP50 / P95 / P99 latency。最终比较QualityStabilitySafetyRecoveryCost Quality Stability Safety Recovery CostQualityStabilitySafetyRecoveryCost14. 模型升级时怎样做离线回归假设生产环境当前使用Model A准备升级Model B可以建立 Golden Test SetD{x1,x2,…,xN} D\{x_1,x_2,\ldots,x_N\}D{x1​,x2​,…,xN​}对两个版本分别重复运行Model A × R Model B × R然后计算Task Success Answer Quality Policy Violation Tool Accuracy Recovery Rate Latency Token Cost最后形成类似MetricModel AModel BDifference95% CISuccess Rate81%86%5%[2%, 8%]Tool Error4.1%2.8%-1.3%[…]Policy Violation0.8%0.7%-0.1%[…]P95 Latency8.2s9.7s1.5s[…]Cost / Task$0.12$0.15$0.03[…]这样可以明确看到质量提高了多少同时付出了多少成本。15. 如何做最终上线判断最终不建议使用B平均分比A高所以升级。应该提前定义上线门槛。例如Success Rate: 至少提高2个百分点 Critical Safety Regression: 必须为0 P95 Latency: 增长不能超过10% Cost / Task: 增长不能超过15%再判断ΔQuality \Delta QualityΔQuality是否超过预先定义的 Minimum Practical Effect。因为统计上能够区分和工程上值得升级是两个不同的问题。16. 面试时可以压缩成下面这段随机模型输出不能用单次运行比较。我会首先固定测试集、Prompt、工具、环境和预算然后让两个模型在同一批任务上分别重复运行多次。对每个任务计算成功率或平均得分再做配对比较$$\Delta_iScore_{A,i}Score_{B,i}$$最终报告平均差值、标准差和 Bootstrap 置信区间而不会只报告两个模型的平均分。如果是开放式生成我会用固定 Rubric 做 Win/Tie/Loss 的 Pairwise Evaluation如果 Judge 使用 LLM还会交换 A/B 位置检查 Position Bias并用人工标注样本校准 Judge。如果评测的是 Agent我还会固定工具 Mock 和 Sandbox把模型随机性与环境随机性分开。除了最终成功率还同时比较工具选择、策略违规、故障恢复、Token、延迟和成本。最终上线条件提前定义例如要求任务成功率至少提高一定幅度同时安全指标不能回退、延迟和成本不能超过预算。这样才能判断新模型的提升是否稳定并且具有实际工程价值。17. 来源NIST,Confidence Interval置信区间用于描述重复采样条件下参数估计的不确定性。NIST/SEMATECH Engineering Statistics Handbook,What are confidence intervals?。Ian Soboroff,Computing Confidence Intervals for Common IR Measures, EVIA 2014讨论标准和 Bootstrap 置信区间在评测指标中的应用。Yves Bestgen,Please, Don’t Forget the Difference and the Confidence Interval when Seeking for the State-of-the-Art Status, LREC 2022建议在模型比较中直接报告系统差值及 Bootstrap 置信区间。Peyrard et al.,Better than Average: Paired Evaluation of NLP Systems, ACL 2021说明同一测试实例上的模型比较应利用配对信息。Dror et al.,The Hitchhiker’s Guide to Testing Statistical Significance in Natural Language Processing, ACL 2018系统讨论模型比较中的统计检验选择。Shi et al.,Judging the Judges: A Systematic Study of Position Bias in LLM-as-a-Judge, IJCNLP-AACL 2025研究 LLM Judge 在 Pairwise Evaluation 中的 Position Bias。Wang et al.,Large Language Models are not Fair Evaluators, ACL 2024实证展示改变候选答案位置可能改变 LLM Judge 的比较结果。OpenAI API Documentation模型输出具有可变性固定模型版本和持续执行 Evals 有助于控制版本变化带来的回归风险。