在评估一个代码生成智能体时,我们常使用 Pass@K 指标。假设我们有一个包含 n=100 个编程问题的测试集。对于每个问题,让智能体独立生成 k=5 个不同的代码解决方案。 如果对于某个问题,生成的 5 个方案中有任意一个能够通过单元测试,该问题就被视为“已解 决”。最终,在 100 个问题中,有 60 个问题被成功解决。
根据上述描述,以下关于 Pass@K 的计算和解释,哪一项是正确的?
A.
这里 K=5, Pass@5 = (60 / 100) * 100% = 60%。这表示随机抽取一个生成方案,其通过测 试的概率是 60%。
B.
这里 K=5, Pass@5 = (60 / 100) * 100% = 60%。这表示通过生成 5 个方案,智能体成功解 决其中 60%问题的能力。
C.
这里 K=100, Pass@100 = (60 / 100) * 100% = 60%。这表示智能体解决了测试集中 60% 的问题。
D.
这里 K=5, 但正确的计算方式应为 Pass@5 = (60 / (100 * 5)) * 100% = 12%。这表示所有生成方案的总通过率。