AI-medprogrammører vil måske ikke skabe så mange fejl som frygtet PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

AI-medprogrammører vil måske ikke skabe så mange fejl som frygtet

Maskinlæringsmodeller, der driver næste generations kodefuldførelsesværktøjer som GitHub Copilot, kan hjælpe softwareudviklere med at skrive mere funktionel kode uden at gøre den mindre sikker.

Det er det foreløbige resultat af en omend lille 58-personers undersøgelse udført af en gruppe af New York University dataloger.

In et papir distribueret via ArXiv fortæller Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt og Siddharth Garg, hvordan de satte sikkerheden i kildekoden, der er skabt ved hjælp af store sprogmodeller (LLM'er), på prøve.

LLM'er som OpenAI GPT-familien er blevet trænet i enorme mængder af offentlige tekstdata eller offentlig kildekode i tilfælde af OpenAI's Codex, en GPT-efterkommer og grundlaget for GitHub's Copilot. Som sådan kan de reproducere fejl lavet i fortiden af ​​menneskelige programmører, hvilket illustrerer maksimen "skrald ind, skrald ud." Der var en frygt for, at disse værktøjer ville genopstå og foreslå dårlig kode til udviklere, som ville indsætte tingene i deres projekter.

Hvad mere er, kodesikkerhed kan være kontekstuel: kode, der er sikker isoleret set, kan være usikker, når den udføres i en bestemt sekvens med anden software. Så disse autofuldførelsesværktøjer kan tilbyde kodeforslag, der i sig selv er fine, men forbundet med anden kode, nu er sårbare over for angreb eller bare er ødelagte. Når det er sagt, viser det sig, at disse værktøjer faktisk ikke gør mennesker dårligere til at programmere.

På en eller anden måde var forskerne ved at slukke deres egen ild. For omkring et år siden bidrog to af de samme dataloger til et papir med titlen "Sover ved tastaturet? Vurdering af sikkerheden af ​​GitHub Copilots kodebidrag." Det arbejde fundet om 40 procent af outputtet fra Copilot inkluderede potentielt udnyttelige svagheder (CWE'er).

"Forskellen mellem de to papirer er, at 'Søvn ved tastaturet' kiggede på fuldautomatisk kodegenerering (intet menneske i løkken), og vi havde ikke menneskelige brugere at sammenligne med, så vi kunne ikke sige noget om, hvordan sikkerheden af ​​Copilots sammenlignet med sikkerheden ved menneskeskreven kode,” sagde Brendan Dolan-Gavitt, medforfatter på både papirer og assisterende professor i datalogi- og ingeniørafdelingen ved NYU Tandon, i en e-mail til Registret.

“Brugerundersøgelsespapiret forsøger direkte at tackle de manglende brikker ved at lade halvdelen af ​​brugerne få assistance fra Codex (modellen, der driver Copilot) og lade den anden halvdel skrive koden selv. Den er dog også smallere end 'Søvn ved tastaturet': vi kiggede kun på én opgave og ét sprog (at skrive en linket liste i C).

I den seneste rapport, "Security Impplications of Large Language Model Code Assistants: A User Study", anerkender et lidt varieret sæt NYU-forskere, at tidligere arbejde ikke formår at modellere brugen af ​​LLM-baserede værktøjer som Copilot realistisk.

"For det første antager disse undersøgelser, at hele koden automatisk genereres af LLM'en (vi vil kalde dette autopilottilstanden)," forklarer boffinerne i deres papir.

"I praksis hjælper LLM'er med kodefuldførelse udviklere med forslag, som de vil vælge at acceptere, redigere eller afvise. Dette betyder, at mens programmører, der er tilbøjelige til automatiseringsbias, naivt kan acceptere buggy-fuldførelser, kan andre udviklere producere mindre buggy-kode ved at bruge den sparede tid til at rette fejl."

For det andet observerer de, at mens LLM'er har vist sig at producere buggy-kode, gør mennesker det også. Fejlene i LLM træningsdata kom fra folk.

Så i stedet for at vurdere bugginess af LLM-genereret kode på egen hånd, satte de sig for at sammenligne, hvordan koden produceret af menneskelige udviklere assisteret af maskinlæringsmodeller adskiller sig fra kode produceret af programmering, der arbejder på egen hånd.

NYU datalogerne rekrutterede 58 undersøgelsesdeltagere - bachelor- og kandidatstuderende i softwareudviklingskurser - og delte dem op i en kontrolgruppe, som ville arbejde uden forslag, og en assisteret gruppe, som havde adgang til et tilpasset forslagssystem bygget ved hjælp af OpenAI Codex API. De brugte også Codex-modellen til at skabe 30 løsninger på de givne programmeringsproblemer som et sammenligningspunkt. Denne autopilotgruppe fungerede hovedsageligt som en anden kontrolgruppe.

Både Assisted- og Control-gruppen fik lov til at konsultere webressourcer, såsom Google og Stack Overflow, men ikke at bede andre om hjælp. Arbejdet blev udført i Visual Studio Code i en webbaseret container bygget med open source Anubis.

Deltagerne blev bedt om at gennemføre et indkøbslisteprogram ved hjælp af C-programmeringssproget, fordi "det er let for udviklere utilsigtet at udtrykke sårbare designmønstre i C", og fordi den anvendte C-compilerværktøjskæde ikke tjekker for fejl i samme grad værktøjskæder for moderne sprog, såsom Go og Rust, gør.

Da forskerne manuelt analyserede koden produceret af kontrol- og assistentgrupperne, fandt de ud af, at i modsætning til tidligere arbejde gjorde forslag til AI-kode ikke tingene værre generelt.

Det ser klart ud, men der er detaljer

"[Vi fandt ingen beviser, der tyder på, at Codex-hjælp øger forekomsten af ​​sikkerhedsfejl," udtalte avisen, mens det bemærkede, at undersøgelsens lille stikprøvestørrelse betyder, at yderligere undersøgelse er berettiget. "Tværtimod er der nogle beviser, der tyder på, at CWE'er/LoC [kodelinjer] falder med Codex-assistance."

"Det er svært at konkludere dette med stor statistisk sikkerhed," sagde Siddharth Garg, en cybersikkerhedsforsker og lektor i ingeniørafdelingen ved NYU Tandon, i et telefoninterview med Registret.

Det er svært at konkludere dette med stor statistisk sikkerhed

Ikke desto mindre sagde han: "Dataene tyder på, at Copilot-brugere ikke var meget værre stillet."

Dolan-Gavitt er ligeledes forsigtig med resultaterne.

"Den aktuelle analyse af vores brugerundersøgelsesresultater har ikke fundet nogen statistisk signifikante forskelle - vi analyserer stadig dette, også kvalitativt, så jeg vil ikke drage stærke konklusioner af dette, især da det var en lille undersøgelse (58 brugere i alt) og brugere var alle studerende snarere end professionelle udviklere,” sagde han.

"Alligevel kan vi sige, at med disse brugere, på denne opgave, var sikkerhedspåvirkningen af ​​at have AI-assistance sandsynligvis ikke stor: Hvis det havde en meget stor indflydelse, ville vi have observeret en større forskel mellem de to grupper. Vi laver en lidt mere statistisk analyse for at gøre det præcist lige nu."

Ud over det dukkede nogle andre indsigter op. Den ene er, at assistentgruppedeltagerne var mere produktive, genererede flere kodelinjer og fuldførte en større del af funktionerne i opgaven.

"Brugere i Assisted-gruppen bestod flere funktionelle tests og producerede mere funktionel kode," sagde Garg og tilføjede, at resultater af denne art kan hjælpe virksomheder, der ser på hjælpeværktøjer til kodning, med at beslutte, om de vil implementere dem.

En anden er, at forskerne var i stand til at skelne output produceret af kontrol-, assisteret- og autopilotgrupperne, hvilket kan dæmpe bekymringer om AI-power snyd i uddannelsesmiljøer.

Boffinerne fandt også, at AI-værktøjer skal overvejes i sammenhæng med brugerfejl. "Brugere giver meddelelser, som kan omfatte fejl, accepterer buggy-meddelelser, der ender i de 'fuldførte' programmer, samt accepterer fejl, som senere fjernes," siger avisen. "I nogle tilfælde ender brugerne også med flere fejl, end modellen foreslår!"

Forvent yderligere arbejde i denne retning. ®

Tidsstempel:

Mere fra Registret