首页/AI/提示词工程速查/执行式评估:用运行结果判对错
评估与迭代50 条

执行式评估:用运行结果判对错

能运行的任务优先用执行结果判定:代码跑单元测试、SQL 对结果集、正则对样例;比文本相似度更接近真实正确。

提示词工程速查AI更新于 2026-10-13

执行式评估:用运行结果判对错

能运行的任务优先用执行结果判对错:代码跑单元测试、SQL 对结果集、正则对样例集合。相比文本相似度,执行式评估更接近真实正确性,也不受表述方式影响。前提是判定环境本身要可靠——沙箱隔离、超时限制、用例覆盖正例与边界。

基本信息

判定单元测试通过 / 结果集一致 / 样例匹配
安全不可信代码必须在隔离沙箱内执行
用例正例、边界、异常三类都要覆盖
超时死循环用例必须有超时,超时按失败计

典型使用场景

  • 代码生成评测:用单元测试判定,指标含义明确
  • SQL 生成评估:在只读副本上执行并比对结果集
  • 正则与规则生成:拿样例集合跑一遍看命中与误伤
  • 数据清洗脚本评估:跑完比对输出表的行数与关键字段
  • 回归门禁:把执行式用例接入 CI,退化即拦截

执行评估骨架

执行评估骨架
# 仅在隔离沙箱与超时限制内执行候选代码
python - <<'PY'
def evaluate(candidate_code: str, cases: list) -> dict:
    ns = {}
    exec(candidate_code, ns)      # 沙箱内执行,勿在宿主机直接运行
    passed = 0
    for args, want in cases:
        try:
            got = ns['solve'](*args)
        except Exception:
            continue              # 抛异常按未通过计
        if got == want:
            passed += 1
    return {'passed': passed, 'total': len(cases)}
PY
# 配套:进程级超时、内存上限、无网络、只读文件系统

判定要素读法

要素含义异常表现
通过数用例中通过的条数全通过但用例太弱,指标虚高
用例类型正例 / 边界 / 异常只测正例,边界与异常场景上线才暴露
超时单条用例的最长执行时间无超时限制时死循环拖垮评测任务
隔离沙箱与权限边界在宿主机执行带来安全与稳定性风险
隐藏用例不写进提示的保留用例全部公开时模型可针对性写死逻辑
执行模型生成的代码必须做隔离:独立容器或沙箱、限时限内存、默认无外网、不挂载生产凭据。这几条缺任何一条,执行式评估本身就成了风险源。
把全部用例写进提示,模型会针对性写死到这些输入。保留一部分隐藏用例,并在评测时统计「公开用例通过但隐藏用例失败」的比例,用它衡量过拟合程度。

易错点

  • 在宿主机上直接执行模型生成的代码,缺少沙箱与超时,评估过程本身带来安全风险
  • 用例只覆盖正例,边界与异常场景在评测中全部通过,上线后才集中暴露
  • 公开全部用例导致模型把逻辑写死到用例上,通过率高但换一批输入就不成立
  • 把执行结果不一致的样本当作模型错误,实际是判定环境的依赖或版本差异导致的

数据来源与参考

  • HumanEval 测试执行的代码评测做法;不可信输出处理原则参考 OWASP LLM Top 10
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌