Amazon's SWE-PolyBench onthult een geheim over jouw AI-codingassistent
Vandaag heeft Amazon Web Services (AWS) SWE-PolyBench geïntroduceerd, een uitgebreide benchmark voor meerdere programmeertalen die ontworpen is om AI-codingassistenten te evalueren in een breed scala aan programmeertalen en real-world scenario's. Deze benchmark pakt belangrijke beperkingen aan in bestaande evaluatiekaders en biedt onderzoekers en ontwikkelaars nieuwe manieren om te beoordelen hoe effectief AI-agents complexe codebases navigeren.
“Nu hebben ze een benchmark waarop ze kunnen evalueren of de coding agents in staat zijn om complexe programmeertaken op te lossen,” zei Anoop Deoras, directeur toegepaste wetenschappen voor generatieve AI-toepassingen en ontwikkelaarservaringen bij AWS, in een interview. “De echte wereld biedt je meer complexe taken. Om een bug op te lossen of een functie toe te voegen, moet je meerdere bestanden aanpassen, in tegenstelling tot slechts één bestand.”
Deze lancering komt op een moment dat AI-gestuurde codingtools explosief in populariteit zijn toegenomen, met grote technologiebedrijven die ze integreren in ontwikkelomgevingen en zelfstandige producten. Hoewel deze tools indrukwekkende mogelijkheden tonen, blijft het een uitdaging om hun prestaties te evalueren — vooral over verschillende programmeertalen en variërende taakcomplexiteit.
SWE-PolyBench: Een uitgebreide evaluatie
SWE-PolyBench bevat meer dan 2.000 zorgvuldig samengestelde coding-uitdagingen, afgeleid van echte GitHub-issues, verspreid over vier talen: Java (165 taken), JavaScript (1.017 taken), TypeScript (729 taken) en Python (199 taken). De benchmark omvat ook een gestratificeerde subset van 500 issues, SWE-PolyBench500, die is ontworpen voor snellere experimenten.
“De diversiteit van taken en de diversiteit van programmeertalen ontbraken,” legde Deoras uit over bestaande benchmarks. “In SWE-Bench is er vandaag de dag slechts één programmeertaal, Python, en er is één taak: bugfixes. In PolyBench hebben we deze benchmark uitgebreid met drie extra talen.”
De nieuwe benchmark pakt direct de beperkingen aan van SWE-Bench, dat is uitgegroeid tot de de facto standaard voor de evaluatie van coding agents met meer dan 50 inzendingen op de ranglijst. Ondanks zijn pioniersrol richt SWE-Bench zich uitsluitend op Python-repositories, bevat voornamelijk bug-fixing taken en is het aanzienlijk scheefgetrokken naar één enkele codebase — de Django-repository is goed voor meer dan 45% van alle taken.
Een evenwichtige vertegenwoordiging van talen
“Opzettelijk hebben we besloten om een beetje oververtegenwoordiging te hebben voor JavaScript en TypeScript, omdat we al SWE-Bench hebben met Python-taken,” merkte Deoras op. “Dus in plaats van oververtegenwoordiging op Python, hebben we ervoor gezorgd dat we voldoende vertegenwoordiging hebben voor JavaScript en TypeScript, naast Java.”
Deze aanpak zorgt ervoor dat ontwikkelaars een breder scala aan codingassistenten kunnen testen, wat cruciaal is in een tijd waarin de vraag naar veelzijdige programmeertalen toeneemt. Dit helpt hen ook om de echte wereldproblemen en -uitdagingen beter te begrijpen.
Waarom eenvoudige pass/fail-metrics niet het hele verhaal vertellen
Een belangrijke innovatie in SWE-PolyBench is de introductie van meer verfijnde evaluatiemetrics, die verder gaan dan de traditionele “pass rate”, die simpelweg meet of een gegenereerde patch met succes een codingprobleem oplost.
“De evaluatie van deze coding agents is voornamelijk gedaan via de metric genaamd pass rate,” zei Deoras. “Pass rate is in het kort gewoon een proportie van de taken die met succes draaien na de toepassing van de patch die de agents produceren.”
Door deze nieuwe evaluatiemethoden kunnen onderzoekers en ontwikkelaars een dieper inzicht krijgen in de prestaties van AI-codingassistenten en hun effectiviteit in diverse situaties beter beoordelen. Dit kan ook leiden tot verbeteringen in de ontwikkeling van AI-tools, waardoor ze beter kunnen inspelen op de behoeften van programmeurs in de toekomst.
Vertaald met ChatGPT gpt-4o-mini