[ad_1]
Боффинс из Университета Иллинойса в Урбане-Шампейне заручился поддержкой ChatGPT, чат-бота OpenAI, который реагирует на письменные инструкции, для устранения ошибок в программном обеспечении без ущерба для банка.
Чунцю Стивен Ся, аспирант-исследователь, и Линмин Чжан, адъюнкт-профессор компьютерных наук, рассказывают о неожиданном окончании в названии их недавней препринтной статьи «Поддерживаем разговор: исправление 162 из 337 ошибок по 0,42 доллара США за каждую с использованием ChatGPT». .”
Вы, конечно, могли бы заплатить больше.
Два исследователя намеревались улучшить Automated Program Repair (APR), новую дисциплину, ориентированную на разработку методов автоматического исправления программных ошибок.
Они объясняют в своей статье, что традиционные методы APR, как правило, производят патчи, которым не хватает разнообразия и которые требуют ручной тонкой настройки. Более поздняя работа с LLM дала лучшие результаты, но по-прежнему использовала тот же базовый метод — создание множества исправлений из исходного входного образца с последующей проверкой каждого из них.
Они утверждают, что этот подход приводит к повторяющимся неправильным исправлениям и не позволяет извлечь уроки из своих неудач. И это имеет очень реальную стоимость с точки зрения времени и вычислительных ресурсов.
Ся и Чжан разработали автоматизированный процесс исправления ошибок, который они назвали ChatRepair, который включает информацию о сбоях тестирования программного обеспечения и учится на основе диалогового ввода, а также успехах и неудачах по ходу дела. Это немного сложнее, чем сказать: «Исправь свои ошибки, HAL» — как видно из иллюстрации, прилагаемой к статье, — но, возможно, предпочтительнее загадочного сообщения об ошибке.

Диаграмма потока разговора ChatRepair — нажмите, чтобы увеличить
«Вместо того, чтобы напрямую генерировать исправления на основе кода с ошибками, как это делают существующие методы APR на основе LLM, ChatRepair дополнительно предоставляет ценную информацию об ошибках тестирования, чтобы дополнительно помочь LLM в создании исправлений», — объясняют ученые в своей статье.
«Более того, вместо непрерывной выборки из одной и той же подсказки, как это делают предыдущие методы APR на основе LLM, ChatRepair отслеживает историю разговоров и дополнительно учится на предыдущих неудачных и успешных попытках исправления одной и той же ошибки с помощью подсказок».
Код может быть неправильным, но он полезен
Включив неправильные исправления с соответствующими данными об ошибках тестирования, Ся и Чжан показали, что они могут уточнить подсказки, поступающие в ChatRepair, по мере того, как модель отрабатывает улучшения кода. Это позволяет избежать повторения одних и тех же ошибок снова и снова, а также создает вариации правдоподобных исправлений, которые увеличивают вероятность правильного исправления.
В электронном письме к Регистр — написано не ChatGPT, нас уверяют — Ся сказал, что включение данных о сбоях тестов значительно способствовало улучшению ChatRepair.
«Мы заметили, что добавление полезной информации, такой как ошибка сбоя теста или даже имя самого сбойного теста, может предоставить дополнительную информацию, такую как тип ошибки (например, исключение нулевого указателя) и ожидаемое правильное поведение кода», — пояснил он. «По сравнению с предыдущими инструментами APR, которые не используют такую информацию об ошибках тестирования, ChatRepair использует мощную способность понимания ChatGPT для исправления большего количества ошибок».
Ся сказал, что ценность включения этой информации можно увидеть в базовом сравнении, которое включало запуск ChatGPT без данных о неудачных тестах. По его словам, доступ к данным о неудачных тестах увеличил количество исправленных ошибок более чем на 40 процентов.
Более того, не создавая повторно одни и те же неэффективные исправления, исследователи могут избежать затрат на избыточные вызовы API и напрасную трату времени на выполнение GPU — общая проблема для тех, кто исследует, как они могут интегрировать модели OpenAI в свои продукты.
«Чтобы снизить стоимость, мы используем диалоговый аспект ChatGPT, где он может отслеживать предыдущие результаты и корректировать свое будущее поколение на основе предыдущей истории и отзывов, предоставленных нами (информация об ошибках тестирования)», — пояснил Ся.
«Мы используем эту возможность, чтобы предоставить ChatGPT ранее сгенерированные неверные исправления, поэтому мы можем избежать повторной выборки одних и тех же неправильных исправлений снова и снова и сократить количество образцов и затраты на исправление ошибки».
Ся сказал, что, хотя APR стремится полностью автоматизировать исправление программных ошибок с минимальными усилиями разработчиков, до этой цели еще далеко.
«ChatRepair впервые показал, что такой процесс восстановления может быть разговором», — сказал Ся. «Я считаю, что мы можем добиться еще большей производительности, привлекая к работе разработчика-человека, чтобы ускорить процесс ремонта».
«Чтобы сделать это, будущая работа определенно должна быть больше сосредоточена на динамике между мощными LLM, такими как ChatGPT, и человеческими разработчиками, чтобы дополнительно добавить человеческую интуицию и понимание базы кода для более эффективного совместного исправления ошибок». ®
[ad_2]