pass@k表示生成k次,至少1次成功的概率。
正向计算:
pass@1:只生成1次,至少1次成功的概率为 $p$。
pass@5:生成5次,至少1次成功的概率为,成功了1次,2次,…,5次的概率之和。
…
这就很麻烦随着k的增加!!!
反向计算:
pass@5:生成5次,至少1次成功的概率为,1 - 生成5次一次都没有成功的概率——$1 - (1 - p)^k$。
但是在实际使用中,并非知道这个 $p$。所以需要使用无偏估计:
例如一道题采样了10次,只有2次生产的 lean 证明通过了。
定于:
- $n$: 总采样数
- $c$:正确的次数
- $k$: 计算pass@k所考虑的采样次数
公式为:
$$\widehat{\text{pass@}k} = 1 - \frac{\binom{n-c}{k}}{\binom{n}{k}}$$
所以 pass@5 = 1 - (8! / 5!×3!) / (10! / 5!×5!)
面试可能问题:
- 发现 SFT 后 pass@1 提升明显,但 pass@10 提升不明显,能否解释这意味着什么?又需要增加什么实验才能判断原因?
(回答技巧:复述问题 -> 陈述观点 -> 理由论证+实验验证 -> 抛出引导 or 总结陈述)
如果 SFT 后 pass@1 提升明显,但是 pass@10 提升不明显,我首先会认为,模型单次生成正确证明的能力增强了,但是多次采样能够覆盖的题目范围没有明显扩大。
我会考虑两个主要原因。
第一,SFT 可能主要提高了模型在已有能力范围内的生成稳定性。比如某道题原来生成 10 次就有很高概率成功,SFT 后只是让它第一次生成就更容易成功,因此 pass@1 提升明显,但 pass@10 的增益有限。
第二,SFT 可能使模型的输出分布更加集中,降低了证明路径的多样性,导致多次采样不能有效探索新的解法。
为了验证,我会设计三个实验。首先对每道题进行多次采样,比较训练前后不同题目的成功次数,判断提升是集中在容易题还是原本无法解决的困难题。其次分析生成证明的多样性,观察不同温度下是否存在有效证明策略减少的问题。最后绘制不同 k 下的 pass@k 曲线,分析多次采样的边际收益。
如果最终发现 SFT 主要改善容易题的正确率,我会考虑补充困难样本、优化数据难度分布,再通过强化学习探索提升困难题的求解能力。当然,强化学习是否真的扩大能力覆盖,还需要进一步实验验证。
Share / 分享
评论
评论区未显示?可直接前往 GitHub Discussions 参与讨论。