ИИ в разработке ПО: как ИИ помогает аннотировать код

Будущее, где искусственный интеллект (ИИ) полностью заменяет человеческое принятие решений, давно стало сюжетом научной фантастики. Однако вместо того, чтобы опасаться автоматизации, полезнее рассмотреть, какие рутинные задачи можно безопасно делегировать ИИ, особенно с учетом достижений больших языковых моделей (LLM). Эти модели способны обрабатывать огромные объемы данных, выявлять закономерности и делать прогнозы.

Именно этой области посвящено исследование профессора компьютерных наук Кристофа Треуда из Сингапурского университета управления (SMU). Команда изучает потенциал LLM в аннотировании артефактов разработки программного обеспечения — процесс, который вручную требует значительных затрат времени и средств.

«Наша работа исследовала, когда и как LLM могут сократить, а не заменить, человеческие усилия при аннотировании в разработке ПО», — говорит профессор Треуд о своей статье, получившей награду ACM SIGSOFT Distinguished Paper Award на конференции MSR2025.

«Мы проанализировали 10 предыдущих исследований, где несколько человек аннотировали одни и те же образцы, включая субъективные задачи, такие как оценка качества сводок кода. Мы обнаружили, что для задач с низким уровнем контекста и дедуктивным характером LLM может безопасно заменить одного человека, экономя усилия без потери надежности. Однако для задач с высоким уровнем контекста LLM ненадежны».

«Наше исследование уже неоднократно цитировалось как руководство по интеграции LLM в рабочие процессы аннотирования, хотя иногда его неверно истолковывают как одобрение полной замены людей моделями, чего мы явно предостерегаем».

Процесс аннотирования в разработке ПО

«Такой вид аннотирования присваивает артефактам предопределенные метки, когда качество или смысл нельзя оценить простыми метриками. Например, является ли сгенерированная сводка кода точной, адекватной, лаконичной и аналогичной», — объясняет профессор Треуд. «Эти аннотированные данные позволяют исследователям оценивать инструменты, анализировать поведение разработчиков или обучать новые модели».

В рамках исследования оценщики работали парами, и степень их согласия оценивалась. «Их согласие отражает надежность меток», — поясняет профессор Треуд. «Наше исследование сравнивает согласие между людьми, между человеком и моделью, а также между моделями, чтобы увидеть, ведут ли LLM себя подобно людям-оценщикам».

Перед тем как LLM приступили к разметке, исследователи предоставили им несколько примеров корректных пар «вход-выход». «Эти «few-shot» подсказки действуют как короткие обучающие примеры, помогая модели освоить стиль разметки и повысить согласованность. Это общепринятая лучшая практика в исследованиях LLM», — отмечает профессор Треуд.

Исследователи сравнивали различные большие языковые модели, включая GPT-4, Claude 3.5 и Gemini 1.5. Была ли среди них выделяющаяся? «Новые, более мощные модели демонстрируют немного более высокую согласованность, но главный сигнал — это согласие между моделями. Когда несколько способных LLM независимо друг от друга приходят к одному выводу, задача, вероятно, подходит для некоторой автоматизации, независимо от конкретной используемой модели», — заключает профессор Треуд.

Для каких задач LLM наиболее подходят для замены человеческого труда?

«LLM хорошо работают для задач дедуктивной разметки с низким уровнем контекста, где есть четкие, заранее определенные категории, такие как проверка соответствия имени переменной ее значению или оценка качества сводки кода», — говорит профессор Треуд. «Они испытывают трудности с задачами, требующими высокого контекста, например, с определением того, был ли отчет об ошибке действительно устранен. В нашем наборе данных из 10 задач семь позволили безопасно заменить одного человека».

Ситуационная осведомленность

Согласно исследователям, согласие между моделями является предиктором того, подходит ли данная задача для LLM. «Мы обнаружили сильную положительную корреляцию между согласием между моделями и согласием между моделью и человеком. Другими словами, когда несколько моделей дают одинаковый ответ, они обычно совпадают и с человеческим суждением», — отмечает профессор Треуд. «Высокое согласие между моделями может указывать на то, что LLM способны хорошо выполнять задачу, в то время как низкое согласие является ранним предупреждением о необходимости избегать автоматизации».

Исследователи считают небезопасным заменять LLM людей в задачах с высоким уровнем контекста, например, при работе с предупреждениями статического анализа, которые выявляют потенциальные проблемы в исходном коде, такие как ошибки, уязвимости безопасности и нарушения стандартов кодирования. «Эта задача требует существенного понимания контекста: анализ изменений кода, истории проекта и семантики предупреждений. Люди достигают высокого уровня согласия, но модели работают плохо. Это демонстрирует, что LLM все еще не хватает глубокого понимания ситуации, необходимого для сложных задач разработки ПО», — подчеркивает профессор Треуд.

Хотя людей можно заменить в отдельных случаях, существуют риски. «Высокое согласие не устраняет предвзятости. LLM могут систематически ошибаться в одном направлении: например, всегда присваивать более высокие оценки качества или усиливать паттерны из своих обучающих данных», — предупреждает профессор Треуд. «Существует также методологический риск чрезмерного обобщения этих выводов на другие качественные методы. В определенной степени LLM могут поддерживать дедуктивное кодирование, но они не могут заменить рефлексивность и интерпретацию, которые являются центральными для качественных исследований разработки ПО. Наш подход прагматичен: использовать LLM для ускорения аннотирования там, где это безопасно, а не для устранения человеческого суждения».

За пределами сценария

«Наше исследование является первым, которое систематически оценивает замену LLM в задачах аннотирования разработки ПО и различных LLM», — отмечает профессор Треуд. «Мы ввели два основанных на данных предиктора пригодности задач и выбора образцов: согласие между моделями (как часто две LLM независимо соглашаются) и уверенность модели (насколько модель уверена в своей метке). Вместе эти предикторы определяют двухэтапный рабочий процесс для принятия решения о целесообразности помощи LLM: сначала для задачи, затем для каждого образца».

Однако исследователи осознают ограничения своего исследования. «Мы сосредоточились на узком аспекте аннотирования: дискретной маркировке с множественным выбором и предопределенными категориями на выбранных образцах», — говорит профессор Треуд. «Мы не изучали интерпретационный анализ в свободной форме, непрерывные рейтинги или выходные данные в виде свободного текста. Мы также не тестировали демографическую предвзятость, продольное смещение модели или вариативность подсказок. Следовательно, наши результаты применимы конкретно к структурированному, дедуктивному аннотированию».

Исследователи описывают свою работу как первый шаг. «Следующий шаг — выйти за рамки сценария замены одного аннотатора. Мы планируем исследовать ситуации, где категории аннотирования не предопределены и где модели должны работать с открытыми или развивающимися кодовыми книгами. Мы также изучаем другие типы задач разработки ПО, чтобы проверить, сохраняются ли те же закономерности надежности», — добавляет профессор Треуд. «В более широком смысле, это часть более крупной исследовательской повестки дня по использованию ИИ в науке, изучающей, как эти модели могут помогать и где они терпят неудачу в различных качественных методах, таких как тематический анализ, обоснованная теория или кодирование интервью».

Комментарии

Комментариев пока нет.

Информация

Опубликовано: 28 ноября 2025
Категория:
Просмотров: 11