From 69669363166587c6a1edc4f0f851cce8ff04d1d5 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Thu, 30 May 2024 15:29:33 -0700 Subject: [PATCH] Updated graph to use pass@1 unhinted results from other agents --- _posts/2024-05-22-swe-bench-lite.md | 41 +- assets/swe_bench_lite.jpg | Bin 37348 -> 37930 bytes assets/swe_bench_lite.svg | 582 ++++++++++++++++++---------- benchmark/swe-bench-lite.txt | 2 +- benchmark/swe_bench_lite.py | 23 +- 5 files changed, 435 insertions(+), 213 deletions(-) diff --git a/_posts/2024-05-22-swe-bench-lite.md b/_posts/2024-05-22-swe-bench-lite.md index 44260d3ed..8033bf417 100644 --- a/_posts/2024-05-22-swe-bench-lite.md +++ b/_posts/2024-05-22-swe-bench-lite.md @@ -12,11 +12,17 @@ on the achieving a state-of-the-art result. The current top leaderboard entry is 20.3% from Amazon Q Developer Agent. -The best result reported elsewhere seems to be -[25% from OpenDevin](https://x.com/gneubig/status/1791498953709752405). [![SWE Bench Lite results](/assets/swe_bench_lite.svg)](https://aider.chat/assets/swe_bench_lite.svg) +Please see the [references](#references) +for details on the data presented in this chart. +It was updated 5/30/24 to reflect apples-to-apples comparisons, +using pass@1 results from AutoCodeRover +and results from OpenDevin that don't use hints. +The [official SWE Bench Lite leaderboard](https://www.swebench.com) +only accepts pass@1 results that do not use hints. + ## Interactive, not agentic Aider achieved this result mainly through its existing features that focus on static code analysis, reliable LLM code editing, and pragmatic UX for AI pair programming. @@ -397,14 +403,33 @@ making it faster, easier, and more reliable to run the acceptance tests. ## References Below are the references for the SWE-Bench Lite results -displayed in the graph at the top of this page. +displayed in the graph at the beginning of this article. -- [25.0% OpenDevin](https://x.com/gneubig/status/1791498953709752405) -- [19.0% AutoCodeRover](https://github.com/swe-bench/experiments/pull/11) - [20.3% Amazon Q Developer Agent (v20240430-dev)](https://www.swebench.com) +- [19.0% AutoCodeRover](https://github.com/swe-bench/experiments/pull/11) - [18.0% SWE-Agent + GPT-4](https://www.swebench.com) +- [16.7% OpenDevin](https://github.com/OpenDevin/OpenDevin/issues/2149) - [11.7% SWE-Agent + Opus](https://www.swebench.com) -Note: Graph updated on 5/30/24 to accurately reflect AutoCodeRover's pass@1 results. -The previous graph contained their pass@3 result, which is not comparable -to the aider results being reported here. +Note, the graph was updated on 5/30/24 as follows. + +The graph now contains AutoCodeRover's pass@1 results. +Previously it was reporting the pass@3 results, which are +not comparable +to the pass@1 aider results being reported here. +The [AutoCodeRover GitHub page](https://github.com/nus-apr/auto-code-rover) +features the pass@3 results +without being clearly labeled. + +The graph now contains the best OpenDevin results obtained without using +the `hints_text` to provide hints to the agent. +The previous graph contained their hinted result, +which is not comparable +to the unhinted aider results being reported here. +OpenDevin's [hinted result was reported](https://x.com/gneubig/status/1791498953709752405) +without noting that hints were used. + +The [official SWE Bench Lite leaderboard](https://www.swebench.com) +only accepts pass@1 results that do not use `hints_text`. + + diff --git a/assets/swe_bench_lite.jpg b/assets/swe_bench_lite.jpg index e695a94e3083c090d0164451c1904aa0c614474d..37cfd3cdaf880d59ce3b0244e4e1c51f9d01bce4 100644 GIT binary patch literal 37930 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%0DrONRLU3 zGy+#)Du_ABfvpC&Sbl6}bjr^w6nEDAHCVl-<;xT1A8}NLpLqLaDe3##04hSUe1&Om zk=!Os@+{%3dZ@y3Q7O(b`0V!7dv$b+qM55XwN;N-g#H6fx}w*Ys8;XzD9GgY#IsuJZl1&9(M|PS;sPG+lU~c3z&v> zUbpZP1HvW_WgE2k!9>zRp7!G*jn0X(blswa=9J*^^Ov71O@Mw4PpJ;8(wJzhHHM*u z@qY2>PO=D!Y%3mWXpeeavA{)MGHNXL5@jScAFTiBj2Na?vWqGySaUpFG@9ZHBj3UY z>!v7mv2h)A#eYHrrUp0~|4MxQzZ%L#d5b2zQDmMXSB_>fX=F48M(u{ zg6IvjW?#!H;h=4m?JOHZlx$>Am5S*!6tO-=trLH~;{%JMv%=2ct?GEY4b)M8WJ42# z>6LJ5gbLQ%FoAnzeM+e!I-HzYLKf-_`rRSKsk5jVjYmDclnv zyxHP;Y{EtH)Z{HI8geU?#EA_h9@fMXk0`b-Hp04Xkrn%ofDH2skqlkAtf1E-vO%Wx;KBIjS@GW6sghpbprjP!Q0jajM7Vvr8D1-1qB3Y;*?JOiwV%bhyecGASf&xD+xfGWFL`O1!}(d zu>eYcvBthUWI>ir807Pm*k|x`y2$M>0KpKc3zsKFRehp>FyQqsmdnoV%IIl z;G+266R11B;QXc%&GWZ>qr_NcYzvuyb3D%Yx|W$%WmkXqQhR66rSJ@)BbLpqiVf$~ z*W92y4RqH7x7EDd@LI)pXe(&%b-7fEsSP=MoNr=$s;p$5x*EXqTpt5%_`^M#>}_#& zU8pvl-`>HbNFbz~2$f+R4VPi?o z4JE~BciX2SG&(j(Tj@UQtQoX+H<-}xP?vdbq_oRozw;|Gh-1(NSE|Q*snEY-&lLBR zuy}JXI!D+u!mu!0wlRh%ERe``9??Qf_{JIMGc;}MU{Ng6KrH4ZX<6rr5Bgz)|7Upc ze|oIjfP_M}yd0_>O44N769=I~7l2bua4*y9y{wu?{g=z52oKR`8&8S1z+EFWm{wXe zp~TjEpYUeqO%;!^-JQnz?Yxw%cXL1@sWo@j5tN6cw z`bI5ZaXkCEkt7r5;vAEUhI+m=wTT!b*JjZARQG;vy)}b()4x&VXB&XCM#vjFkQ-gV zvCawqzH1-e!q*c2FGVl4z7joQy9W9I(3yt98WiZfA4@wzT0L-JW$5ROs5kW3>OQ$H z04iAQi{HlJIp{^Sgp)2-;-V4xS@!dgMuHWQnOy{rl zd#FdtD(MT#x(zyEjq=nn9JWn;W}Rs!?{$%POyr-j!~I@ExV13_7|B;vg3JPZEVJFK z`iv$6;pfI}5+i2;6IAiT^DPkHb!H)p!Q}%F;mi4}KYU!iH8CreqWMH}XVd##?JNj5 z?g7s+bZs)==U)Kpc;5nTTnT?d5moAuv8ao-cc5CMx=VI$@?9c?qQ__Em?VB#F~E$o z0>ImUF>l@>{Z^*4IW1%DB}#h2ktzbqFLtC+7}4hY+%$*Moci;}QNV)i9@?h_ zgd6gj^g0>XG})Ut#S?dN zzkG!B`Q0xiVB(I>;&J@qVAFoGRSf!+wVjDlTK^E7#vw~3sck2$ZRBOEUi){Y1y?GL zN$6sdWsW06w>7DNT}BLvlCO&9x|4e?(g(gM8WL-z{_4Z*u-}rDKe^Qa)3_r9{}6O; z$?(!Nta05fd!J5D=BXUB=i_ogS0)eE>gweZx_P4vYB2YdUzYxh3){adRQ~1smb(BbHdbY zIZiKqd&Wa_2PmINk5EFly}j=JYMTf!;HCDc%mm6EMi1MoJ*8kB} zyL7t3E4|`*C`S|I!s`#t{}v?LaSeo1xh+!|f0dIilxVB5rF7D)1htt{SA`r+<4$IiW+F!UWS8fzo()Jg}6 zb~B|5?0A6bQd8&B+C5aavsjyvv>$z@xZgC+_~wIV3bW>Ksji35lZ_GJ9f2ewB%Vbu{uff70J;DG diff --git a/assets/swe_bench_lite.svg b/assets/swe_bench_lite.svg index ae6934b48..ff7a2ec84 100644 --- a/assets/swe_bench_lite.svg +++ b/assets/swe_bench_lite.svg @@ -6,7 +6,7 @@ - 2024-05-30T09:44:47.592823 + 2024-05-30T15:26:12.767905 image/svg+xml @@ -41,12 +41,12 @@ z - - + @@ -412,19 +412,89 @@ z - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -432,7 +502,7 @@ z - + - + + - + - + - + - + - - + + - + - + - + - + - - + @@ -886,49 +925,10 @@ z - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -954,7 +954,7 @@ z - + @@ -1039,16 +1039,16 @@ z +" clip-path="url(#pec64ca441b)" style="fill: none; stroke: #b0b0b0; stroke-width: 0.2; stroke-linecap: square"/> - - + @@ -1083,18 +1083,18 @@ z - + - + - + - + - + - + - + - + - + @@ -1180,18 +1180,18 @@ L 690 161.676713 - + - + - + - + - + - + @@ -1404,62 +1404,62 @@ L 690 50.4 +" clip-path="url(#pec64ca441b)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#pec64ca441b)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#pec64ca441b)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#pec64ca441b)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#pec64ca441b)" style="fill: #b3d1e6; opacity: 0.3"/> +" clip-path="url(#pec64ca441b)" style="fill: #17965a; opacity: 0.9"/> +" clip-path="url(#pec64ca441b)" style="fill: #17965a; opacity: 0.9"/> - + + + + + + + + + + + + + + - + - + - + - + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - - - - - + + + + + @@ -1775,7 +1963,7 @@ z - + diff --git a/benchmark/swe-bench-lite.txt b/benchmark/swe-bench-lite.txt index b73faad22..c49c25187 100644 --- a/benchmark/swe-bench-lite.txt +++ b/benchmark/swe-bench-lite.txt @@ -1,7 +1,7 @@ 26.3% Aider|GPT-4o|& Opus 25.0% Aider|GPT-4o -25.0% Open|Devin 20.3% Amazon Q|Developer|Agent 19.0% AutoCode|Rover 18.0% SWE-|Agent|+ GPT-4 +16.7% Open|Devin 11.7% SWE-|Agent|+ Opus diff --git a/benchmark/swe_bench_lite.py b/benchmark/swe_bench_lite.py index afa76c1d4..a3bd04820 100644 --- a/benchmark/swe_bench_lite.py +++ b/benchmark/swe_bench_lite.py @@ -22,7 +22,13 @@ def plot_swe_bench_lite(data_file): plt.rcParams["hatch.color"] = "#444444" font_color = "#555" - rc("font", **{"family": "sans-serif", "sans-serif": ["Helvetica"], "size": 10}) + font_params = { + "family": "sans-serif", + "sans-serif": ["Helvetica"], + "size": 10, + "weight": "bold", + } + rc("font", **font_params) plt.rcParams["text.color"] = font_color fig, ax = plt.subplots(figsize=(10, 5)) @@ -34,28 +40,31 @@ def plot_swe_bench_lite(data_file): colors = ["#17965A" if "Aider" in model else "#b3d1e6" for model in models] bars = [] for model, pass_rate, color in zip(models, pass_rates, colors): - alpha = 0.6 if "Aider" in model else 0.3 + alpha = 0.9 if "Aider" in model else 0.3 bar = ax.bar(model, pass_rate, color=color, alpha=alpha, zorder=3) bars.append(bar[0]) for model, bar in zip(models, bars): yval = bar.get_height() - y = yval + 0.75 if "Aider" in model else yval - 1.25 - va = "bottom" if "Aider" in model else "top" - + y = yval - 1.25 + va = "top" + color = "#eee" if "Aider" in model else "#555" + fontfamily = "Helvetica Bold" if "Aider" in model else "Helvetica" ax.text( bar.get_x() + bar.get_width() / 2, y, f"{yval}%", ha="center", va=va, - fontsize=14, + fontsize=16, + color=color, + fontfamily=fontfamily, ) # ax.set_xlabel("Models", fontsize=18) ax.set_ylabel("Instances resolved (%)", fontsize=18, color=font_color) ax.set_title("SWE Bench Lite", fontsize=20) - ax.set_ylim(0, 29.9) + # ax.set_ylim(0, 29.9) plt.xticks( fontsize=16, color=font_color,