notizia

In cima alla lista degli ingegneri software AI open source, la soluzione senza agente di UIUC risolve problemi di programmazione reali

2024-07-15

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

La rubrica AIxiv è una rubrica in cui Machine Heart pubblica contenuti accademici e tecnici. Negli ultimi anni, la rubrica Heart of the Machine AIxiv ha ricevuto più di 2.000 segnalazioni, riguardanti i migliori laboratori delle principali università e aziende di tutto il mondo, promuovendo efficacemente gli scambi accademici e la divulgazione. Se hai un lavoro eccellente che desideri condividere, non esitare a contribuire o contattarci per segnalarlo. E-mail di presentazione: [email protected] [email protected];

Gli autori di questo articolo fanno tutti parte del team del professor Zhang Lingming dell'Università dell'Illinois a Urbana-Champaign (UIUC), tra cui: Steven Xia, uno studente di dottorato del quarto anno, la cui direzione di ricerca è la riparazione automatica del codice basata sull'intelligenza artificiale di grandi dimensioni modelli; Deng Yinlin, uno studente di dottorato del quarto anno, la cui direzione di ricerca è la generazione di codici basati su grandi modelli di intelligenza artificiale Soren Dunn, stagista di ricerca scientifica, attualmente studente junior presso l'UIUC; L'insegnante Zhang Lingming è attualmente professore associato presso il Dipartimento di Informatica dell'UIUC, principalmente impegnato nella ricerca relativa all'ingegneria del software, all'apprendimento automatico e ai modelli di codice di grandi dimensioni.

Per informazioni più dettagliate, visitare la home page personale del Maestro Zhang: https://lingming.cs.illinois.edu/

Da quando è stato proposto Devin (il primo ingegnere del software con intelligenza artificiale completamente automatica), la progettazione dell'agente AI per l'ingegneria del software è diventata il fulcro della ricerca. Sono stati proposti sempre più ingegneri del software con intelligenza artificiale basata su agenti e hanno ottenuto risultati sul banco SWE set di dati Ha ottenuto buone prestazioni e ha risolto automaticamente molti problemi reali di GitHub.

Tuttavia, un sistema di agenti complesso comporterà ulteriori costi e incertezze. Abbiamo davvero bisogno di utilizzare un agente così complesso per risolvere i problemi di GitHub? Le soluzioni che non si affidano agli agenti possono avvicinarsi alle loro prestazioni?

Partendo da questi due problemi, il team del docente Zhang Lingming dell'Università dell'Illinois a Urbana-Champaign (UIUC) ha proposto OpenAutoCoder-Agentless, una soluzione Agent-less semplice, efficiente e completamente open source in grado di risolvere un reale problema di GitHub in soli $ 0,34. Agentless ha attirato più di 300 star di GitHub su GitHub in pochi giorni e si è classificato tra i primi tre nell'elenco settimanale dei documenti ML più interessanti di DAIR.AI.



Titolo: AGENTLESS: Demistificazione degli agenti di ingegneria software basati su LLM

Indirizzo del documento: https://huggingface.co/papers/2407.01489

Codice open source: https://github.com/OpenAutoCoder/Agentless

Il ricercatore AWS Leo Boytsov ha dichiarato: "Il framework Agentless ha sovraperformato tutte le soluzioni Agent open source e ha quasi raggiunto il livello più alto in SWE Bench Lite (27%). Inoltre, ha battuto tutte le soluzioni open source a un costo notevolmente inferiore. Il framework utilizza A L'approccio gerarchico alle query (porre domande a LLM per trovare file, classi, funzioni, ecc.) sfrutta LLM ma non consente a LLM di prendere decisioni di pianificazione."



Agentless è un approccio automatizzato ai problemi di sviluppo software che utilizza un semplice approccio in due fasi per individuare e correggere i bug nel codice base. Nella fase di localizzazione, Agentless utilizza un approccio gerarchico per restringere gradualmente il campo a file, classi/funzioni sospette e posizioni di modifica specifiche. Per la riparazione, utilizza un semplice formato diff (a cui si fa riferimento dallo strumento open source Aider) per generare più patch candidate, filtrarle e ordinarle.



I ricercatori hanno confrontato Agentless con gli agenti software AI esistenti, compresi progetti open source e commerciali/closed source all’avanguardia. Sorprendentemente, Agentless può superare tutti gli agenti software open source esistenti a un costo inferiore! Agentless risolve il 27,33% dei problemi, il valore più alto tra le soluzioni open source, e costa in media solo 0,29 dollari per risolvere ciascun problema e costa in media solo circa 0,34 dollari per tutti i problemi (compresi quelli risolvibili e irrisolti).



Non solo, ma Agentless ha il potenziale per migliorare. Agentless è in grado di risolvere il 41% dei problemi considerando tutte le patch generate, un limite superiore che indica un significativo margine di miglioramento nelle fasi di ordinamento e selezione delle patch. Inoltre, Agentless è in grado di risolvere alcuni problemi unici che nemmeno il miglior strumento commerciale (Alibaba Lingma Agent) non può risolvere, suggerendo che possa essere utilizzato come complemento agli strumenti esistenti.



Analisi del set di dati SWE-bench Lite

I ricercatori hanno anche eseguito un'ispezione manuale e un'analisi dettagliata sul set di dati SWE-bench Lite.

Lo studio ha rilevato che il 4,3% dei problemi nel set di dati SWE-bench Lite ha fornito risposte complete direttamente nella descrizione del problema, che è la patch di correzione corretta. Il restante 10% delle domande descrive i passaggi esatti per la soluzione corretta. Ciò suggerisce che alcuni problemi in SWE-bench Lite potrebbero essere più facili da risolvere.

Inoltre, il team di ricerca ha osservato che il 4,3% dei problemi includeva soluzioni o passaggi proposti dagli utenti nella descrizione del problema, ma queste soluzioni non erano coerenti con le patch effettive degli sviluppatori. Ciò rivela ulteriormente un potenziale problema con questo benchmark, poiché queste soluzioni fuorvianti possono far sì che lo strumento AI generi soluzioni errate semplicemente seguendo la descrizione del problema.

In termini di qualità della descrizione del problema, i ricercatori hanno osservato che sebbene la maggior parte delle attività in SWE-bench Lite contenga informazioni sufficienti e molte attività forniscano anche esempi di errori per riprodurre gli errori, c'è ancora il 9,3% dei problemi che non includono informazioni sufficienti. Ad esempio, è necessario implementare una nuova funzione o aggiungere un messaggio di errore, ma nella descrizione del problema non viene fornito il nome specifico della funzione o la stringa del messaggio di errore specifico. Ciò significa che anche se la funzionalità sottostante è implementata correttamente, il test fallirà se il nome della funzione o la stringa del messaggio di errore non corrispondono esattamente.



I ricercatori dell'Università di Princeton e uno degli autori di SWE-Bench hanno confermato i loro risultati alla Ofir Press: "Agentless ha eseguito una bella analisi manuale di SWE-Bench Lite. Credono che il punteggio massimo teorico su Lite possa essere del 90,7%. Penso che il limite massimo effettivo è probabilmente inferiore (circa l’80%). Alcune domande contengono informazioni insufficienti e altre domande sono troppo rigide”.



SWE-bench Lite-S: un sottoinsieme di problemi rigoroso e filtrato

In risposta a questi problemi, i ricercatori hanno proposto un rigoroso sottoinsieme di problemi SWE-bench Lite-S (contenente 252 domande). Nello specifico, abbiamo escluso da SWE-bench Lite (contenente 300 domande) quelle domande che contenevano patch esatte, soluzioni fuorvianti o che non fornivano informazioni sufficienti nella descrizione del problema. Ciò rimuove domande irragionevoli e standardizza il livello di difficoltà del benchmark. Rispetto all'originale SWE-bench Lite, il benchmark filtrato riflette in modo più accurato le reali capacità degli strumenti di sviluppo software automatizzati.

Conclusione

Sebbene lo sviluppo di software basato su agenti sia molto promettente, gli autori ritengono che sia giunto il momento per la comunità tecnologica e di ricerca di fermarsi e riflettere sui metodi chiave di progettazione e valutazione, invece di affrettarsi a rilasciare più agenti. I ricercatori sperano che Agentless possa aiutare a ripristinare la linea di base e la direzione dei futuri agenti di ingegneria del software.