Co-programatorii AI, probabil, nu vor genera atât de multe erori pe cât se temeau PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Co-programatorii AI, probabil, nu vor genera atât de multe bug-uri pe cât s-a temut

Modelele de învățare automată care alimentează instrumentele de completare a codului de nouă generație, cum ar fi GitHub Copilot, pot ajuta dezvoltatorii de software să scrie mai mult cod funcțional, fără a-l face mai puțin sigur.

Acesta este rezultatul provizoriu al unui sondaj, deși mic, pe 58 de persoane, realizat de un grup de informaticieni de la Universitatea din New York.

In o hartie distribuit prin ArXiv, Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt și Siddharth Garg povestesc cum au pus la încercare securitatea codului sursă creat cu ajutorul modelelor de limbaj mari (LLM).

LLM precum familia OpenAI GPT au fost instruiți pe cantități masive de date text publice sau cod sursă public în cazul Codex-ului OpenAI, un descendent GPT și fundația Copilot-ului GitHub. Ca atare, ele pot reproduce erori făcute în trecut de programatorii umani, ilustrând maxima „gunoi în, gunoi afară”. A existat teama că aceste instrumente vor regurgita și vor sugera cod prost dezvoltatorilor, care ar introduce lucrurile în proiectele lor.

În plus, securitatea codului poate fi contextuală: codul care este sigur în mod izolat poate fi nesigur atunci când este executat într-o anumită secvență cu alt software. Așadar, aceste instrumente de completare automată pot oferi sugestii de cod care sunt bune, dar conectate cu alt cod, sunt acum vulnerabile la atac sau pur și simplu sparte. Acestea fiind spuse, se pare că aceste instrumente ar putea să nu-i facă pe oameni mai rău la programare.

Într-un anumit sens, cercetătorii își stingeau singuri focul. În urmă cu aproximativ un an, doi dintre aceiași informaticieni au contribuit la o lucrare intitulată „Adormit la tastatură? Evaluarea securității contribuțiilor la codul GitHub Copilot.” Acea lucrare găsită despre 40 la suta din rezultatele de la Copilot au inclus puncte slabe potențial exploatabile (CWE).

„Diferența dintre cele două lucrări este că „Asleep at the Keyboard” se uita la generarea de cod complet automatizată (nici un om în buclă) și nu aveam utilizatori umani cu care să comparăm, așa că nu am putut spune nimic despre cum securitatea lui Copilot în comparație cu securitatea codului scris de om”, a spus Brendan Dolan-Gavitt, coautor al ambelor lucrări și profesor asistent la departamentul de informatică și inginerie de la NYU Tandon, într-un e-mail către Registrul.

„Lucrul de studiu al utilizatorului încearcă să abordeze în mod direct acele piese lipsă, punând ca jumătate dintre utilizatori să primească asistență de la Codex (modelul care alimentează Copilot) și punând cealaltă jumătate să scrie singur codul. Cu toate acestea, este, de asemenea, mai restrâns decât „Adormit la tastatură”: ne-am uitat doar la o singură sarcină și o limbă (scriind o listă legată în C).”

În cel mai recent raport, „Implicațiile de securitate ale asistenților de cod de model de limbă mare: un studiu despre utilizatori”, un set ușor variat de cercetători de la NYU recunosc că lucrările anterioare nu reușesc să modeleze în mod realist utilizarea instrumentelor bazate pe LLM, cum ar fi Copilot.

„În primul rând, aceste studii presupun că întregul cod este generat automat de LLM (vom numi acest mod pilot automat)”, explică boffins în lucrarea lor.

„În practică, LLM-urile de completare a codului ajută dezvoltatorii cu sugestii pe care vor alege să le accepte, să editeze sau să le respingă. Aceasta înseamnă că, în timp ce programatorii predispuși la prejudecăți de automatizare ar putea accepta în mod naiv completările cu erori, alți dezvoltatori ar putea produce mai puțin cod cu erori, folosind timpul economisit pentru a remedia erorile.”

În al doilea rând, ei observă că, în timp ce s-a demonstrat că LLM-urile produc cod bug, și oamenii fac acest lucru. Erorile din datele de formare LLM au venit de la oameni.

Deci, mai degrabă decât să evalueze erorile codului generat de LLM singuri, ei și-au propus să compare modul în care codul produs de dezvoltatori umani asistați de modele de învățare automată diferă de codul produs prin programare care funcționează pe cont propriu.

Informaticii de la NYU au recrutat 58 de participanți la sondaj – studenți și absolvenți la cursuri de dezvoltare software – și i-au împărțit într-un grup de control, care ar lucra fără sugestii, și un grup asistat, care a avut acces la un sistem de sugestii personalizat construit folosind OpenAI. Codex API. De asemenea, au folosit modelul Codex pentru a crea 30 de soluții la problemele de programare date ca punct de comparație. Acest grup Autopilot a funcționat în principal ca un al doilea grup de control.

Atât grupului Asistat, cât și grupului Control li sa permis să consulte resurse web, cum ar fi Google și Stack Overflow, dar nu să ceară ajutor altora. S-a lucrat în Visual Studio Code într-un container bazat pe web, construit cu sursă deschisă Anubis.

Participanții au fost rugați să finalizeze un program de listă de cumpărături folosind limbajul de programare C, deoarece „este ușor pentru dezvoltatori să exprime din greșeală modele de design vulnerabile în C” și pentru că lanțul de instrumente al compilatorului C utilizat nu verifică erori în același grad. limbi moderne, cum ar fi Go și Rust, fac.

Când cercetătorii au analizat manual codul produs de grupurile Control și Assistant, au descoperit că, spre deosebire de lucrările anterioare, sugestiile de cod AI nu au înrăutățit lucrurile în general.

Pare clar, dar sunt detalii

„[Nu am găsit nicio dovadă care să sugereze că asistența Codex crește incidența erorilor de securitate”, se arată în lucrare, menționând în același timp că dimensiunea mică a eșantionului din studiu înseamnă că este justificat un studiu suplimentar. „Dimpotrivă, există unele dovezi care sugerează că CWE/LoC [liniile de cod] scad cu ajutorul Codex”.

„Este greu să concluzionezi asta cu multă încredere statistică”, a spus Siddharth Garg, cercetător în securitate cibernetică și profesor asociat la departamentul de inginerie de la NYU Tandon, într-un interviu telefonic cu Registrul.

Este greu să concluzionezi asta cu multă încredere statistică

Cu toate acestea, a spus el, „Datele sugerează că utilizatorii Copilot nu erau cu mult mai prost.”

Dolan-Gavitt este la fel de precaut cu privire la constatări.

„Analiza actuală a rezultatelor studiului nostru cu utilizatori nu a găsit diferențe semnificative din punct de vedere statistic – încă analizăm acest lucru, inclusiv calitativ, așa că nu aș trage concluzii puternice din aceasta, mai ales că a fost un studiu mic (58 de utilizatori în total) și utilizatorii au fost toți studenți, mai degrabă decât dezvoltatori profesioniști”, a spus el.

„Totuși, putem spune că cu acești utilizatori, la această sarcină, impactul de securitate al asistenței AI nu a fost probabil mare: dacă ar fi avut un impact foarte mare, am fi observat o diferență mai mare între cele două grupuri. Facem un pic mai multă analiză statistică pentru a fi exact acum.”

Dincolo de asta, au apărut și alte perspective. Una este că participanții grupului Asistent au fost mai productivi, generând mai multe linii de cod și completând o parte mai mare a funcțiilor din sarcină.

„Utilizatorii din grupul Asistat au trecut mai multe teste funcționale și au produs mai mult cod funcțional”, a spus Garg, adăugând că rezultatele de acest fel pot ajuta companiile care caută instrumente de codare de asistență să decidă dacă le implementează.

Un altul este că cercetătorii au reușit să distingă rezultatul produs de grupurile de control, asistat și pilot automat, ceea ce poate atenua Preocupări despre trișarea cu puterea AI în medii educaționale.

Boffins au descoperit, de asemenea, că instrumentele AI trebuie luate în considerare în contextul erorii utilizatorului. „Utilizatorii oferă solicitări care pot include erori, acceptă solicitări cu erori care ajung în programele „finalizate”, precum și acceptă erori care sunt eliminate ulterior”, se spune în lucrare. „În unele cazuri, utilizatorii ajung să aibă mai multe erori decât sugerează modelul!”

Așteptați-vă la lucrări suplimentare în acest sens. ®

Timestamp-ul:

Mai mult de la Registrul