首页 / 资讯中心 / 文章详情

如何复现 ProgramBench 官方基线:用 mini-swe-agent 从零跑通完整教程

如何复现 ProgramBench 官方基线:用 mini-swe-agent 从零跑通完整教程 ★ FEATURED ARTICLE
【免费下载链接】ProgramBenchCan Language Models Rebuild Programs From Scratch?项目地址https://gitcode.com/gh_mirrors/pr/ProgramBench点击查看免费下载ProgramBench 是专为评测大语言模型「从零重建程序」能力而生的基准测试工具它只给 AI 一个编译好的二进制文件和文档要求 AI 重新实现出行为完全一致的代码库。本文将带你用官方推荐的 mini-swe-agent 基线从零完整跑通 ProgramBench 基线复现流程——从环境安装、推理生成提交包到自动评分与提交排行榜全程只需 3 个核心命令。一、先搞懂 ProgramBench只给二进制让模型重建程序ProgramBench 的核心玩法可以概括为一句话Can Language Models Rebuild Programs From Scratch?语言模型能否从零重建程序它的工作流程非常硬核选取开源 CLI 工具以 Rust/Go 为主编译成 Docker 镜像源码全部剔除AI Agent 只能通过与二进制交互来逆向出程序行为Agent 产出的完整代码库会被编译再由一套行为测试Behavioral Tests逐条打分。仓库内置了上百个真实任务实例每个任务目录包含task.yaml描述语言、难度等元信息和tests.json定义测试分支与忽略测试例如 src/programbench/data/tasks/abishekvashok__cmatrix.5c082c6/task.yaml 就是一个 easy 难度的 C 语言任务。官方论文中的全部基线都是用 mini-swe-agent 框架跑出来的这也是我们复现的目标。二、环境准备3 步装好 ProgramBench 评测工具链1. 确认系统要求必须是 Linux x86_64 机器所有 Docker 镜像只构建linux/amd64版本macOS/Windows 上无法原生运行QEMU 模拟速度也太慢安装好Docker评分阶段会自动拉取任务容器推荐使用 uv 管理 Python 环境要求 Python ≥ 3.10见 pyproject.toml。2. 安装 ProgramBench 评测 CLI最快的方式是不安装直接运行uvx programbench --help如果要作为项目开发依赖可以装进当前环境uv pip install programbench # 或者用 pip pip install programbench这个 CLI 的核心入口是 src/programbench/cli/main.py提供eval评分、info汇总、blob测试包下载、submit排行榜提交四大命令组。3. 安装 mini-swe-agent 基线 Agentuvx --from mini-swe-agent mini-extra programbench --help # 或者 pip install mini-swe-agent mini-extra programbench --helpmini-extra programbench就是官方为 ProgramBench 定制的运行入口跑之前记得按 mini-swe-agent 的文档配置好你的大模型 API Key如OPENAI_API_KEY否则 Agent 无法发起推理。三、第一步跑推理让 Agent 从零重建程序1. 选择任务镜像推理阶段使用带task_cleanroom_v6标签的 Docker 镜像。镜像名由任务 ID 转换而来__替换为_1776_。例如任务ffmpeg__ffmpeg.360a402对应的镜像就是ffmpeg_1776_ffmpeg.360a402任务元信息可在 src/programbench/data/tasks/ 中按 ID 目录逐个查看。⚠️重要推理期间 Agent绝对不能联网否则就失去从零重建的意义了。2. 运行基线推理以 mini-swe-agent 为例通过mini-extra programbench指定要跑的任务和模型具体参数以mini-extra programbench --help的输出为准。建议新手先用--filter或--slice类参数挑 1~2 个 easy 难度任务试水确认整个链路通了再扩量。3. 整理成标准提交目录Agent 跑完后的产物是完整代码库需要打包成.tar.gz并摆成如下目录结构my-amazing-agent-run ├── abishekvashok__cmatrix.5c082c6 │ └── submission.tar.gz ├── ajeetdsouza__zoxide.67ca1bc │ └── submission.tar.gz └── ...规则很简单一个任务一个子目录目录名 任务 ID里面放 submission.tar.gz。四、第二步programbench eval 自动评分现在来到 ProgramBench 的主场。评测命令会自动拉取所需 Docker 容器逐任务执行编译 → 运行行为测试 → 生成结果uv run programbench eval /path/to/my-amazing-agent-run常用参数一览完整定义见 src/programbench/cli/main.py参数作用新手建议-w / --workers并行评测的任务数先保持默认 1机器富余再调-b / --branch-workers单任务内并行测试分支数默认 1--filter 正则按任务 ID 过滤只评测单个任务时非常实用--slice 0:5只评测前 5 个任务快速冒烟测试-f / --force已有结果也重新评测重跑时必加--summarize-only跳过评测只汇总已有结果断点续查小贴士各任务的测试包blob是在评测时按需从 HuggingFace 下载的。想提前批量下载可执行uv run programbench blob sync # 全部任务 uv run programbench blob sync instance_id # 单个任务五、第三步读取 eval.json用 programbench info 看最终得分评测结束后每个任务目录下会多出一份instance_id.eval.jsonmy-amazing-agent-run ├── abishekvashok__cmatrix.5c082c6 │ ├── submission.tar.gz │ └── abishekvashok__cmatrix.5c082c6.eval.jsoneval.json 包含逐条测试的test_resultspassed/failure、完整执行日志log、编译产物哈希executable_hash等字段样例可参考 src/programbench/data/test_runs/correct/testorg__calculator.abc1234/ 下的正确样例。不过官方强烈建议不要手工解析 JSON而是用info命令获取最终得分——它会自动剔除tests.json中标记为不可靠的测试如确定性失败的gold_fail、偶发不稳定的gold_flakyuv run programbench info /path/to/my-amazing-agent-run输出一张漂亮的汇总表各任务通过率、整体 resolved 比例和警告信息一眼看清基线复现效果。六、进阶把成绩提交上排行榜可选如果复现出了不错的成绩ProgramBench 还提供了一键式排行榜提交流程命令定义在 src/programbench/cli/submit.py# 1. 打包生成 submission.yaml 清单拆分大日志文件 uv run programbench submit package my-amazing-agent-run # 2. 校验确认产物与得分一致--tier1 会用 Docker 重跑验证 uv run programbench submit verify ./my-submission # 3. 发布创建公开仓库并推送 uv run programbench submit publish ./my-submission # 4. 注册向官方 registry 提 PR登上排行榜 uv run programbench submit register ./my-submission每一步都支持--dry-run先预览放心大胆试。七、新手常见问题 FAQQ1为什么我的 Docker 拉取失败镜像只有linux/amd64版本请确认在 Linux x86_64 环境上运行并检查 Docker 守护进程是否在运行。Q2评测卡在网络下载上先用uv run programbench blob sync预下载全部测试包再跑评测。Q3Agent 推理时为什么要求断网这是基准的公平性红线Agent 只能通过黑盒二进制理解程序任何联网查源码的行为都会让评测结果失效。Q4结果和论文基线对不上注意确认tests.json中被忽略的测试忽略原因清单见 CLAUDE.md并且始终用programbench info的口径统计分数而不是 raw eval.json。写在最后至此你已经完整跑通了 ProgramBench 官方基线复现全流程mini-extra programbench推理 → 标准目录打包 →programbench eval评分 →programbench info看分。更多细节建议翻阅官方使用指南 docs/README.md以及仓库自带的 README.md。祝你的 Agent 早日冲上排行榜赞分享【免费下载链接】ProgramBenchCan Language Models Rebuild Programs From Scratch?项目地址https://gitcode.com/gh_mirrors/pr/ProgramBench点击查看免费下载相关推荐如何从零复现W4A16量化?Phi-4-mini-instruct-w4a16-llmcompressor的LLM Compressor完整量化教程如何从零复现W4A16量化?Phi 4 mini instruct w4a16 llmcompressor的LLM Compressor完整量化教程 本文带你从如何5分钟跑通Parler-TTS Mini零基础TTS语音合成快速上手教程如何5分钟跑通Parler TTS Mini零基础TTS语音合成快速上手教程 想零基础上手 TTS 语音合成 Parler TTS Mini https:如何在 Mac 上 5 分钟跑通 AREX-Turbo-4bit零基础上手完整教程如何在 Mac 上 5 分钟跑通 AREX Turbo 4bit零基础上手完整教程 AREX Turbo 4bit 是智源 BAAI 多模态大模型 AREX上一篇谷歌官方 Node.js 客户端集成 API 模块的版本演进与变更解读integrations CHANGELOG 深度解析下一篇Xournal 手写笔记软件快速上手从压感笔到 PDF 批注的无纸化学习完整配置创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站