CodexQA

行业与实践研究与基准测试

Seq@K:附录

CodexQA 团队阅读约 27 分钟

Seq@K 全文翻译的附录:基准与设定、模型选择检验、成本前沿、修订标注、轨迹清单,以及反馈回路的原始分数表。

本文目录

本文是《Seq@K:在序列反馈下评测语言模型》的附录 A 至附录 F,按原文顺序全文译出。正文与参考文献见同题主记录。

附录 A 基准与设定细节

表 7 列出基准,以及一次尝试何时算成功。本附录其余部分说明反馈、历史和评分如何设置(附录 A.1),给出编码中使用的准确提示和反馈(附录 A.2),并列出我们排除的编码任务(附录 A.3)。

表 7:基准与成功标准。每个基准的任务集和成功标准。

基准被评测的任务集成功标准
AdvancedIF ( He et al., 2025 )Prepared instruction-following tasksAll required instruction verdicts pass
CLBench DKR / RSA ( Dou et al., 2026 )Domain Knowledge Reasoning / Rule System ApplicationFull-task rubric success
HealthBench ( Arora et al., 2025 )Hard split, context-seeking and uncertainty themesNormalized score at least 0.75 , plus negative-criterion and safety gates
ResearchRubrics ( Sharma et al., 2025 )Public processed research tasksAll mandatory criteria pass, with no penalties
MBPP Pro / HumanEval Pro ( Yu et al., 2025 )45 / 40 tasks after excluding defective tasks (Appendix A.3 )Executable test success

表中单元格的专名和计数按原表保留。成功标准的含义是:指令遵循类基准要求所要求的指令裁决通过;量规类基准以量规条目被满足为成功;编码基准以隐藏测试通过为成功。若某格措辞更具体,以该格原文为准,不另改数字。

A.1 反馈、历史与评分

##### 反馈。

二元反馈只告诉行动者它的尝试失败了。AdvancedIF 上的原始验证器反馈给出每个量规条目的裁决。知道量规的批评者在写反馈时看到评分量规,不见量规的批评者则看不到。在编码中,反馈要么说代码失败了(二元),要么展示失败的测试(测试细节),准确文本见附录 A.2。原始验证器反馈和测试细节向行动者展示被评分内容的一部分,因此这些模式下的 Seq@K 度量的是带有该信息的成功。

##### 历史。

默认情况下,每次序列尝试的提示包含任务、关于尝试序号的说明,以及每一次更早的尝试及其反馈。在摘要历史的运行中,摘要替换更早的尝试(附录 F.3)。

##### 温度与重复。

主要比较使用 $T=0.7$,我们不调节温度。编码运行重复三次,标记为种子 1 到 3。历史比较中的某些编码运行使用 $T=0$。

##### 评分。

除非另有说明,AdvancedIF 的尝试由 Sonnet 4.6 评分。CLBench 的尝试由 GPT-5.4 评分,当 GPT-5.4 拒绝评分时以 GPT-5.2 为后备。

译注:评分模型不是被评测的行动者。AdvancedIF 默认评分员是 Sonnet 4.6。CLBench 默认评分员是 GPT-5.4,拒绝评分时改用 GPT-5.2。

##### 置信区间。

我们通过对任务做有放回重抽样来计算 95% 区间。每个被重抽的任务保留其上每个行动者和每种协议的结果,因此比较的两边始终在相同任务上计算。编码分数在重抽样之前对三次重复取平均。模型选择分析在每个校准组和评测组内重抽样任务(附录 B.1)。

A.2 编码提示与反馈

两个编码基准都使用下面的提示。花括号中的字段替换为该基准的问题陈述。提示不包含参考解或测试。在 Pass@K 下,每次尝试都收到这份不变的提示,并且全部 $K$ 次尝试都会生成。在 Seq@K 下,运行在第一次通过的尝试处停止。

You are solving a Python code generation task. There are two related functions: 1. Base function: solve the simpler base problem. 2. Main function: solve the harder problem by using or building on the base function. Write complete Python code that defines all required functions. Do not import unnecessary packages. Do not include explanations outside the code. Base problem: {base_problem} Main problem: {main_problem} Return only the Python code.

提示的中文对照:你在解决一个 Python 代码生成任务。有两个相关函数。一,基函数:解决更简单的基础问题。二,主函数:通过使用或建立在基函数之上来解决更难的问题。写出定义全部所需函数的完整 Python 代码。不要导入不必要的包。不要在代码之外加入解释。基础问题和主问题分别填入对应字段。只返回 Python 代码。

在 Seq@K 下,任务之后是关于尝试序号的说明,然后是每一次更早的尝试及其反馈,用空行分开。第一次尝试的英文说明是:This is attempt 1 of {K}. If this attempt does not pass, you will receive feedback and can revise it on the remaining attempts. 中文:这是 K 次中的第 1 次。若这次不通过,你将收到反馈,并可以在剩余尝试中修订。后来的尝试则是:This is attempt {t} of {K}. Review your previous attempt(s) and the feedback below, then provide an improved answer. 中文:这是 K 次中的第 t 次。回顾你先前的尝试和下面的反馈,然后给出改进后的答案。每一个更早的尝试 i 按顺序放进 PreviousAttempt 与 Feedback 标签。整个提示作为一条用户消息发送。说明的一个变体省去尝试次数,其余保留。

二元反馈的英文是:Your previous solution failed the hidden tests. Please revise the code. 中文:你先前的解答没有通过隐藏测试。请修订代码。测试细节反馈以 Your previous solution failed. 和 Failed test details: 开头。中文:你先前的解答失败了;失败测试的细节。然后最多展示两个失败测试,每个包含函数调用、期望输出和实际输出,若这些缺失则给出错误信息。每个字段在 300 个字符处截断。反馈以 Use this feedback to fix the general logic. Do not hard-code these cases. 以及 Return only the revised Python code. 结束。中文:用这一反馈修正总体逻辑。不要把这些用例写死。只返回修订后的 Python 代码。若测试没有报告单个失败,反馈就是原始测试输出。某些温度为 0 的运行改用错误摘要反馈,它最多列出三个失败测试,含测试名、错误类型和短摘要,而不含期望输出。

A.3 被排除的编码任务

在 100 个编码任务中的 15 个里,测试调用了一个提示从未命名的函数,因此一次尝试只有猜中名字或从反馈中学到名字才能通过。它们是 10 个 HumanEval Pro 任务(数据集编号 3、5、14、20、21、22、28、46、63、112)和 5 个 MBPP Pro 任务(数据集编号 19、41、47、69、75)。在 HumanEval Pro 任务中,七个给出的基函数签名与测试不符,三个漏掉了主函数的定义。我们通过把测试中调用的函数名与提示中的名字核对来找出这些任务,因此其他种类的缺陷仍可能留下。

编码比较和模型选择分析排除这些任务,剩下 45 个 MBPP Pro 和 40 个 HumanEval Pro 任务。历史比较使用每个基准的全部 50 个任务(附录 F.3)。

附录 B 模型选择的细节

本附录给出第 5.1 节选择检验的细节,以及表 3 中行动者之间差距的细节。

B.1 选择检验

##### 运行。

候选者是 Sonnet 4.6、DeepSeek V3.2、Gemini 3 Flash 和 Qwen3 Coder Flash。每个行动者在 Pass@K 下跑三次,并在带测试细节反馈的 Seq@K 下跑三次,温度为 0.7、K 为 5,任务为 45 个 MBPP Pro 和 40 个 HumanEval Pro。这给出 48 次运行和 2,040 条轨迹。Seq@3 和 Seq@4 从这些 K 为 5 的运行的前三次或前四次尝试中读取,而这些运行的提示说可用的尝试是五次。

##### 选择与损失。

在每一组校准任务上,我们用三次重复的平均成功率给每个行动者打分,并挑选最高者,并列时随机打破。被选行动者由其在评测任务上、三次重复平均的测试细节 Seq@5 来评测。令 C 为校准任务,E 为评测任务,M 为候选行动者,D_5(m,E) 为行动者 m 在 E 上的 Seq@5,m 帽(C) 为在 C 上选出的行动者。选择损失是

$$ L(C,E)=\max_{m\in\mathcal{M}}D_{5}(m,E)-D_{5}(\widehat{m}(C),E). $$

评测任务从不用于挑选。当被选行动者是 E 上最好的时,损失为零;即便在 Seq@5 校准下它也可以为正,因为 C 上最好的行动者不必是 E 上最好的。E 上的最佳分数对每种校准指标都相同,因此更低的损失意味着被选行动者有更高的 Seq@5。表 2 中的收益就是这一差值。

##### 成本。

校准成本是四个行动者、校准任务和三次重复上的行动者 API 费用之和。编码没有裁判或批评者,因此这就是全部模型成本。在两种协议下,一条轨迹最多计费到它的第一次成功或最后一次允许的尝试。成本不包括运行测试。我们报告平均成本,并不对任何一个校准集封顶花费。

##### 校准组与评测组。

我们把 MBPP Pro 分成 22 和 23 个任务的组,把 HumanEval Pro 分成两组各 20 个。我们在一组上校准,在整个另一组上评测,然后交换。在每个方向上,我们抽取 128,000 个校准任务的随机顺序,并使用每个顺序的前 n 个任务,因此每种校准指标看到相同的任务。我们把这个数目从 2,000 增加,直到两套独立抽取在 n 为 10 时对 Seq@3 相对 Pass@5 的收益在 0.1 分以内一致,由此选定该数目。两个方向按评测组大小加权后取平均。

##### 置信区间。

我们通过对任务做 2,000 次有放回重抽样来计算 95% 区间。每次重抽在每个组内抽取任务,并把一个任务上每个行动者、每种协议和每次重复的结果保持在一起。在每次重抽上,我们在每个方向上对校准任务的 200 个随机顺序重新做选择。改用 400 个顺序,区间端点最多改变 0.3 分。在 n 为 20 时,HumanEval Pro 在其组的全部 20 个任务上校准,因此任务顺序无关,只有重抽样增加变异。

##### Seq@3 与 Seq@4。

表 8 给出 n 为 10 时相对 Pass@5 的收益和成本。我们在跑分析之前选定 Seq@3,并在看到 Seq@3 的结果之后加入 Seq@4。四个收益区间都不含零。Seq@3 和 Seq@4 在 MBPP Pro 上的成本是 Pass@5 的 0.94 倍和 1.06 倍,在 HumanEval Pro 上是 0.79 倍和 0.92 倍。四个成本比区间中有三个包含一;在 MBPP Pro 上,Seq@3 在 28% 的抽出校准集上比 Pass@5 更贵。

表 8:在 10 个校准任务上,Seq@3 和 Seq@4 相对 Pass@5。成本比是 Seq@K 校准的平均校准成本除以 Pass@5 校准的平均校准成本。收益是用 Seq@K 校准时被选行动者的 Seq@5 比用 Pass@5 校准高出多少,单位为百分点。方括号是 95% 自助区间。

基准K成本比 [95% 区间]收益(pp)[95% 区间]
MBPP Pro30.94[0.83,1.08]+8.3[+1.8,+19.9]
MBPP Pro41.06[0.90,1.26]+8.1[+1.5,+19.7]
HumanEval Pro30.79[0.68,0.91]+26.0[+6.8,+44.7]
HumanEval Pro40.92[0.76,1.12]+25.9[+7.0,+44.1]

译注:四行都应读成「在十个校准任务上,用更短的序列校准去选模型」。MBPP Pro 上 Seq@3 的成本比是 0.94,收益加 8.3 个百分点;Seq@4 的成本比是 1.06,收益加 8.1 个百分点。HumanEval Pro 上 Seq@3 的成本比是 0.79,收益加 26.0 个百分点;Seq@4 的成本比是 0.92,收益加 25.9 个百分点。四个收益区间都不含零,说明优势不是抽样噪声。

##### 范围。

在把任务分成两组的全部另外二十种方式下,Seq@3 相对 Pass@5 的收益在两个基准上都保持为正。这些任务在论文的其他地方也被使用。Seq@3 和 Seq@4 来自被告知有五次尝试可用的运行,因此被告知只有三次或四次尝试的运行可能表现不同。我们只与 Pass@5 比较,而不是与把同样预算花在独立样本上的每一种方式比较。

B.2 行动者之间的差距

表 3 对每种协议报告两种差距:最好与最差行动者的差,以及全部行动者配对上的平均绝对差。表 9 为每种差距从 Pass@5 到 Seq@5 的变化加上 95% 区间。每一次自助抽取重抽任务,把一个任务的全部行动者和两种协议保持在一起,并重新计算两种差距。最好与最差的差距用 2,000 次抽取,全部配对差距用 10,000 次。编码分数在重抽样之前对三次重复取平均,AdvancedIF 每个行动者有一次运行。最好与最差的差距取决于哪两个行动者位于两端,因此当行动者接近时它移动得更多。全部配对差距对此不那么敏感。

表 9:行动者之间的差距从 Pass@5 到 Seq@5 的变化,带 95% 区间。数值的单位是分,与表 3 相同。

基准最好–最差差距的变化全部配对差距的变化
AdvancedIF-26.7\ [-43.3,-3.3]-11.7\ [-21.0,-1.6]
MBPP Pro+12.6\ [-7.4,+29.6]+8.6\ [-2.8,+18.5]
HumanEval Pro+40.8\ [+12.5,+52.5]+25.4\ [+10.0,+31.9]

附录 C 成本前沿与分数相关

C.1 每种协议的成本

图 3 比较 Pass@K 与 Seq@K 在 K 从 1 到 5 上的成本与成功,而不运行新的尝试。对每个行动者和任务,我们取两种协议已记录的 K 为 5 的运行,按原来的顺序走过它们的尝试,并在第一次通过的尝试或第 K 次尝试之后停止。一个任务的成本是直到该点的尝试的 API 费用。在 Pass@K 下行动者从未看到反馈,裁决只用来决定何时停止。图中每个点是一个行动者在一个 K 上的每任务平均成本和成功率。

在 AdvancedIF 上,成本包括行动者和裁判。在 DKR 上,成本只包括行动者。

一个面板中的全部行动者在相同任务上打分:七个行动者的 30 个 AdvancedIF 任务,以及六个行动者的 28 个 DKR 任务。在 DKR 上,Opus 4.7 和 GPT-5.2 从它们自己作为批评者得到指令式反馈,其他行动者从 GPT-5.2 得到苏格拉底式反馈。表 10 给出这 28 个任务上的 DKR 分数。其他 DKR 表每个行动者使用 30 个任务,因此分数略有不同。若一个点所在协议没有另一个点以更低成本达到相同或更高的成功率,它就在该协议的前沿上。成本轴是对数的。

表 10:图 3 的 28 个任务上的 DKR 分数。六个行动者,温度为 0.7,种子 42。序列批评者在行动者之间不同(附录 C.1)。表 11 使用 30 个任务,并把 DeepSeek V4 Pro 在四个种子上平均,因此它的分数不同。

行动者Pass@5Seq@5
Opus 4.70.0710.500
DeepSeek V4 Pro0.1430.429
Gemini 3 Flash0.0360.250
GPT-5.20.1430.286
Qwen3.6 27B0.0000.357
Qwen3.6 Max0.0710.393

C.2 协议之间的相关

图 4 使用 26 个模型与基准的配对:AdvancedIF 七个,CLBench DKR 七个,HealthBench 六个,CLBench RSA 三个,ResearchRubrics 三个。不包括编码。在一个配对之内,两种协议使用相同的行动者、温度 0.7、K 为 5、评分员和任务。当一个配对有多次序列运行时,我们使用完整历史下 Seq@5 最高的非二元反馈设定。因为这一选择是在相同任务上做出的,Seq@5 的值是乐观的。同一设定的重复运行被汇总。表 11 给出每个配对的分数。

在这 26 个配对上,Pass@5 与 Seq@5 的 Spearman 相关为加 0.68,Pearson 相关为加 0.81。对增益而言,Spearman 相关为减 0.08,其 95% 区间是减 0.47 到加 0.31;Pearson 相关为减 0.04,区间是减 0.38 到加 0.26。区间来自对这 26 个配对的 2,000 次自助抽取。它把配对当作独立的,尽管行动者和基准会重复。有 11 个配对在 Pass@5 下没有增益。

译注:这二十六对把两种协议放在同一行动者、同一温度、同一评分员和同一批任务上比较。温度是 0.7,预算是五次尝试。编码基准不在这张相关表里。若同一对有多种序列反馈,表中保留完整历史下 Seq@5 最高的非二元设定,因此序列分数偏乐观。等级相关是正的 0.68,线性相关是正的 0.81,说明谁在独立抽样下更高,往往在序列反馈下也更高。但两次增益几乎不相关:等级相关是负的 0.08,线性相关是负的 0.04,区间都跨过零。也就是说,多抽几次独立样本带来的提升,并不能预测收到反馈之后还能再提升多少。表中各行的通过率按原文保留,基准依次为 AdvancedIF、CLBench 的 DKR、HealthBench、CLBench 的 RSA 和 ResearchRubrics。 读表时先看任务数 N:多数行是三十个任务,DKR 里 GPT-5.5 Pro 是二十个,Qwen3.6 27B 是二十九个;RSA 每行十个任务,HealthBench 与 ResearchRubrics 每行三十个任务。Seq@5 一列在 AdvancedIF 上接近满分,在 DKR 上仍停在三成到五成,这就是两种协议相关、但增益不相关的来源:高分模型在两条协议上都不低,低分模型靠反馈爬升的幅度却各不相同。

表 11:图 4 中 26 个模型–基准配对的分数。N 是共享任务数。全部使用温度 0.7。Seq@K 对每个配对使用 Seq@5 最高的非二元反馈设定。数值按原表保留。

基准行动者NPass@1Pass@5Seq@1Seq@5
AdvancedIFOpus 4.7300.4330.6330.4671.000
Sonnet 4.6300.3670.5000.4001.000
DeepSeek V4 Pro300.4330.6670.5670.967
Gemini 3 Flash300.4830.7830.5330.967
GPT-5.2300.4000.5500.4000.933
Qwen3.6 27B300.6330.8000.6671.000
Qwen3.6 Max300.6000.8330.6671.000
DKROpus 4.7300.0000.0670.0000.500
DeepSeek V4 Pro300.0170.1000.0670.400
Gemini 3 Flash300.0000.0330.0330.267
GPT-5.2300.0000.1330.0330.300
GPT-5.5 Pro200.0000.0500.0000.400
Qwen3.6 27B290.0000.0000.0000.345
Qwen3.6 Max300.0000.0670.0330.367
RSAOpus 4.7100.0000.0000.0000.700
Gemini 3 Flash100.0000.0000.0000.300
GPT-5.2100.0000.0000.0000.600
HealthBenchOpus 4.7300.0330.0330.0220.633
DeepSeek V4 Pro300.0670.0670.0110.632
Gemini 3 Flash300.0330.0330.0330.600
GPT-5.2300.0500.0750.0330.800
Qwen3 Max600.0000.0000.0000.500
Qwen3.6 Max300.0000.0330.0110.611
ResearchRubricsOpus 4.7300.0330.0330.0330.267
Gemini 3 Flash300.0000.0000.0000.067
GPT-5.2300.0000.0000.0000.100

附录 D 修订动态的细节

D.1 按尝试的成功

表 12 给出表 4 那些 DKR 运行上、K 从 1 到 5 的 Seq@K,每个行动者 30 个任务。Opus 4.7 和 GPT-5.2 从它们自己作为批评者得到指令式反馈。DeepSeek V4 Pro、Gemini 3 Flash 和 Qwen3.6 Max 从 GPT-5.2 得到苏格拉底式反馈。由于反馈在行动者之间不同,这些行并不是在相同反馈下比较行动者。

表 12:DKR 上按尝试的 Seq@K。种子 42,每个行动者 30 个任务。反馈设定在行动者之间不同(表 4)。

行动者Seq@1Seq@2Seq@3Seq@4Seq@5
Opus 4.70.0000.1670.2670.4670.500
DeepSeek V4 Pro0.0670.1670.3330.3670.400
Gemini 3 Flash0.0330.2330.2330.2670.267
GPT-5.20.0330.1000.1330.3000.300
Qwen3.6 Max0.0330.1000.3000.3670.367

行动者何时修订成功,也取决于反馈设定。在另外两次批评者、评分员和尝试序号说明都不同的 DKR 运行中,Qwen3.6 Max 的早期收益份额为 0.57 和 0.50,而表 4 中为 0.20。最终成功也会改变。在行动者批评自己、由 GPT-5.4 评分、且提示省去尝试次数的运行中,DeepSeek V4 Pro、Gemini 3 Flash 和 Qwen3.6 27B 的 Seq@5 分别达到 0.333、0.233 和 0.267。因此早期收益份额和末次收益份额描述的是给定反馈设定下的行动者,而不是行动者本身。

译注:表 12 在三十个任务、种子四十二上,把 Seq@K 从一次写到五次。Opus 4.7 从 0 升到 0.500,DeepSeek V4 Pro 从 0.067 升到 0.400,Gemini 3 Flash 停在 0.267,GPT-5.2 升到 0.300,Qwen3.6 Max 升到 0.367。这些行的批评者并不相同,不能当成同一反馈下的模型排名。

D.2 修订的标注

本节给出第 5.2.2 节修订标注的细节:我们标注哪些修订,标注者如何给它们贴标签,以及两个标注者多久一致一次。

##### 设定。

我们复用四个设定中已记录的运行(表 13)。每个设定固定反馈、批评者、评分员、温度 0.7 和历史,因此一个设定内的行动者只在行动者模型和种子上不同。一次修订是从尝试 t,经过其上的反馈,到尝试 t 加 1 的一步。若轨迹的第一次尝试失败,该轨迹被纳入。

##### 任务划分。

任务按随机划分,种子为 20260925,因此一个任务的每次运行和每次尝试都落在同一侧。提示在 14 个被审计的例子(附录 E)和 11 个随机任务上开发,其中 AdvancedIF 四个、DKR 三个、HumanEval Pro 三个、MBPP Pro 一个。两个 AdvancedIF 设定共享 16 个留出任务,得到 102 个不同任务:AdvancedIF 六十个、DKR 二十三个、HumanEval Pro 十一个、MBPP Pro 八个。对编码,我们标注一百个中的二十个随机任务;其中四个有接口缺陷(附录 A.3)。图 5b 排除这四个任务上的 62 次修订,以及反馈中没有有效请求的 131 次修订,剩下 842 次。

译注:划分种子是 20260925。留出任务共一百零二个不同任务,其中 AdvancedIF 六十个、DKR 二十三个、HumanEval Pro 十一个、MBPP Pro 八个。

表 13:修订标注的设定。任务数和修订数只计留出任务。单元格中的模型名、K 和计数按原表保留。

设定反馈;批评者;评分员行动者(运行)任务数修订数
AdvancedIF, o3-miniraw verifier output; none; o3-miniGemini 3 Flash, GPT-5.2 ( K=5 ); Opus 4.7, GPT-5.5 Pro ( K=3 )55153
AdvancedIF, Sonnetraw verifier output; none; Sonnet 4.68 actors, 13 runs (Sonnet \times 5 , Haiku \times 2 )21256
CLBench DKRrubric-aware socratic; GPT-5.2; GPT-5.2DeepSeek V4 Pro, Gemini 3 Flash, Qwen3.6 27B, Qwen3.6 Max23290
Codingtest details; none; testsSonnet 4.6, DeepSeek V3.2, Gemini 3 Flash, Qwen3 Coder Flash; 3 seeds each19336

##### 标注。

对每一次修订,标注者看到任务提示、量规文本、更早的尝试和反馈、尝试 t、其上的反馈、尝试 t 加 1,以及一行差异。行动者、运行和全部裁决被隐藏,一个标注批次中每条轨迹最多含一次修订。标注者列出反馈所请求的每一项改变,并把它标为有效、解释性、不清楚或无效,例如与提示矛盾的测试。然后它记录下一次尝试是否满足每个请求,答案是、部分或否,并以逐字引语作为证据。当当前尝试已经满足某请求且下一次仍然满足时,该请求也算被满足。一次修订是无帮助、针对部分还是针对全部反馈,是在丢掉无效请求之后从这些标签计算出来的。

为开发提示,Claude Opus 和 Claude Sonnet 独立标注了来自开发任务的 68 次修订,即每个设定 16 次随机修订,加上两条示例 AdvancedIF 轨迹。提示在它们不同意的地方被修订,然后在任何留出修订被标注之前、以及在读取第一次尝试之后的任何裁决之前被冻结。

##### 可靠性。

Claude Sonnet 独立标注了留出修订中分层抽出的百分之十五,共 165 次。两个标注者在这一类别上对其中百分之八十一致,卡帕为 0.73;一致率在 DKR 上最低,卡帕为 0.53。第三次盲的 Claude Opus 过程解决了 69 处分歧;使用它的标签并不改变结论。全部 2,029 条非空证据引语都逐字出现在修订后的尝试中。这些是大语言模型标签,不是人工标注,而且行动者中有三个是 Claude 模型。

##### 被破坏的标准。

对于针对了全部反馈却仍然失败的修订计数,一条标准若在尝试 t 通过、在下一次尝试失败,且没有任何被标注的请求提到它,就算被破坏。标注者没有绑定到量规条目的请求被视为未被提及,因此这些计数可能略微高估破坏。图 5b 中的区间是每个设定内对任务做 4,000 次重抽样的 95% 分位。

附录 E 修订轨迹的定性分析

E.1 我们如何选择并阅读例子

我们阅读了来自 AdvancedIF、CLBench DKR、HealthBench 和 HumanEval Pro 的 14 个任务上的 31 条轨迹,共 115 次尝试。我们从研究过程中注意到的情形出发,加入同一任务在其他反馈下的运行,并加入一对编码。第 5.2.2 节展示其中两个例子,本附录再展示两个。表 14 列出我们使用的每一条轨迹。这些例子展示修订的模式,而不是每种模式出现的频率。附录 D.2 在另外 102 个任务上标注修订。

对每条轨迹,我们阅读任务、尝试、反馈和裁决。轨迹在第一次通过的尝试处停止。R 下标 i 是量规自己的条目编号。引语被缩短到相关部分。一条对照运行从它自己的第一次尝试开始,因此它并不展示同一次尝试在不同反馈下的情形。

E.2 不按反馈行动的修订:被测试的函数从未被定义

这个例子展示一个行动者,它的修订不按清楚的反馈行动,包括重新提交同一段代码(图 5a)。两个行动者得到相同的任务和相同的测试细节反馈,只有其中一个修好了代码。该任务是附录 A.3 的缺陷任务之一:测试调用了提示从未命名的函数,因此反馈是得知这个名字的唯一途径。我们这样选择这一对:在 17 个种子为 1 的任务中,两个行动者都在第一次尝试失败,Sonnet 4.6 后来通过,而 Qwen3 Coder Flash 始终没有通过,取其中任务编号最先的一个。

HumanEval Pro,行动者是 Qwen3 Coder Flash 与 Sonnet 4.6。任务要求一个检测账户滚动余额是否为负的函数,以及一个把检查扩展到多个账户的主函数。提示错误地把基函数签名 below_zero 重复给了主函数,而测试调用 any_account_below_zero,提示从未命名它。反馈对两个行动者相同,英文开头是 Failed test details,并给出 test_1 对 any_account_below_zero 的调用,结尾要求用反馈修正总体逻辑。修订方面,Qwen3 Coder Flash 把它的多账户函数命名为 below_zero。第二次和第三次尝试原样重复第一次。第四次注意到命名不匹配,称之为主问题标题里的复制粘贴错误,却仍然保留旧名字;同一回答里更早出现的、没有函数体的标题还造成缩进错误。第五次与第一次相同。为何无帮助:反馈展示了被测试的函数名,但没有任何修订定义它。在解释里认出不匹配,并没有改变所提交的代码。对照是 Sonnet 4.6:它首先把多账户函数命名为 below_zero_main,第二次改名为 any_account_below_zero,保留逻辑,并通过。

例 E.1。测试细节反馈下的 Qwen3 Coder Flash,以同一任务和同一反馈上的 Sonnet 4.6 为对照。

E.3 破坏先前已通过要求的修订:播客审查

这个例子展示一次针对当前反馈的修订,如何破坏一条先前已经通过的要求(图 5b)。这些播客运行使用苏格拉底式反馈,批评者和评分员不同。它们与表 4 中 Opus 4.7 和 GPT-5.2 的指令式运行是分开的。

CLBench DKR,行动者 GPT-5.2。任务是助手在十八条要求下审查一套播客材料的伦理与内容安全。其中包括:确保统计是当前的并有来源,标出对群体的有害概括,标出歧视性和危险的访谈问题,避免去修补有严重伦理问题的内容,防止暴露私人信息,并使用三级状态 No Issue、Needs Revision、High Risk。反馈由 GPT-5.2 批评它自己的审查。第一次尝试之后,它问状态标签是否在整个文稿中与预期的三级方案保持一致,以及是否有语言把一整类人画成一个样子。后来的轮次还问哪些要素风险太高,不适合给出可直接使用的替换台词。修订采用了三级标签,第十六条到第四次尝试通过。第五次修好了第四条,但在评分员期望升级处理的地方提出改写,于是第十一条失败。为何无帮助:每次修订修好一些被指出的要求,同时另一些失败。失败集合从 4、8、11、16 依次变为 8、11、16,再变为 4、16,再变为 4,最后变为 11,这次运行从未通过。对照中,Opus 4.7 的失败集合走向空集,Qwen3.6 Max 与 Qwen3.6 27B 也在第三次通过,DeepSeek V4 Pro 在第一次尝试即为空集。

例 E.2。播客合规:GPT-5.2,以其他行动者的失败要求集合为对照。

GPT-5.2 批评自己,并由 GPT-5.4 评分。失败要求的数目从 4 降到 1,但哪些要求失败一直在变。第十六条从第四次尝试起通过,尽管评分员对标签比更早的尝试更宽松。Opus 4.7 也批评自己,并由 GPT-5.4 评分。它的第二次尝试加入严重程度图例并为每个问题贴标签,从而修好第十六条,剩余失败先移到第八条再移到第九条,然后通过。Qwen3.6 Max 和 Qwen3.6 27B 用 GPT-5.2 作为批评者和评分员,两者都在第三次尝试通过。DeepSeek V4 Pro 在第一次尝试就通过。

E.4 轨迹清单

表 14 列出我们使用的每一条轨迹,包括第一次尝试就成功的,以及只用作对照的运行。除非注明,非编码运行使用种子 42、温度 0.7 和 K 为 5。Opus 4.7 的 SideHustleBot 运行使用 K 为 3,Gemini 3 Flash 在耳鸣任务上的自我评分运行使用温度 0。编码那一对使用种子 1、温度 0.7、完整历史和测试细节反馈。在 AdvancedIF 中,盲批评表示行动者在没有量规的情况下批评自己。在 DKR 播客运行中,Opus 4.7 和 GPT-5.2 批评自己,DeepSeek V4 Pro 和 Qwen 模型从 GPT-5.2 得到反馈。狗的摘要和 SpartanAI 运行也用 GPT-5.2 作为批评者。在 HealthBench 中,自我评分反馈来自行动者,裁判反馈来自评分员。原始反馈和二元反馈不使用批评者。

表 14:我们使用的轨迹。评分员是该运行所设定的那一个。任务索引是运行所属基准内的位置,不是数据集编号。表中案例名、模型名、反馈类型和尝试次数按原表保留。

案例 / 任务索引行动者反馈评分员尝试次数
Hestia / 4Qwen Maxblind critiqueGPT-5.42
Hestia / 4Qwen MaxbinaryGPT-5.45
DJ / 12Geminiblind critiqueo3-mini5
DJ / 12Geminirawo3-mini2
SideHustleBot / 13Qwen MaxrawGPT-5.43
SideHustleBot / 13Geminirawo3-mini4
SideHustleBot / 13Opusrawo3-mini1
SideHustleBot / 13GPT-5.2rawo3-mini5
Channel notes / 7GPT-5.2aware socraticGPT-5.45
SpartanAI / 14DeepSeekaware socraticGPT-5.25
Dog summary / 17DeepSeekaware socraticGPT-5.22
Dog summary / 17DeepSeekblind socraticGPT-5.25
Podcast / 20Opusaware socraticGPT-5.44
Podcast / 20DeepSeekaware socraticGPT-5.21
Podcast / 20GPT-5.2aware socraticGPT-5.45
Podcast / 20Qwen Maxaware socraticGPT-5.23
Podcast / 20Qwen 27Baware socraticGPT-5.23
Knee / 1Geminijudge feedbackGPT-5.42
Cold feet / 16Opusself-judgeGPT-5.42
Cold feet / 16Opusjudge feedbackGPT-5.43
Tinnitus / 22GeminirawGPT-5.45
Tinnitus / 22Geminiself-judgeGPT-5.45
Tinnitus / 22Geminijudge feedbackGPT-5.45
Mole / 25Qwen Maxself-judgeGPT-5.42
Mole / 25Qwen MaxbinaryGPT-5.45
Fainting / 26Opusself-judgeGPT-5.45
Fainting / 26Opusjudge feedbackGPT-5.44
Dosing / 28Opusself-judgeGPT-5.45
Dosing / 28Opusjudge feedbackGPT-5.45
Coding interface / 4Sonnettest detailsTests2
Coding interface / 4Qwen Codertest detailsTests5

译注:表 14 把定性阅读用过的轨迹按案例列全,包括第一次就成功的对照。非编码默认种子四十二、温度 0.7、预算五次。例外是 Opus 4.7 的 SideHustleBot 只用三次,以及 Gemini 3 Flash 在耳鸣任务上的自我评分为温度零。编码对照用种子一,反馈是测试细节。AdvancedIF 的盲批评不看量规。DKR 播客里,Opus 4.7 与 GPT-5.2 自己批评自己,DeepSeek 与 Qwen 接受 GPT-5.2 的反馈。HealthBench 的自我评分来自行动者,裁判反馈来自评分员。原始反馈和二元反馈没有批评者。案例名、模型简称和反馈英文标签按原表保留,以免和轨迹文件对不上。 清单从 Hestia、SideHustleBot 写到编码接口缺陷,HealthBench 的昏厥与给药各有自我评分和裁判反馈两条对照。

附录 F 反馈回路的细节

F.1 DKR 中的标准修复

表 15 按行动者分解表 5 的标准修复。每个行动者使用它在全部四种条件下都有的 30 个任务。对每个任务,我们选择通过标准最多的那次尝试,并列时取最晚的一次。标准修复是第一次尝试失败、但在所选尝试中通过的标准所占份额。回退是第一次尝试通过、但在所选尝试中失败的标准所占份额。汇总比率在相除之前把各行动者的标准计数加总。每种条件有自己的第一次尝试,因此失败标准的数目在条件之间不同。所选尝试以外的回退不被计数。二元反馈比独立抽样少修复 2.1 个百分点的标准,由 10,000 次任务重抽样得到的 95% 区间为负 11.5 到正 5.8(附录 A.1)。

表 15:DKR 上按行动者的标准修复与回退,单位为百分数。每一格是修复除以回退。种子 42,每个行动者 30 个任务。知道量规的批评者是表 4 中的那些,不见量规的批评者给出苏格拉底式反馈。

行动者独立抽样二元反馈未见量规的批评者知道量规的批评者
Opus 4.737.2 / 1.036.9 / 0.726.0 / 1.977.1 / 2.3
DeepSeek V4 Pro39.1 / 2.433.9 / 1.444.0 / 3.074.6 / 2.1
Gemini 3 Flash30.8 / 4.228.5 / 3.142.0 / 3.569.8 / 3.0
GPT-5.239.4 / 1.739.7 / 1.737.4 / 3.476.1 / 1.7
Qwen3.6 Max37.9 / 2.334.8 / 2.430.7 / 2.672.2 / 1.3
Pooled36.5 / 2.234.4 / 1.836.8 / 2.973.8 / 2.1

F.2 编码中的二元反馈

表 16 给出表 3 和第 5.3 节所使用的编码分数。每一格是温度 0.7 下、在 45 个 MBPP Pro 或 40 个 HumanEval Pro 任务上三次运行的平均。

表 16:K 为 5 的编码分数。每一格是温度 0.7 下三次运行的平均。

基准行动者Pass@5二元 Seq@5测试细节 Seq@5
MBPP ProSonnet 4.60.6370.8070.985
MBPP ProDeepSeek V3.20.5930.5850.770
MBPP ProGemini 3 Flash0.5260.6220.978
MBPP ProQwen3 Coder Flash0.4520.4810.674
HumanEval ProSonnet 4.60.3580.6170.975
HumanEval ProDeepSeek V3.20.3420.3750.575
HumanEval ProGemini 3 Flash0.2500.3330.892
HumanEval ProQwen3 Coder Flash0.3250.3250.458

译注:表 16 是第 5.3 节编码比较的原始格子,每一格都是温度 0.7 下三次运行的平均。MBPP Pro 上,Sonnet 4.6 的 Pass@5、二元 Seq@5、测试细节 Seq@5 分别是 0.637、0.807、0.985;DeepSeek V3.2 是 0.593、0.585、0.770;Gemini 3 Flash 是 0.526、0.622、0.978;Qwen3 Coder Flash 是 0.452、0.481、0.674。HumanEval Pro 上同样四名行动者依次是 0.358、0.617、0.975;0.342、0.375、0.575;0.250、0.333、0.892;以及 0.325、0.325、0.458。只告诉通过或失败,对 Sonnet 和 Gemini 有帮助,对 DeepSeek 与 Qwen 几乎没有帮助;把失败测试的细节给进去,四名行动者都明显上升。

F.3 被摘要的历史

每个单元是同一任务上的一对轨迹,一条历史被摘要,一条是完整历史。两条轨迹来自两次运行,基准、行动者、反馈、预算、评分员、提示变体、种子和温度相同,并且至少有 30 个共同任务。这样的运行对有 57 个,给出 2,520 对轨迹。表 17 报告每个基准的轨迹对上成功率的平均变化。与其他编码分析不同,编码行使用每个基准的全部 50 个任务,包括附录 A.3 的缺陷任务。

表 17:历史被摘要时成功率的变化,单位为百分点,在轨迹对上平均。每条轨迹按其运行的尝试预算 K 打分。编码运行使用温度 0,其余使用温度 0.7。

基准轨迹对数行动者数任务数K变化(pp)
HealthBench3602605-14.4
CLBench DKR1802305-6.1
ResearchRubrics1804305, 10-7.2
AdvancedIF20045010-0.5
MBPP Pro8004505, 10+1.8
HumanEval Pro8004505, 10+0.5

觉得有用,转给同事

微信扫码

用微信扫一扫,在手机上打开后即可转发。

用 RSS 订阅

提交勘误