В Інституті інженерів з електротехніки та електроніки (Institute of Electrical and Electronics Engineers, IEEE) вирішили перевірити, як генератор коду на базі ШІ вміє програмувати у порівнянні з людиною-програмістом.

Дослідження, опубліковане в червневому випуску IEEE Transactions on Software Engineering, оцінювало код, створений ChatGPT від OpenAI, з точки зору функціональності, складності та безпеки. Результати показали, що ChatGPT демонструє доволі непогані результати, коли справа доходить до створення функціонального коду − з показником успішності від 0,66% до 89%, залежно від складності завдання, мови програмування та низки інших факторів. І хоча в деяких випадках ШІ-генератор може створювати кращий код, ніж людина, аналіз також виявив деякі проблеми з безпекою коду, створеного за допомогою штучного інтелекту.

У дослідженні було протестовано  можливості ChatGPT-3.5 на 728 задачах кодування з тестової платформи LeetCode на п'яти мовах програмування: C, C++, Java, JavaScript та Python.

Виявилося, що загалом, ChatGPT досить добре вирішував проблеми на різних мовах програмування − але в основному, коли мова йшла про завдання по кодуванню, які були опубліковані на LeetCode до 2021 року. Наприклад, він зміг створити функціональний код для легких, середніх і складних завдань з показниками успішності близько 89, 71 і 40 відсотків відповідно.

Однак, коли справа доходить до завдань про програмуванню після 2021 року, здатність ChatGPT генерувати функціонально правильний код страждає. Іноді ШІ не розуміє сенсу запитань, навіть коли мова йде про завдання легкого рівня. Наприклад, здатність ChatGPT створювати функціональний код для «легких» завдань знизилася з 89% до 52% після 2021 року. Водночас здатність генерувати функціональний код для «складних» завдань впала з 40% до 0,66%. Але цікаво, що ChatGPT здатен генерувати код з меншими витратами часу на виконання та споживанням ресурсів пам'яті, ніж принаймні 50 відсотків людських рішень для тих самих завдань LeetCode.

Дослідники також вивчили здатність ChatGPT виправляти власні помилки кодування після отримання зворотного зв'язку від LeetCode. Вони випадковим чином вибрали 50 сценаріїв кодування, в яких ChatGPT спочатку згенерував неправильне кодування, або через те, що не зрозумів змісту або проблеми, що виникла. Хоча ChatGPT добре виправляв помилки компіляції, він, як правило, не дуже добре виправляв свої власні помилки... Дослідники також виявили, що код, згенерований ChatGPT, мав досить багато вразливостей, таких як відсутність нульового тесту, але багато з них можна було легко виправити.