三步接入你自己的任务:LLM-as-a-Verifier自定义Benchmark适配完全指南
【免费下载链接】llm-as-a-verifierLLM-as-a-Verifier is a general-purpose framework that provides fine-grained feedback for any agent without requiring additional training. It achieves SOTA performance across coding, robotics, and medical agentic benchmarks.项目地址: https://gitcode.com/gh_mirrors/ll/llm-as-a-verifier
LLM-as-a-Verifier 是一个通用的Agent 轨迹验证框架:无需任何额外训练,它就能对任意 Agent 任务的候选轨迹给出细粒度评分,在编码、机器人、医疗等 Agent 基准上均达到 SOTA 表现。更友好的是,官方把"接入你自己的任务"精简成了3 步—— 放数据、改命名、交给 AI 编码代理跑通。本文将带你从零走通自定义 Benchmark 适配的完整路径。
接入前 2 分钟:先认识框架的三个角色 🧭
LLM-as-a-Verifier 的核心理念很简单:与其让大模型当"裁判"只给一个笼统结论,不如让它沿着一组**验证标准(Criteria)逐条打分,取分数分布的期望作为细粒度奖励,再用枢轴锦标赛(Pivot Tournament)**以 O(Nk) 的比较成本对 N 条轨迹排序,选出最优的一条。
接入你的任务时,你只需要提供三样东西:
| 角色 | 文件位置 | 说明 |
|---|---|---|
| 📁 轨迹数据 | data/<任务名>_trajs/ | 任务提示 + 各候选轨迹 + 成功/失败标签 |
| 📝 验证标准 | criteria/<任务名>.md | 2-3 条"陌生人也能照着打分"的标准 |
| ⚙️ 运行脚本 | adapt_run.py | 加载数据并调用llm_verifier.select()输出排名 |
💡 仓库中已有现成范例可以参考:criteria/terminal_bench.md、criteria/swe_bench.md,以及 data/terminal_bench_2.0_trajs/ 下的数据布局。
三步接入:官方推荐的完整流程 🚀
官方适配指南写在 add_new_benchmark.md 中,整个流程只有三步:
第一步:添加你的数据(Add your data)
把你的 Agent 轨迹复制到data/task_name_trajs/目录。每条轨迹应包含三部分信息:
- 任务/问题提示(problem prompt)
- 各候选轨迹(candidate trajectories)
- 真实奖励标签(success / failure)——用于事后核对验证器选得准不准
第二步:更新命名(Update naming)
打开 add_new_benchmark.md,把其中所有的task_name占位符替换成你的任务名。这一步看似简单,但它决定了后续生成的标准文件、运行脚本、结果文件名是否一致。
第三步:启动 AI 编码代理执行(Spin up Claude Code)
在仓库中启动 Claude Code(或 Codex 等任何 AI 编码工具,建议关闭文件写入权限),把add_new_benchmark.md的全部内容粘贴给它。它会按指南自动完成五件事:
- 熟悉现状:阅读 README,检查你的数据目录布局
- 生成标准:按 criteria/TEMPLATE.md 的格式写出
criteria/task_name.md - 编写运行器:创建
adapt_run.py,加载轨迹并调用llm_verifier.select() - 检查凭证:确认
.env中有 API Key(评分是真实 API 调用,如VERTEX_API_KEY) - 跑起来:执行
python adapt_run.py,报告被选中的轨迹、各轨迹得分、以及选择是否正确
核心调用看起来非常简洁:
result = llm_verifier.select( problem, trajectories, criteria="task_name", n_evaluations=8, # 每条标准的重复验证次数 K pivots=2, # 枢轴数量 k,控制成本与精度 ) print(result.index, result.scores)运行后,把选中的索引、逐轨迹得分、是否选对、以及所用配置写入results/task_name.txt,就完成了一次完整的自定义 Benchmark 适配 ✅
写好验证标准的关键技巧 ✍️
criteria/<任务名>.md是整个框架的"灵魂",官方模板 criteria/TEMPLATE.md 明确要求保留如下结构:
## Ground Truth Note:一段每次比较都会看到的提示,比如"不要相信 Agent 的自我评估,以工具原始输出为准"## Criteria:下接若干### 标准名小节,每条标准一段可独立执行的打分说明
几条来自模板的实战建议:
- 2-4 条窄标准,胜过 1 条宽标准——每条标准独立评分
- 写清楚去哪里看证据(哪些命令、字段、文件、输出)
- 写清楚什么该得高分、什么该得低分,以及要忽略什么(防止标准之间串味)
- 避免标签泄漏:标准应评估轨迹中可观测的行为,而非直接暗示答案
标准文件写完后无需任何 API Key 即可预览验证器将看到的内容:
python -m llm_verifier criteria/your_task.md这个预览功能实现在 llm_verifier/prompts.py 中,能帮你快速检查标准是否被正确解析。
进阶:把你的任务注册进 Benchmark 注册表 🔁
如果希望像内置基准一样用命令行一键复现,可以在 llm_verifier/benchmarks.py 的BENCHMARKS注册表中加一个条目,声明数据路径、标准文件、评分缓存位置等参数。若你的数据格式与内置布局不同,再往 llm_verifier/loaders.py 里加一个加载器——每个加载器把数据解析为"任务 ID → 多次试验列表"的映射即可。
注册完成后,一条命令即可运行:
python scripts/run.py your_task python scripts/run.py your_task --pivots 2 --n-evaluations 8 --seed 0运行报告(Pass@1 vs 验证器 vs Oracle)会自动打印并写入results/目录,入口脚本见 scripts/run.py。
验证是怎么排名的?理解枢轴锦标赛 🏆
朴素的全员循环赛需要比较 C(N,2) 对轨迹,成本是 O(N²)。LLM-as-a-Verifier 的**概率枢轴锦标赛(PPT)**分四步把成本压到 O(Nk):
- 环形轮:随机排序后相邻配对打分,每个候选在 A/B 槽位各出现一次,抵消位置偏差
- 选枢轴:按环轮得分取前 k 名作为枢轴
- 枢轴轮:非枢轴只与枢轴比较,重复比较时互换 A/B 槽位
- 聚合选择:累加各候选的胜场质量,返回归一化得分最高者
pivots参数即在此处权衡成本与精度:枢轴越多,比较次数越多,排名越准。实现位于 llm_verifier/pivot_tournament.py。
接入之后:你还能做什么?📈
自定义任务跑通只是开始。同一套细粒度奖励还可以驱动进度追踪——逐步给轨迹打分,实时观察 Agent 是在推进还是在绕圈,甚至在中途放弃毫无希望的运行。官方用 Terminal-Bench 的pytorch-model-cli任务演示过这种对比:
如上图,成功轨迹的验证分数稳步爬升,而失败轨迹因错误行为始终分数偏低——这正是细粒度反馈相比"0/1 判定"的价值所在。
常见问题速答 ❓
Q:需要准备多少条轨迹?每任务多条(内置基准普遍是 3-5 条),Best-of-N 选择才有意义;若只有单条轨迹,更适合用进度追踪模式。
Q:需要训练或微调验证器吗?不需要。框架的核心卖点就是零训练:依赖现成模型的 logprob 分布完成细粒度评分,只需在.env中配置对应后端的 API Key。
Q:评分要花多少 Token?每次比较会携带两条完整轨迹(大任务可达数万 Token),但 0.2.0 版本起内置前缀缓存优化,可将未缓存输入 Token 减少约 3.4 倍;运行结束后llm_verifier.token_usage()会给出精确账单,详见 CHANGELOG.md。
总结:一张清单带走全文 ✅
- 安装:
pip install llm-verifier(或克隆仓库后pip install -e .) - 轨迹放入
data/<任务名>_trajs/(含提示、轨迹、成败标签) - 替换 add_new_benchmark.md 中的
task_name - 交给 AI 编码代理生成标准文件 + 运行脚本
- 配置
.env凭证,运行并核对选择结果 - (可选)注册进
llm_verifier/benchmarks.py,用scripts/run.py一键复现
三步接入、零训练、细粒度反馈——这就是 LLM-as-a-Verifier 让任意任务"可验证"的完整路径。现在,轮到你自己的任务了 🎯
【免费下载链接】llm-as-a-verifierLLM-as-a-Verifier is a general-purpose framework that provides fine-grained feedback for any agent without requiring additional training. It achieves SOTA performance across coding, robotics, and medical agentic benchmarks.项目地址: https://gitcode.com/gh_mirrors/ll/llm-as-a-verifier
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考