Співпрограмісти штучного інтелекту, можливо, не породять стільки помилок, скільки побоюється PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Співпрограмісти штучного інтелекту, можливо, не створять стільки помилок, скільки побоюються

Моделі машинного навчання, які використовують такі інструменти завершення коду наступного покоління, як GitHub Copilot, можуть допомогти розробникам програмного забезпечення писати більш функціональний код, не роблячи його менш безпечним.

Це попередні результати хоч і невеликого опитування 58 осіб, проведеного групою комп’ютерників Нью-Йоркського університету.

In папір поширений через ArXiv, Густаво Сандовал, Хаммонд Пірс, Тео Ніс, Рамеш Каррі, Брендан Долан-Гавітт і Сіддхарт Гарг розповідають, як вони перевіряють безпеку вихідного коду, створеного за допомогою великих мовних моделей (LLM).

LLM, як-от сімейство OpenAI GPT, навчалися на величезній кількості загальнодоступних текстових даних або загальнодоступного вихідного коду у випадку Codex OpenAI, нащадка GPT і основи Copilot GitHub. Таким чином, вони можуть відтворювати помилки, зроблені в минулому програмістами-людьми, ілюструючи принцип «сміття входить, сміття виходить». Існував страх, що ці інструменти вивержуть і запропонують поганий код розробникам, які вставлять це у свої проекти.

Більше того, безпека коду може бути контекстною: код, безпечний ізольовано, може бути небезпечним, якщо його виконувати в певній послідовності з іншим програмним забезпеченням. Таким чином, ці інструменти автозаповнення можуть пропонувати пропозиції коду, які самі по собі непогані, але пов’язані з іншим кодом, тепер уразливі для атак або просто зламані. Тим не менш, виявляється, що ці інструменти насправді не можуть погіршити програмування людей.

У певному сенсі дослідники гасили власну пожежу. Приблизно рік тому двоє тих самих комп’ютерників написали статтю під назвою «Sleep at the Keyboard? Оцінка безпеки внесків коду GitHub Copilot». Та робота знайшлася близько 40 відсотка вихідних даних Copilot включав недоліки, які потенційно можна використати (CWE).

«Різниця між двома документами полягає в тому, що «Заснув за клавіатурою» розглядав повністю автоматизовану генерацію коду (без людини в циклі), і у нас не було людей, з якими можна порівнювати, тому ми не могли нічого сказати про те, як безпека Copilot порівняно з безпекою коду, написаного людиною», – сказав Брендан Долан-Гавітт, співавтор обох документів і доцент кафедри комп’ютерних наук та інженерії Нью-Йоркського університету Тандон, в електронному листі до Реєстр.

«Дослідження користувача намагається безпосередньо вирішити ці відсутні частини, залучаючи половину користувачів до допомоги Codex (моделі, яка підтримує Copilot), а іншу половину — написання коду самостійно. Однак він також вужчий, ніж «Заснув за клавіатурою»: ми розглянули лише одне завдання й одну мову (написання пов’язаного списку на C)».

В останньому звіті «Вплив на безпеку помічників коду великої мовної моделі: дослідження користувача» дещо різний набір дослідників Нью-Йоркського університету визнає, що попередні роботи не змоделювали використання таких інструментів на базі LLM, як Copilot.

«По-перше, ці дослідження припускають, що весь код автоматично генерується LLM (ми будемо називати це режимом автопілота)», — пояснюють бофіни у своїй статті.

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

По-друге, вони помічають, що хоча LLM, як було показано, створюють помилковий код, люди також роблять це. Помилки в даних навчання LLM походять від людей.

Тож замість того, щоб самостійно оцінювати помилки коду, створеного LLM, вони вирішили порівняти, чим код, створений розробниками-людьми за допомогою моделей машинного навчання, відрізняється від коду, створеного програмуванням, що працює самостійно.

Вчені з інформатики Нью-Йоркського університету набрали 58 учасників опитування – студентів і аспірантів курсів розробки програмного забезпечення – і розділили їх на контрольну групу, яка працюватиме без пропозицій, і групу допомоги, яка мала доступ до спеціальної системи пропозицій, створеної за допомогою OpenAI. Codex API. Вони також використали модель Codex для створення 30 рішень заданих проблем програмування як точки порівняння. Ця група автопілота функціонувала в основному як друга контрольна група.

І групам допомоги, і групі контролю було дозволено звертатися до веб-ресурсів, таких як Google і Stack Overflow, але не просити інших про допомогу. Робота була виконана в Visual Studio Code в веб-контейнері, створеному з відкритим кодом Анубіс.

Учасників попросили заповнити програму списку покупок, використовуючи мову програмування C, тому що «розробникам легко ненавмисно виразити вразливі шаблони проектування в C», а також тому, що використовуваний ланцюжок інструментів компілятора C не перевіряє помилки в тій же мірі, що ланцюжки інструментів для сучасні мови, такі як Go і Rust, роблять.

Коли дослідники вручну проаналізували код, створений групами Control і Assistant, вони виявили, що, на відміну від попередньої роботи, пропозиції коду AI не погіршили ситуацію в цілому.

Виглядає чітко, але є деталі

«[Ми] не знайшли жодних доказів того, що допомога Codex збільшує кількість помилок безпеки», — йдеться в документі, водночас зазначаючи, що невеликий розмір вибірки дослідження означає, що подальше дослідження є виправданим. «Навпаки, є деякі докази того, що CWE/LoC [рядки коду] зменшуються за допомогою Codex».

«Важко зробити такий висновок із статистичною впевненістю», — сказав Сіддхарт Гарг, дослідник кібербезпеки та доцент інженерного факультету Нью-Йоркського університету Тандон, у телефонному інтерв’ю з Реєстр.

Важко зробити висновок про це з великою статистичною впевненістю

Тим не менш, він сказав: «Дані свідчать про те, що користувачі Copilot не були набагато гіршими».

Долан-Гевітт так само обережно ставиться до висновків.

«Поточний аналіз результатів нашого дослідження користувачів не виявив жодних статистично значущих відмінностей – ми все ще аналізуємо це, в тому числі якісно, ​​тому я б не робив з цього серйозних висновків, особливо тому, що це було невелике дослідження (всього 58 користувачів) і усі користувачі були студентами, а не професійними розробниками», — сказав він.

«Тим не менш, ми можемо сказати, що для цих користувачів, для цього завдання, вплив ШІ на безпеку, ймовірно, не був великим: якби він мав дуже великий вплив, ми б спостерігали більшу різницю між двома групами. Зараз ми проводимо додатковий статистичний аналіз, щоб зробити це точним».

Крім цього, з’явилися деякі інші ідеї. Одна з них полягає в тому, що учасники групи Assistant були більш продуктивними, генеруючи більше рядків коду та виконуючи більшу частину функцій із завдання.

«Користувачі в групі Assisted пройшли більше функціональних тестів і створили більш функціональний код», — сказав Гарг, додавши, що такі результати можуть допомогти компаніям, які шукають інструменти допоміжного кодування, вирішити, чи варто їх розгортати.

Інший полягає в тому, що дослідники змогли розрізнити результати, вироблені групами контролю, допомоги та автопілота, що може заспокоїти проблеми про шахрайство штучного інтелекту в навчальних закладах.

Бофіни також виявили, що інструменти ШІ потрібно розглядати в контексті помилок користувача. «Користувачі надають підказки, які можуть включати помилки, приймають підказки з помилками, які потрапляють у «завершені» програми, а також приймають помилки, які пізніше видаляються», — йдеться в документі. «У деяких випадках користувачі також мають більше помилок, ніж було запропоновано моделлю!»

Очікуйте подальшу роботу в цьому напрямку. ®

Часова мітка:

Більше від Реєстр