noticias

Encabezando la lista de ingenieros de software de IA de código abierto, la solución sin agentes de UIUC resuelve problemas de programación reales

2024-07-15

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

La columna AIxiv es una columna donde Machine Heart publica contenido académico y técnico. En los últimos años, la columna Heart of the Machine AIxiv ha recibido más de 2.000 informes, que cubren los mejores laboratorios de las principales universidades y empresas de todo el mundo, promoviendo eficazmente los intercambios y la difusión académicos. Si tiene un trabajo excelente que desea compartir, no dude en contribuir o contactarnos para informarnos. Correo electrónico de envío: [email protected]; [email protected];

Todos los autores de este artículo pertenecen al equipo del profesor Zhang Lingming de la Universidad de Illinois en Urbana-Champaign (UIUC), incluido: Steven Xia, un estudiante de doctorado de cuarto año, cuya dirección de investigación es la reparación automática de códigos basada en IA de gran tamaño. modelos Deng Yinlin, estudiante de doctorado de cuarto año, cuya dirección de investigación es la generación de código basada en grandes modelos de IA. Soren Dunn, pasante de investigación científica, actualmente estudiante junior en UIUC; El profesor Zhang Lingming es actualmente profesor asociado en el Departamento de Ciencias de la Computación de UIUC y se dedica principalmente a investigaciones relacionadas con la ingeniería de software, el aprendizaje automático y los modelos de código grande.

Para obtener información más detallada, visite la página de inicio personal del profesor Zhang: https://lingming.cs.illinois.edu/

Desde que se propuso Devin (el primer ingeniero de software de IA totalmente automático), el diseño de AI Agent para la ingeniería de software se ha convertido en el foco de la investigación. Cada vez más ingenieros de software de IA automáticos basados ​​en agentes han propuesto y logrado resultados en el banco SWE. conjunto de datos. Ha logrado un buen rendimiento y solucionó automáticamente muchos problemas reales de GitHub.

Sin embargo, un sistema de Agente complejo generará incertidumbre y gastos generales adicionales. ¿Realmente necesitamos utilizar un Agente tan complejo para resolver los problemas de GitHub? ¿Pueden las soluciones que no dependen de agentes acercarse a su rendimiento?

A partir de estos dos problemas, el equipo del profesor Zhang Lingming de la Universidad de Illinois en Urbana-Champaign (UIUC) propuso OpenAutoCoder-Agentless, una solución sin agente simple, eficiente y completamente de código abierto que puede resolver un problema real de GitHub por solo $0,34. Agentless ha atraído a más de 300 estrellas de GitHub en GitHub en solo unos días y se ha clasificado entre los tres primeros de la lista semanal de artículos de aprendizaje automático más populares de DAIR.AI.



Título: AGENTLESS: Desmitificando los agentes de ingeniería de software basados ​​en LLM

Dirección del artículo: https://huggingface.co/papers/2407.01489

Código fuente abierto: https://github.com/OpenAutoCoder/Agentless

El científico investigador de AWS Leo Boytsov dijo: "El marco Agentless superó a todas las soluciones de agentes de código abierto y casi alcanzó el nivel más alto en SWE Bench Lite (27%). Además, superó a todas las soluciones de código abierto a un costo significativamente menor. El marco utiliza A El enfoque de consulta jerárquica (hacer preguntas de LLM para encontrar archivos, clases, funciones, etc.) aprovecha LLM pero no permite que LLM tome decisiones de planificación".



Agentless es un enfoque automatizado para los problemas de desarrollo de software que utiliza un enfoque simple de dos fases para localizar y corregir errores en su código base. En la fase de localización, Agentless utiliza un enfoque jerárquico para limitar gradualmente los archivos, clases/funciones y ubicaciones de edición específicas sospechosas. Para la reparación, utiliza un formato de diferenciación simple (al que se hace referencia en la herramienta de código abierto Aider) para generar múltiples parches candidatos, filtrarlos y ordenarlos.



Los investigadores compararon Agentless con los agentes de software de IA existentes, incluidos proyectos de código abierto y comerciales/cerrados de última generación. Sorprendentemente, Agentless puede superar a todos los agentes de software de código abierto existentes a un costo menor. Agentless resuelve el 27,33% de los problemas, la cifra más alta entre las soluciones de código abierto, y solo cuesta $0,29 en promedio resolver cada problema, y ​​solo cuesta alrededor de $0,34 en promedio en todos los problemas (incluidos los que tienen solución y los que no están resueltos).



No sólo eso, Agentless tiene el potencial de mejorar. Agentless puede resolver el 41% de los problemas al considerar todos los parches generados, un límite superior que indica un margen de mejora significativo en las etapas de clasificación y selección de parches. Además, Agentless es capaz de resolver algunos problemas únicos que ni siquiera la mejor herramienta comercial (Alibaba Lingma Agent) puede resolver, lo que sugiere que puede utilizarse como complemento de las herramientas existentes.



Análisis del conjunto de datos SWE-bench Lite

Los investigadores también realizaron inspecciones manuales y análisis detallados del conjunto de datos SWE-bench Lite.

El estudio encontró que el 4,3% de los problemas en el conjunto de datos de SWE-bench Lite dieron respuestas completas directamente en la descripción del problema, que es el parche de solución correcto. El otro 10% de las preguntas describe los pasos exactos para llegar a la solución correcta. Esto sugiere que algunos problemas en SWE-bench Lite pueden ser más fáciles de resolver.

Además, el equipo de investigación observó que el 4,3% de los problemas incluían soluciones o pasos propuestos por los usuarios en la descripción del problema, pero estas soluciones no eran consistentes con los parches reales de los desarrolladores. Esto revela aún más un problema potencial con este punto de referencia, ya que estas soluciones engañosas pueden hacer que la herramienta de inteligencia artificial genere soluciones incorrectas simplemente siguiendo la descripción del problema.

En términos de calidad de la descripción del problema, los investigadores observaron que aunque la mayoría de las tareas en SWE-bench Lite contienen suficiente información, y muchas tareas también proporcionan ejemplos de fallas para reproducir errores, todavía hay un 9,3% de problemas que no incluyen suficiente información. Por ejemplo, necesita implementar una nueva función o agregar un mensaje de error, pero el nombre de la función específica o la cadena del mensaje de error específico no se proporcionan en la descripción del problema. Esto significa que incluso si la funcionalidad subyacente se implementa correctamente, la prueba fallará si el nombre de la función o la cadena del mensaje de error no coinciden exactamente.



Investigadores de la Universidad de Princeton y uno de los autores de SWE-Bench confirmaron sus hallazgos a Ofir Press: "Agentless realizó un excelente análisis manual de SWE-bench Lite. Creen que la puntuación máxima teórica en Lite puede ser del 90,7%. Creo que El límite superior real probablemente sea más bajo (alrededor del 80%). Algunas preguntas no tienen información suficiente y otras son demasiado estrictas”.



SWE-bench Lite-S: un subconjunto de problemas estricto y filtrado

En respuesta a estos problemas, los investigadores propusieron un subconjunto de problemas estrictos SWE-bench Lite-S (que contiene 252 preguntas). Específicamente, excluimos de SWE-bench Lite (que contiene 300 preguntas) aquellas preguntas que contenían parches exactos, soluciones engañosas o que no proporcionaban suficiente información en la descripción del problema. Esto elimina preguntas irrazonables y estandariza el nivel de dificultad del punto de referencia. En comparación con el SWE-bench Lite original, el punto de referencia filtrado refleja con mayor precisión las verdaderas capacidades de las herramientas de desarrollo de software automatizadas.

Conclusión

Aunque el desarrollo de software basado en agentes es muy prometedor, los autores creen que es hora de que la comunidad tecnológica y de investigación se detenga y piense en sus métodos clave de diseño y evaluación, en lugar de apresurarse a lanzar más agentes. Los investigadores esperan que Agentless pueda ayudar a restablecer la línea de base y la dirección de los futuros agentes de ingeniería de software.