Искусственный интеллект, представленный в виде чат-бота ChatGPT, продемонстрировал высокую эффективность в решении задач по кодированию, существовавших до 2021 года, но столкнулся с трудностями при работе с более новыми проблемами. К такому выводу пришли исследователи в ходе всестороннего анализа возможностей ChatGPT в генерации функционального программного кода.
Исследование, опубликованное в IEEE Transactions on Software Engineering, оценило способность ChatGPT создавать код на пяти языках программирования - C, C++, Java, JavaScript и Python. Для этого ученые проверили решение ИИ-моделью 728 задач на популярной платформе для практики кодирования LeetCode.
Результаты показали, что ChatGPT продемонстрировал впечатляющие результаты при решении проблем алгоритмов, существовавших на LeetCode до 2021 года. Так, коэффициент успешности для "легких" задач составил около 89%, для "средних" – 71%, а для "сложных" – 40%.
Однако ситуация кардинально изменилась, когда ChatGPT столкнулся с более новыми задачами по кодированию, добавленными на платформу после 2021 года. "Способность ChatGPT генерировать функционально корректный код страдает. Он иногда не может даже понять смысл вопросов для легких задач", – отмечает Ютиан Танг, преподаватель Университета Глазго и участник исследования.
Так, коэффициент успешности ChatGPT при решении "легких" задач после 2021 года упал с 89% до 52%, а для "сложных" – с 40% до всего 0,66%. "Разумная гипотеза о том, почему ChatGPT лучше справляется с проблемами алгоритмов до 2021 года, заключается в том, что эти проблемы часто встречаются в обучающем наборе данных", – объясняет Танг.
Другими словами, ChatGPT хорошо решает только те задачи, с которыми уже сталкивался ранее, но не обладает навыками критического мышления, присущими человеку, чтобы справляться с новыми, ранее неизвестными проблемами.
Исследователи также выявили, что сгенерированный ChatGPT код имеет определенные проблемы с безопасностью, например, отсутствие нулевого теста. Однако многие из такого рода уязвимостей оказались легко устранимыми.
По словам Танга, для более эффективного использования ChatGPT в разработке программного обеспечения важно, чтобы разработчики предоставляли ИИ-модели дополнительную информацию, которая поможет ей лучше понимать проблемы и избегать уязвимостей в коде. Это позволит раскрыть потенциал ChatGPT в автоматизации и повышении производительности процессов разработки.