From 2cb9a8ddc89c3bf1e6cb4e04332b0d4903964bed Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 1 Jun 2024 16:10:55 -0700 Subject: [PATCH] copy --- _posts/2024-05-31-both-swe-bench.md | 70 +++------------- assets/swe_bench.jpg | Bin 44294 -> 44368 bytes assets/swe_bench.svg | 126 ++++++++++++++++------------ benchmark/swe-bench.txt | 8 +- 4 files changed, 87 insertions(+), 117 deletions(-) diff --git a/_posts/2024-05-31-both-swe-bench.md b/_posts/2024-05-31-both-swe-bench.md index 4e9ffa5df..57e7d9b79 100644 --- a/_posts/2024-05-31-both-swe-bench.md +++ b/_posts/2024-05-31-both-swe-bench.md @@ -23,8 +23,8 @@ that was reported recently. [![SWE Bench results](/assets/swe_bench.svg)](https://aider.chat/assets/swe_bench.svg) Aider was benchmarked on the same -[random 570](https://github.com/CognitionAI/devin-swebench-results/tree/main/output_diffs) -of the 2294 SWE Bench problems that were used in the +[randomly selected 570](https://github.com/CognitionAI/devin-swebench-results/tree/main/output_diffs) +of the 2,294 SWE Bench problems that were used in the [Devin evaluation](https://www.cognition.ai/post/swe-bench-technical-report). Please see the [references](#references) for more details on the data presented in this chart. @@ -187,68 +187,20 @@ are "more plausible" than some of GPT-4o's non-plausible solutions. These more plausible, incorrect solutions can eclipse some of the earlier non-plausible correct solutions that GPT-4o generated. -This reduces GPT-4o's score in the table (15.3%) from the combined GPT-4o & Opus -benchmark, -as compared to the results from just one try using aider with GPT-4o (17.0%). +This is why GPT-4o's score in the table +showing the combined GPT-4o & Opus results (15.3%) +is lower than the result from just one try using aider with GPT-4o (17.0%). For these reasons, adding additional attempts is not guaranteed to monotonically increase the number of resolved problems. New solutions may resolve some new problems but they may also eclipse and discard some of the previous non-plausible correct solutions. + Luckily, additional attempts usually provide a net increase in the overall number of resolved solutions. This was the case for both this main SWE Bench result and the earlier Lite result. -The table below breaks down the benchmark outcome of each problem, -showing whether aider with GPT-4o and with Opus -produced plausible and/or correct solutions. - -|Row|Aider
w/GPT-4o
solution
plausible?|Aider
w/GPT-4o
solution
resolved
issue?|Aider
w/Opus
solution
plausible?|Aider
w/Opus
solution
resolved
issue?|Number of
problems
with this
outcome|Number of
problems
resolved| -|:--:|:--:|:--:|:--:|:--:|--:|--:| -| A | **plausible** | **resolved** | n/a | n/a | 73 | 73 | -| B | **plausible** | no | n/a | n/a | 181 | 0 | -| C | no | no | **plausible** | no | 53 | 0 | -| D | no | no | **plausible** | **resolved** | 12 | 12 | -| E | no | **resolved** | **plausible** | no | 2 | 0 | -| F | no | **resolved** | **plausible** | **resolved** | 1 | 1 | -| G | no | no | no | no | 216 | 0 | -| H | no | no | no | **resolved** | 4 | 2 | -| I | no | **resolved** | no | no | 4 | 3 | -| J | no | **resolved** | no | **resolved** | 17 | 17 | -| K | no | no | n/a | n/a | 7 | 0 | -|Total|||||570|108| - -Rows A-B show the cases where -aider with GPT-4o found a plausible solution during the first attempt. -Of those, 73 went on to be deemed as resolving the issue, -while 181 were not in fact correct solutions. -The second attempt with Opus never happened, -because the harness stopped once a -plausible solution was found. - -Rows C-F consider the straightforward cases where aider with GPT-4o -didn't find a plausible solution but Opus did. -So Opus' solutions were adopted and they -went on to be deemed correct for 13 problems -and incorrect for 55. - -In that group, Row E is an interesting special case, where GPT-4o found 2 -non-plausible but correct solutions. -We can see that Opus overrides -them with plausible-but-incorrect -solutions resulting in 0 resolved problems from that row. - -Rows G-K cover the cases where neither model -produced plausible solutions. -Which solution was ultimately selected for each problem depends on -[details about which solution the harness considered "most plausible"](https://aider.chat/2024/05/22/swe-bench-lite.html#finding-a-plausible-solution). - -Row K contains cases where Opus returned errors due to context window -exhaustion or other problems. -In these cases aider with Opus was unable to produce any solutions -so GPT-4o's solutions were adopted. - ## Computing the benchmark score The benchmark harness produced one proposed solution for each of @@ -289,11 +241,11 @@ making it faster, easier, and more reliable to run the acceptance tests. Below are the references for the SWE-Bench results displayed in the graph at the beginning of this article. -- [13.9% Devin (benchmarked on 570 instances)](https://www.cognition.ai/post/swe-bench-technical-report) -- [13.8% Amazon Q Developer Agent (benchmarked on 2294 instances)](https://www.swebench.com) -- [12.5% SWE- Agent + GPT-4 (benchmarked on 2294 instances)](https://www.swebench.com) -- [10.6% AutoCode Rover (benchmarked on 2294 instances)](https://arxiv.org/pdf/2404.05427v2) -- [10.5% SWE- Agent + Opus (benchmarked on 2294 instances)](https://www.swebench.com) +- [13.9% Devin, benchmarked on 570 instances.](https://www.cognition.ai/post/swe-bench-technical-report) +- [13.8% Amazon Q Developer Agent, benchmarked on 2,294 instances.](https://www.swebench.com) +- [12.5% SWE- Agent + GPT-4, benchmarked on 2,294 instances.](https://www.swebench.com) +- [10.6% AutoCode Rover, benchmarked on 2,294 instances.](https://arxiv.org/pdf/2404.05427v2) +- [10.5% SWE- Agent + Opus, benchmarked on 2,294 instances.](https://www.swebench.com) The graph contains average pass@1 results for AutoCodeRover. The [AutoCodeRover GitHub page](https://github.com/nus-apr/auto-code-rover) diff --git a/assets/swe_bench.jpg b/assets/swe_bench.jpg index 175eb7063fe00f96bc1e6068a099d3c351ebc338..9b5029fa8580392564c8557d4e762009380900ca 100644 GIT binary patch delta 22056 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�UOT>pk>7T9yE_GzO1Du*}Ab9X6w@{k7XQM2OxY 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 diff --git a/assets/swe_bench.svg b/assets/swe_bench.svg index cdafbfae7..149381f98 100644 --- a/assets/swe_bench.svg +++ b/assets/swe_bench.svg @@ -6,7 +6,7 @@ - 2024-06-01T14:55:22.797792 + 2024-06-01T16:00:26.751322 image/svg+xml @@ -41,12 +41,12 @@ z - - + @@ -412,7 +412,7 @@ z - + @@ -583,7 +583,7 @@ z - + @@ -699,7 +699,7 @@ z - + @@ -894,7 +894,7 @@ z - + @@ -926,7 +926,7 @@ z - + @@ -1157,7 +1157,7 @@ z - + @@ -1339,16 +1339,16 @@ z +" clip-path="url(#pb8819c8324)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - - + @@ -1394,11 +1394,11 @@ z +" clip-path="url(#pb8819c8324)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1467,11 +1467,11 @@ z +" clip-path="url(#pb8819c8324)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1487,11 +1487,11 @@ L 690 242.845658 +" clip-path="url(#pb8819c8324)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1523,11 +1523,11 @@ z +" clip-path="url(#pb8819c8324)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1557,11 +1557,11 @@ z +" clip-path="url(#pb8819c8324)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1578,11 +1578,11 @@ L 690 145.618145 +" clip-path="url(#pb8819c8324)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1599,11 +1599,11 @@ L 690 113.208974 +" clip-path="url(#pb8819c8324)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1780,7 +1780,7 @@ L 170.425134 307.664 L 170.425134 171.545481 L 104.863636 171.545481 z -" clip-path="url(#p8c34e9879c)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#pb8819c8324)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#pb8819c8324)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#pb8819c8324)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#pb8819c8324)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#pb8819c8324)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#pb8819c8324)" style="fill: #1a75c2; opacity: 0.9"/> +" clip-path="url(#pb8819c8324)" style="fill: #1a75c2; opacity: 0.9"/> @@ -2212,8 +2212,8 @@ z - - + + + - - - + + + + - - + + - - - + + + + - - + + - - - + + + + - - + + - - - + + + + @@ -2386,7 +2404,7 @@ z - + diff --git a/benchmark/swe-bench.txt b/benchmark/swe-bench.txt index b3e5674b5..338296a3e 100644 --- a/benchmark/swe-bench.txt +++ b/benchmark/swe-bench.txt @@ -1,7 +1,7 @@ 18.9% Aider|GPT-4o|& Opus|(570) 17.0% Aider|GPT-4o|(570) 13.9% Devin|(570) -13.8% Amazon Q|Developer|Agent|(2294) -12.5% SWE-|Agent|+ GPT-4|(2294) -10.6% Auto|Code|Rover|(2294) -10.5% SWE-|Agent|+ Opus|(2294) +13.8% Amazon Q|Developer|Agent|(2,294) +12.5% SWE-|Agent|+ GPT-4|(2,294) +10.6% Auto|Code|Rover|(2,294) +10.5% SWE-|Agent|+ Opus|(2,294)