华人又来炸场!一个命令工具让GPT-4干掉Devin和RAG!Jim Fan:提示工程2.0没必要了!
华人又来炸场了!昨天,普林斯顿的CS/NLP硕士生John Yang在Github上开源了一款堪比Devin的利器。不到一天,就在Github上斩获了1.3k 星,异常生猛。据悉,4月10日,详细的技术论文就会公开!
让语言模型秒变编程Agent!
SWE-agent是一款用于自主解决Github存储库问题的新系统,在SWE-bench上取得了与Devin相似的准确度,平均耗时只有93s,而且重要的是,开源!!!
此外,SWE-agent 通过与专用终端交互来工作,这使得它能够:
打开、滚动和搜索文件 使用自动语法检查编辑特定行 编写并执行测试 这个定制的界面对于良好的性能至关重要!
大模型虽好,但也需要叠加Buff
要知道,目前如果只是简单地将 LM 连接到普通的 bash 终端效果并不好。
大模型需要精心设计的代理计算机界面(类似于人类喜欢良好的 UI 设计)才能更好地发挥威力!即使强如GPT-4,良好的代理计算机设计也很重要。
例如,当大模型弄乱缩进时,SWE-agent的编辑器会阻止它并提供反馈!
另外,团队还发现了一个重要的数字经验:对于查看文件,让 SWE-agent 一次仅查看 100 行比让它查看 200 或 300 行要好,而且比让它查看整个文件要好得多。所谓的“长文本”能力在这里好像不好用了。
SWE-agent团队的厉害之处在于,他们设计了一种代理计算机交互接口(ACI),让大模型有一个专属的定制界面。
SWE-agent 将大模型(例如 GPT-4)转变为软件工程代理,可以修复真实 GitHub 存储库中的错误和问题。在完整的SWE-bench测试集上,SWE-agent 解决了12.29%的问题,在完整的测试集上实现了最先进的性能。
Agent必备:代理计算机接口 (ACI)
通过设计简单的以大模型为中心的命令和反馈格式来实现这些结果,使大模型更容易浏览存储库、查看、编辑和执行代码文件。团队将其称为代理计算机接口(ACI),并构建 SWE 代理存储库,以便轻松迭代存储库级编码代理的 ACI 设计。
大家都知道,再好的语言模型,也都需要良好的提示工程。Agent也一样,同样需要良好的ACI设计,这样可以带来更好的结果。正如我们在论文中所示,没有经过良好调整的 ACI 的基线代理的表现比 SWE 代理差得多。
来看看实际演示,全程无炒作!
安装也很简单,Docker+Miniconda,外加一个激活命令行:conda activate swe-agent
就可以快速体验。具体来说,运行./setup.sh以创建swe-agentdocker 镜像
,然后配置文件keys.cfg也需要改动填充一下:
OPENAI_API_KEY: 'OpenAI API Key Here if using OpenAI Model (optional)'
ANTHROPIC_API_KEY: 'Anthropic API Key Here if using Anthropic Model (optional)'
GITHUB_TOKEN: 'GitHub Token Here (required)'
用法简单:推理和评估两个步骤
SWE-agent 管道有两个步骤:推理和评估。非常简单,第一步(推理)就是向SWE agent输入GitHub问题并返回尝试修复它的拉取请求;第二步(评估,目前仅适用于 SWE-bench 基准测试中的问题)就是评估拉取请求,看看它是否确实可以解决问题。
不管你是想跑在Github还是SWE-bench上,都会有相应的命令。
推理
对任何GitHub 问题的推理:使用此脚本,你可以在任何 GitHub 问题上运行 SWE-agent!
python run.py --model_name gpt4 \
--data_path https://github.com/pvlib/pvlib-python/issues/1603 --config_fi
SWE-bench 上的推理:在SWE-bench Lite上运行 SWE-agent并生成补丁。
python run.py --model_name gpt4 \
--per_instance_cost_limit 2.00 \
--config_file ./config/default.yaml
如果您想从 SWE-bench运行单个--instance_filter问题,请使用以下选项:
python run.py --model_name gpt4 \
--instance_filter marshmallow-code__marshmallow-1359
评估
此步骤仅适用于 SWE 基准集中的问题。要评估生成的拉取请求:
cd evaluation/
./run_eval.sh <predictions_path>
JimFan:提示工程2.0也许没那么重要了!
对于这一发布,英伟达高级研究经理JimFan认为,非常棒!单纯靠GPT4命令行工具进行更好手动设计就可以达到媲美Devin的精确度,没有魔法,没有炒作。
此外,Jim认为当GPT5到来时,也许指令遵循、工具使用,长上下文会更好。也许所谓“提示工程2.0”不再那么重要了!
知识补充:
SWE Bench旨在提供一组不同的代码库问题,这些问题可以使用回购单元测试进行验证。完整的SWE台架测试拆分包括12个python存储库中的2294个问题提交对。
自发布以来,对于大多数在SWE工作台上进行评估的系统来说,运行每个实例可能需要大量的时间和计算。官方还发现,SWE工作台可能是一个特别困难的基准,从长远来看,这对评估LMs很有用,但对试图在短期内取得进展的系统来说却令人沮丧。
为了解决这些问题,SWE-bench发布了一个规范子集SWE-bench Lite。SWE-bench Lite包括SWE bench中的300个实例,这些实例经过采样后更加独立,重点是评估功能性错误修复。
参考链接:
https://github.com/princeton-nlp/SWE-agent
——好文推荐——
SU7创始版追加已开售,高管辟谣锁单量;淘宝计划“火箭送快递”;昆仑万维“天工3.0”即将公测;马斯克开源Grok1.5|T资讯
GPT-5史诗级更新之前,OpenAI的“新东西”来了,曝定价百万字符15美元,语音克隆引擎让老外说“有口音的”中文