AI kaasprogrammeerijad võib-olla ei tekita nii palju vigu, kui kardeti PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

AI kaasprogrammeerijad võib-olla ei tekita nii palju vigu, kui kardetakse

Masinõppemudelid, mis toidavad järgmise põlvkonna koodi lõpetamise tööriistu, nagu GitHub Copilot, võivad aidata tarkvaraarendajatel kirjutada funktsionaalsemat koodi, muutmata seda vähem turvaliseks.

See on New Yorgi ülikooli arvutiteadlaste rühma korraldatud, ehkki väikese 58 inimesega uuringu esialgne tulemus.

In paber levitatakse ArXivi kaudu, Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt ja Siddharth Garg jutustavad, kuidas nad panid proovile suurte keelemudelite (LLM) abil loodud lähtekoodi turvalisuse.

LLM-id, nagu OpenAI GPT perekond, on koolitatud tohutul hulgal avaliku tekstiandmete või OpenAI Codexi puhul, mis on GPT järeltulija ja GitHubi kopiloodi alus, avalikku lähtekoodi. Sellisena võivad nad reprodutseerida inimprogrammeerijate poolt minevikus tehtud vigu, illustreerides maksiimi "prügi sisse, prügi välja". Kardeti, et need tööriistad tõmbuvad tagasi ja soovitavad arendajatele halba koodi, kes selle kraami oma projektidesse sisestavad.

Veelgi enam, koodi turvalisus võib olla kontekstipõhine: eraldiseisvalt turvaline kood võib olla ebaturvaline, kui seda käivitatakse kindlas järjestuses koos muu tarkvaraga. Seega võivad need automaatse täitmise tööriistad pakkuda koodisoovitusi, mis iseenesest on head, kuid on seotud muu koodiga, on nüüd rünnakute suhtes haavatavad või lihtsalt katkised. Sellegipoolest selgub, et need tööriistad ei pruugi tegelikult inimesi programmeerimisel halvemaks muuta.

Mõnes mõttes kustutasid teadlased oma tulekahju. Umbes aasta tagasi andsid kaks sama arvutiteadlast kaastööd artiklile „Klaviatuuri magama jäämine? GitHubi kopiloodi koodipanuste turvalisuse hindamine. See töö leitud umbes 40 protsenti Copiloti väljundist sisaldas potentsiaalselt ärakasutatavaid nõrkusi (CWE-d).

"Erinevus kahe paberi vahel seisneb selles, et "Klaviatuuri magama jäämine" vaatles täielikult automatiseeritud koodi genereerimist (silmuses ei olnud inimest) ja meil polnud inimkasutajaid, kellega võrrelda, nii et me ei saanud midagi öelda selle kohta, kuidas. Copiloti turvalisus võrreldes inimese kirjutatud koodi turvalisusega,” ütles Brendan Dolan-Gavitt, mõlema paberi kaasautor ja NYU Tandoni arvutiteaduse ja inseneriteaduse osakonna dotsent, e-kirjas. Register.

„Kasutajaõppetöö püüab neid puuduvaid tükke otseselt lahendada, lastes pooled kasutajatest abi saada Codexilt (Copiloti võimsusega mudel) ja teisel poolel kirjutada kood ise. Kuid see on ka kitsam kui klaviatuuril magamine: vaatasime ainult ühte ülesannet ja ühte keelt (lingitud loendi kirjutamine C-s).

Viimases aruandes "Suurte keelemudelite koodiassistentide turvalisus: kasutajauuring" tunnistab pisut mitmekesine NYU teadlaste kogum, et eelnev töö ei suuda realistlikult modelleerida LLM-põhiste tööriistade, nagu Copilot, kasutamist.

"Esiteks eeldavad need uuringud, et LLM genereerib kogu koodi automaatselt (nimetame seda autopiloodi režiimiks), " selgitavad boffinid oma artiklis.

"Praktikas abistavad koodi lõpetamise LLM-id arendajaid soovitustega, mille kohta nad otsustavad nõustuda, muuta või tagasi lükata. See tähendab, et kuigi automatiseerimisele kalduvad programmeerijad võivad vigaste lõpetamiste naiivselt vastu võtta, võivad teised arendajad toota vähem vigast koodi, kasutades säästetud aega vigade parandamiseks.

Teiseks märgivad nad, et kuigi on näidatud, et LLM-id toodavad lollakat koodi, teevad seda ka inimesed. LLM-i koolitusandmete vead pärinesid inimestelt.

Selle asemel, et hinnata LLM-i loodud koodi tõrget, otsustasid nad võrrelda, kuidas masinõppemudelitega abistatud inimarendajate toodetud kood erineb iseseisvalt programmeerimisega loodud koodist.

NYU arvutiteadlased värbasid 58 uuringus osalejat – tarkvaraarenduse kursuste bakalaureuse- ja magistriõppe üliõpilasi – ning jagasid nad kontrollrühmaks, kes töötasid ilma soovitusteta, ja abistavateks rühmadeks, kellel oli juurdepääs OpenAI abil loodud kohandatud soovituste süsteemile. Codex API. Samuti kasutasid nad Codexi mudelit, et luua võrdlusmomendiks antud programmeerimisprobleemidele 30 lahendust. See Autopiloodi rühm toimis peamiselt teise kontrollrühmana.

Nii abistatavatel kui ka kontrollrühmadel oli lubatud tutvuda veebiressurssidega, nagu Google ja Stack Overflow, kuid mitte küsida teistelt abi. Töö tehti Visual Studio Code veebipõhises avatud lähtekoodiga konteineris Anubis.

Osalejatel paluti täita ostunimekirja programm, kasutades programmeerimiskeelt C, kuna "arendajatel on lihtne C-keeles haavatavaid disainimustreid kogemata väljendada" ja kuna kasutatav C-kompilaatori tööriistaahel ei kontrolli tööriistakettide puhul samal määral vigu. kaasaegsed keeled, nagu Go ja Rust, seda teevad.

Kui teadlased analüüsisid kontrolli ja assistendi rühmade loodud koodi käsitsi, leidsid nad, et vastupidiselt varasemale tööle ei muutnud AI-koodi soovitused olukorda üldiselt hullemaks.

Tundub selge, kuid seal on üksikasju

"[Me] ei leidnud ühtegi tõendit, mis viitaks sellele, et Codexi abi suurendaks turvavigade esinemissagedust," märgiti dokumendis, märkides samas, et uuringu väikese valimi suurus tähendab, et edasine uurimine on õigustatud. "Vastupidi, on tõendeid, mis viitavad sellele, et Codexi abiga CWE/LoC [koodiread] vähenevad."

"Seda on raske statistilise kindlusega järeldada," ütles Siddharth Garg, küberjulgeoleku uurija ja NYU Tandoni inseneriosakonna dotsent telefoniintervjuus. Register.

Seda on raske statistilise kindlusega järeldada

Sellegipoolest ütles ta: "Andmed näitavad, et Copiloti kasutajad ei olnud palju halvemas olukorras."

Dolan-Gavitt on järelduste suhtes samamoodi ettevaatlik.

"Meie kasutajauuringu tulemuste praegune analüüs ei ole leidnud statistiliselt olulisi erinevusi – me analüüsime seda veel, sealhulgas kvalitatiivselt, nii et ma ei teeks sellest tugevaid järeldusi, eriti kuna tegemist oli väikese uuringuga (kokku 58 kasutajat) ja kasutajad olid pigem õpilased kui professionaalsed arendajad, ”ütles ta.

"Siiski võime öelda, et nende kasutajate puhul ei olnud tehisintellekti abi turvalisuse mõju selle ülesande täitmisel tõenäoliselt suur: kui sellel oleks olnud väga suur mõju, oleksime täheldanud suuremat erinevust kahe rühma vahel. Teeme selle täpsemaks muutmiseks praegu natuke rohkem statistilist analüüsi.

Peale selle ilmnesid mõned muud arusaamad. Üks on see, et assistentide rühmas osalejad olid produktiivsemad, genereerisid rohkem koodiridu ja täitsid suurema osa ülesande funktsioonidest.

"Abistatud rühma kasutajad läbisid rohkem funktsionaalseid teste ja koostasid rohkem funktsionaalset koodi," ütles Garg, lisades, et sellised tulemused võivad aidata abistavaid kodeerimistööriistu otsivatel ettevõtetel otsustada, kas need kasutusele võtta.

Teine on see, et teadlased suutsid eristada juht-, abi- ja autopiloodirühmade väljundit, mis võib leevendada muresid AI-jõuga petmise kohta haridusasutustes.

Samuti leidsid Boffinid, et tehisintellekti tööriistu tuleb kasutaja vigade kontekstis arvesse võtta. "Kasutajad esitavad viipasid, mis võivad sisaldada vigu, aktsepteerivad vigaseid viipasid, mis jõuavad "lõpetatud" programmidesse, samuti aktsepteerivad vigu, mis hiljem eemaldatakse, " ütleb leht. "Mõnel juhul on kasutajatel ka rohkem vigu, kui mudel soovitas!"

Oodake edasist tööd selles suunas. ®

Ajatempel:

Veel alates Register