Новости

Возглавляющее список разработчиков программного обеспечения для искусственного интеллекта с открытым исходным кодом, безагентное решение UIUC решает реальные проблемы программирования.

2024-07-15

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

Колонка AIxiv — это колонка, в которой Machine Heart публикует академический и технический контент. За последние несколько лет колонка Heart of the Machine AIxiv получила более 2000 отчетов, охватывающих ведущие лаборатории крупнейших университетов и компаний по всему миру, что эффективно способствует академическому обмену и распространению информации. Если у вас есть отличная работа, которой вы хотите поделиться, пожалуйста, внесите свой вклад или свяжитесь с нами для отчета. Электронная почта для отправки: [email protected];

Все авторы этой статьи — члены команды профессора Чжан Линмина из Университета Иллинойса в Урбана-Шампейн (UIUC), в том числе: Стивен Ся, аспирант четвертого курса, направлением исследований которого является автоматическое восстановление кода на основе больших объемов искусственного интеллекта. модели Дэн Иньлинь, аспирант четвертого курса, направление исследований которого — генерация кода на основе больших моделей искусственного интеллекта Сорен Данн, научный исследователь-стажер, в настоящее время студент UIUC; Преподаватель Чжан Линмин в настоящее время является доцентом кафедры компьютерных наук UIUC и в основном занимается исследованиями, связанными с разработкой программного обеспечения, машинным обучением и моделями большого кода.

Для получения более подробной информации посетите личную домашнюю страницу Учителя Чжана: https://lingming.cs.illinois.edu/

С тех пор, как был предложен Девин (первый полностью автоматический инженер-программист ИИ), разработка ИИ-агента для разработки программного обеспечения оказалась в центре внимания исследований. Все больше и больше инженеров по автоматическому программному обеспечению ИИ на основе агентов предлагались и добивались результатов на стенде SWE. набора данных. Он достиг хорошей производительности и автоматически исправил многие реальные проблемы GitHub.

Однако сложная система агентов приведет к дополнительным накладным расходам и неопределенности. Действительно ли нам нужно использовать такой сложный агент для решения проблем GitHub? Могут ли решения, не полагающиеся на агентов, приблизиться к своей эффективности?

Исходя из этих двух проблем, команда преподавателей Чжан Линмин из Университета Иллинойса в Урбана-Шампейн (UIUC) предложила OpenAutoCoder-Agentless, простое, эффективное и полностью открытое решение без агентов, которое может решить реальную проблему GitHub всего за 0,34 доллара США. Agentless привлек более 300 звезд GitHub на GitHub всего за несколько дней и вошел в тройку лучших еженедельных статей по машинному обучению DAIR.AI.



Перевод: AGENTLESS: Разоблачение агентов разработки программного обеспечения на основе LLM

Адрес бумаги: https://huggingface.co/papers/2407.01489.

Открытый исходный код: https://github.com/OpenAutoCoder/Agentless.

Ученый-исследователь AWS Лео Бойцов сказал: «Безагентная платформа превзошла все решения Agent с открытым исходным кодом и почти достигла самого высокого уровня в SWE Bench Lite (27%). Более того, она превзошла все решения с открытым исходным кодом при значительно более низкой стоимости. Фреймворк использует A подход иерархических запросов (задание вопросов LLM для поиска файлов, классов, функций и т. д.) использует LLM, но не позволяет LLM принимать решения по планированию».



Безагентный подход — это автоматизированный подход к решению проблем разработки программного обеспечения, в котором используется простой двухэтапный подход для обнаружения и исправления ошибок в базе кода. На этапе поиска безагентный подход использует иерархический подход, чтобы постепенно сузить список до подозрительных файлов, классов/функций и конкретных мест редактирования. Для восстановления он использует простой формат различий (на который ссылается инструмент с открытым исходным кодом Aider) для создания нескольких потенциальных патчей, их фильтрации и сортировки.



Исследователи сравнили Agentless с существующими программными агентами искусственного интеллекта, включая современные проекты с открытым исходным кодом и коммерческие/закрытые проекты. Удивительно, но Agentless может превзойти все существующие программные агенты с открытым исходным кодом при меньших затратах! Безагентное решение решает 27,33% проблем, что является самым высоким показателем среди решений с открытым исходным кодом, и в среднем решение каждой проблемы обходится всего в 0,29 доллара США, а для всех проблем (включая решаемые и нерешенные) в среднем стоит всего около 0,34 доллара США.



Мало того, у Agentless есть потенциал для улучшения. Безагентное решение может решить 41% проблем при рассмотрении всех сгенерированных исправлений. Это верхняя граница, которая указывает на значительные возможности для улучшения на этапах сортировки и выбора исправлений. Кроме того, Agentless способен решать некоторые уникальные проблемы, которые не может решить даже лучший коммерческий инструмент (Alibaba Lingma Agent), что позволяет предположить, что его можно использовать в качестве дополнения к существующим инструментам.



Анализ набора данных SWE-bench Lite

Исследователи также провели ручную проверку и детальный анализ набора данных SWE-bench Lite.

Исследование показало, что 4,3% проблем в наборе данных SWE-bench Lite дали полные ответы непосредственно в описании проблемы, что представляет собой правильный патч исправления. Остальные 10% вопросов описывают точные шаги к правильному решению. Это говорит о том, что некоторые проблемы в SWE-bench Lite решить будет проще.

Кроме того, исследовательская группа отметила, что 4,3% проблем включали в себя предложенные пользователями решения или шаги в описании проблемы, но эти решения не соответствовали фактическим исправлениям разработчиков. Это дополнительно выявляет потенциальную проблему с этим тестом, поскольку эти вводящие в заблуждение решения могут привести к тому, что инструмент искусственного интеллекта будет генерировать неверные решения, просто следуя описанию проблемы.

Что касается качества описания проблем, исследователи заметили, что, хотя большинство задач в SWE-bench Lite содержат достаточную информацию, а многие задачи также содержат примеры неудач для воспроизведения ошибок, все еще существует 9,3% задач, которые не включают достаточно информации. Например, вам нужно реализовать новую функцию или добавить сообщение об ошибке, но в описании проблемы не указано конкретное имя функции или конкретная строка сообщения об ошибке. Это означает, что даже если базовая функциональность реализована правильно, тест завершится неудачно, если имя функции или строка сообщения об ошибке не будут точно совпадать.



Исследователи из Принстонского университета и один из авторов SWE-Bench подтвердили Ofir Press свои выводы: «Agentless провел хороший ручной анализ SWE-bench Lite. Они считают, что теоретический максимальный балл на Lite может составлять 90,7%. Я думаю, что фактический верхний предел, вероятно, ниже (около 80%). По некоторым вопросам недостаточно информации, а другие вопросы слишком строгие».



SWE-bench Lite-S: строгий, отфильтрованный подмножество задач

В ответ на эти проблемы исследователи предложили строгое подмножество задач SWE-bench Lite-S (содержащее 252 вопроса). В частности, из SWE-bench Lite (содержащего 300 вопросов) мы исключили те вопросы, которые содержали точные исправления, вводящие в заблуждение решения или не содержали достаточной информации в описании проблемы. Это снимает необоснованные вопросы и стандартизирует уровень сложности бенчмарка. По сравнению с исходным SWE-bench Lite, отфильтрованный тест более точно отражает истинные возможности инструментов автоматизированной разработки программного обеспечения.

Заключение

Хотя разработка программного обеспечения на основе агентов очень перспективна, авторы считают, что технологическому и исследовательскому сообществу пора остановиться и подумать о ключевых методах проектирования и оценки, а не спешить с выпуском большего количества агентов. Исследователи надеются, что Agentless поможет изменить базовый уровень и направление развития будущих агентов разработки программного обеспечения.