校准,而不是编译:检测和修复由语言模型编写的错误指定的概率程序
Calibration, Not Compilation: Detecting and Repairing Misspecified Probabilistic Programs Written by Language Models
摘要
语言模型越来越多地编写概率程序(在 NumPyro、Stan 或 Pyro 中),但是编译、运行并通过每个单元测试的程序在统计上仍然可能是错误的——重尾数据的高斯可能性、过度分散计数的泊松概率、无效的先验支持或病态参数化。因此,正确的验证器不是测试套件,而是贝叶斯工作流程本身:后验预测检查、基于模拟的校准、采样器诊断($\hat R$、分歧、ESS)和保留的预测密度。我们沿着三个轴研究这个校准预言。 \textbf{检测:}在跨 $10$ 模型系列($200$ 实例)的 $14$ 错误指定类型的基准上,它以 AUC $0.97$ 标记该错误($2\%$ FPR \emph{当提供正确的参考程序时,上限}为 $88\%$)——并且不使用正确程序的完全 \emph{reference-free} 版本达到 $62$--$78\%$(上限)来自小型自动模型搜索的数字),而单元测试预言机则为 $0\%$。 \textbf{修复:}在跨 15 个模型的 LLM 修复循环中用作反馈,校准显着优于单元测试反馈 - 这本身就 \emph{明显比没有反馈差},通过测试会导致抑制修复的错误信心 - 并且在强但不饱和的模型上比没有反馈有所改进(GPT-5.1 $33{\to}92\%$,Claude $75{\to}100\%$;配对 McNemar,$n{=}228$)。 \textbf{现实:}在程序 LLM 上从头开始编写中性简报,$15$--$47\%$ 的可运行程序在统计上是错误指定的(单元测试没有发现任何错误),并且校准引导修复显着优于 LLM 作为法官审查、贝叶斯工作流程检查表和数据摘要自调试。对于这三个程序,教训是相同的:对于概率程序,正确性是校准,而不是编译。