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

发布时间:2026/10/23 6:19:07

如何复现 ProgramBench 官方基线:用 mini-swe-agent 从零跑通完整教程 【免费下载链接】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),仅供参考
延伸阅读

更多相关文章

2026/10/23 6:19:07

Redis Cluster扩容的隐形瓶颈:通信开销决定集群规模上限

最近在帮一家公司做 Redis Cluster 扩容评估,业务方提了个很朴素的需求:集群从 300 个节点扩到 600 个节点,因为数据量涨了。听起来挺常规的,但评估做完后,我的结论是:不建议继续扩。不是因为机器不够&…

2026/10/23 6:19:07

C++通过COM自动化调用WPS读取Excel实战:从选型到避坑

简介:面向Windows平台C开发者的一份实战工程源码,聚焦在VS2010的MFC框架下借助WPS Office接口读取XLSX表格这一常见需求。资源围绕Open XML格式解析、WPS动态库加载、接口函数指针获取、工作簿与工作表遍历、单元格数据提取及界面控件展示等环节给出可运…

2026/10/23 9:29:40

多模态融合与协同建模:从特征拼接到高阶交互的落地指南

多模态项目做多了,你会发现一个非常普遍的错觉:只要把图像特征和文本特征拼在一起,丢给模型,它就应该"理解"图文关系了。我第一次做图文检索的时候也是这么干的,特征拼接后接个全连接,跑起来还像…

2026/10/23 9:29:40

AI辅助学术论文修改:四招搞定研究方法章节的审稿人挑剔

前阵子一位读博的朋友把论文初稿发我,说审稿意见下来了,方法章节被批得比较狠。我打开一看,方法描述确实写得让人捏把汗:抽样只写了“随机选取”,数据分析只写了“用统计软件检验”,方法选择理由一整段都是…

2026/10/23 9:29:40

YOLOv8模型压缩实战:基于BN层通道剪枝的L1/L2/Random策略对比

从一次实际部署任务说起。手里的模型在 GPU 上跑得好好的,但迁移到边缘设备后,显存不够、延迟超标,急需压缩。市场上常见方案无非三种:蒸馏、量化、剪枝。蒸馏要另起炉灶重新训练一个学生网络,量化在部分硬件上算子支持…

2026/10/23 9:29:40

Dynamics 365与IoT集成:从传感器到工单的无人干预运维闭环

看到“无人干预”这四个字,先别急着激动。我做集成这几年,最大的体会是:真正能落地的无人值守,不是把人全部撤掉,而是把人在现场判断的活儿,用一套可靠的流程和数据结构化地做掉。Dynamics 365 加上 IoT&am…

2026/10/23 9:29:40

Spring Boot整合LangChain4j:Java生态LLM应用开发实战指南

1. 整合方案与前置思路 1.1 为什么要用Spring整合LangChain4j 先聊点实际的。如果你是Java后端开发者,业务系统里想接入大模型能力,比如让用户用自然语言查数据、让系统自动生成报告、做一个带记忆的智能客服,那你大概率会遇到一个选择&…

2026/10/23 9:24:36

声音肌肉训练:8类演播场景的声学参数化训练法

简介:本资源是面向声音创作者、配音初学者及演播进阶学习者的专业练习素材合集,源自喜马拉雅大学体系,聚焦朗读表达、角色塑造与情绪张力等核心能力训练。PDF文档整合了历史、悬疑、恐怖、奇幻、经管、都市、言情、儿童共八大类演播练习文本链…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑