Програмистите създават код за модели с изкуствен интелект от десетилетия, а сега самият ИИ се използва за писане на код. В проучване, публикувано в юнския брой на IEEE Transactions on Software Engineering, се оценява работата на генератора на код с изкуствен интелект ChatGPT 3.5 на OpenAI по отношение на функционалност, сложност и сигурност.
Какви са изводите?
Резултатите показват, че успехът на ChatGPT при писането на функционален код варира от 0,66% до 89% в зависимост от сложността на задачата, езика за програмиране и други фактори. Въпреки че в някои случаи ИИ може да създава код по-добре от хората, анализът разкрива и проблеми със сигурността на генерирания от ИИ код. Проучването, ръководено от Джутиан Танг, преподавател в Университета в Глазгоу, установи, че генерирането на код на базата на ИИ може да подобри производителността и да автоматизира задачите за разработване на софтуер. Важно е обаче да се разберат силните и слабите страни на тези ИИ модели. Екипът на Танг е тествал способността на ChatGPT да реши 728 задачи на платформата LeetCode на пет езика за програмиране: C, C++, Java, JavaScript и Python.
Общата успеваемост на решенията на задачите от ChatGPT е висока, особено за задачите преди 2021 година. Например, за лесни, средни и трудни задачи успеваемостта е съответно 89%, 71% и 40%. За задачите след 2021 година обаче способността на ChatGPT да генерира правилен код значително намалява – от 89% на 52% за лесни задачи и от 40% на 0,66% за трудни задачи.
Това се дължи на факта, че ChatGPT е обучен върху данни отпреди 2021 година и не е бил изложен на нови задачи и решения. На него му липсва човешко критично мислене и може да решава само задачи, които е виждал преди. Освен това ChatGPT е в състояние да генерира код с поне 50% по-бързо от човешките решения на същите задачи на LeetCode. Изследователите са проучили и способността на ChatGPT да коригира грешките си след получаване на обратна връзка от LeetCode. От 50 произволно избрани сценария, в които ChatGPT първоначално генерира неправилен код, той се справя добре с поправянето на грешки при компилиране, но не винаги успява да поправи логически грешки.
Какво означава това за ИИ?
Установено е също, че генерираният от ChatGPT код има уязвимости, като например не проверява за null, но много от тях се отстраняват лесно. Всъщност, най-сложният код е този, написан на C, следван от C++ и Python, чиято сложност е подобна на написания от човек код. За да се подобри работата на ChatGPT, разработчиците трябва да предоставят допълнителна информация и да посочват потенциални уязвимости, за да може ИИ да разбира по-добре задачите и да избягва грешки.
Въпреки че е постигнат значителен напредък в използването на ИИ за генериране на код, човешкият надзор и допълването остават важни за създаването на сигурен и функционален софтуер.
Източник: kaldata.com