Одним из главных применений искусственного интеллекта является написание компьютерного кода. И недавнее исследование, в ходе которого выяснялось, насколько хорошо ChatGPT справляется с этой задачей, показало, что он вполне неплох.
Исследование, опубликованное в июньском номере IEEE Transactions on Software Engineering, проверило GPT-3.5 на 728 задачах по написанию кода из тестовой платформы LeetCode на пяти языках программирования, включая C, C++, Java, JavaScript и Python.
На задачах, существовавших в LeetCode до 2021 года, ChatGPT решал легкие задачи в 89% случаев, задачи средней сложности — в 71% случаев, а трудные — в 40% случаев.
Однако при тестировании на задачах, которые появились в LeetCode после 2021 года, результаты решения легких, средних и трудных задач снизились до 52%, 40% и 0.66% соответственно. Изначально ChatGPT обучался на данных до 2021 года; база знаний была расширена только в конце 2023 года.
«Когда дело доходит до проблем с алгоритмами после 2021 года, способность ChatGPT генерировать функционально корректный код страдает. Иногда он не может понять смысл вопросов даже для задач легкого уровня», — говорит Ютиан Танг, преподаватель Университета Глазго, принимавший участие в исследовании. «Разумная гипотеза о том, почему ChatGPT лучше справляется с проблемами алгоритмов до 2021 года, заключается в том, что эти проблемы часто встречаются в обучающем наборе данных».
Исследователи также отмечают, что ChatGPT лучше исправляет человеческие ошибки, чем свои собственные, и может генерировать код с меньшими затратами времени выполнения и памяти в 50% случаев по сравнению с человеком. Код, сгенерированный ChatGPT, также содержал приличное количество ошибок, хотя «многие из них были легко устранимы», пишет IEEE Spectrum. «Самым сложным оказался сгенерированный код на языке C, за ним следуют C++ и Python, по сложности схожий с написанным человеком».