From bc4d39ddf2c0e2aafdbeddc44efe5be96be29cb1 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Sat, 1 Jun 2024 11:46:53 -0700 Subject: [PATCH] copy --- _posts/2024-05-31-both-swe-bench.md | 8 ++-- assets/swe_bench.jpg | Bin 43742 -> 43762 bytes assets/swe_bench.svg | 68 ++++++++++++++-------------- benchmark/swe_bench.py | 2 +- 4 files changed, 39 insertions(+), 39 deletions(-) diff --git a/_posts/2024-05-31-both-swe-bench.md b/_posts/2024-05-31-both-swe-bench.md index 29fec1851c0..7ea6cf37103 100644 --- a/_posts/2024-05-31-both-swe-bench.md +++ b/_posts/2024-05-31-both-swe-bench.md @@ -22,10 +22,10 @@ that was reported recently. [![SWE Bench results](/assets/swe_bench.svg)](https://aider.chat/assets/swe_bench.svg) -Aider was benchmarked on 570 of the 2294 SWE Bench problems. -These were the same -[randomly selected 570 problems](https://github.com/CognitionAI/devin-swebench-results/tree/main/output_diffs) that -[Devin used in their evaluation](https://www.cognition.ai/post/swe-bench-technical-report). +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 +[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. diff --git a/assets/swe_bench.jpg b/assets/swe_bench.jpg index 4e75c4dd6f9fef0bc7834b652fd1513db8839897..cf3994d8a3634ebc9eb2756981114ae954ed075b 100644 GIT binary patch delta 28513 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 AN&o-= diff --git a/assets/swe_bench.svg b/assets/swe_bench.svg index 78892a2a8db..ffa620f2ddf 100644 --- a/assets/swe_bench.svg +++ b/assets/swe_bench.svg @@ -6,7 +6,7 @@ - 2024-06-01T11:25:56.978629 + 2024-06-01T11:46:22.003048 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(#p4aa384bc7b)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - - + @@ -1394,11 +1394,11 @@ z +" clip-path="url(#p4aa384bc7b)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1467,11 +1467,11 @@ z +" clip-path="url(#p4aa384bc7b)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1487,11 +1487,11 @@ L 690 242.500879 +" clip-path="url(#p4aa384bc7b)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1523,11 +1523,11 @@ z +" clip-path="url(#p4aa384bc7b)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1557,11 +1557,11 @@ z +" clip-path="url(#p4aa384bc7b)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1578,11 +1578,11 @@ L 690 144.756199 +" clip-path="url(#p4aa384bc7b)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1599,11 +1599,11 @@ L 690 112.174638 +" clip-path="url(#p4aa384bc7b)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - + @@ -1780,7 +1780,7 @@ L 170.425134 307.664 L 170.425134 170.821447 L 104.863636 170.821447 z -" clip-path="url(#pf392d01723)" style="fill: #b3e6a8; opacity: 0.3"/> +" clip-path="url(#p4aa384bc7b)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#p4aa384bc7b)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#p4aa384bc7b)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#p4aa384bc7b)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#p4aa384bc7b)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#p4aa384bc7b)" style="fill: #155f91; opacity: 0.9"/> +" clip-path="url(#p4aa384bc7b)" style="fill: #155f91; opacity: 0.9"/> @@ -2356,7 +2356,7 @@ z - + diff --git a/benchmark/swe_bench.py b/benchmark/swe_bench.py index a1aec6c293d..e0669937f21 100644 --- a/benchmark/swe_bench.py +++ b/benchmark/swe_bench.py @@ -54,7 +54,7 @@ def plot_swe_bench(data_file, is_lite): if is_lite: colors = ["#17965A" if "Aider" in model else "#b3d1e6" for model in models] else: - colors = ["#155F91" if "Aider" in model else "#b3e6a8" for model in models] + colors = ["#155F91" if "Aider" in model else "#b3d1e6" for model in models] bars = [] for model, pass_rate, color in zip(models, pass_rates, colors):