论文

验证陷阱:了解代码生成中错误前提下的测试时选择失败

Verification Trap: Understanding Test-Time Selection Failures under False Premises in Code Generation

模型评测评测方法与指标

摘要

测试时计算已成为改进代码生成的核心方式:系统对多个候选程序进行采样,并使用验证者可见的证据来选择最终输出。该范例隐含地假设验证器提供独立于生成器的校正信号。我们在误导性的任务前提下质疑这一假设。当生成器和验证器共享一个错误的前提时,它们会通过错误的信念而耦合:生成器产生前提一致的捷径,而验证器提供的证据无法揭露它们。因此,即使池中存在隐藏测试正确的程序,选择器也可能选择隐藏测试错误的候选者。我们将此故障模式称为验证陷阱。在三个代码生成基准和五个代码模型中,错误前提持续降低第一个样本的正确性,降低 64 个样本测试时选择后选择器选择的正确性,并放大可恢复的错误选择。从机制上讲,验证者编写的测试继承了前提级盲点,重塑验证者可见的候选空间,远离隐藏测试的正确性。这些痕迹使得验证 Trap 在隐藏执行之前可预测:使用验证者可见功能的轻量级无金预测器达到 0.846 AUROC。我们的结果将解耦证据确定为关键的缓解轴:耦合扩展提供了有限的恢复,而与前提无关的稳健性审核员则恢复了大量的预言机空间。

验证陷阱:了解代码生成中错误前提下的测试时选择失败的原论文方法或结果图
图 1:错误前提下的验证陷阱概述。 (a) 错误的前提可以使选择器选择与验证者兼容的捷径,尽管有可用的正确候选者。 (b) 生成器-验证器耦合使验证器可见的证据偏向于前提一致的捷径。 (c) 解耦证据改变了最终的证据通道,并恢复了因耦合缩放而错过的候选者。