KI-Co-Programmierer werden vielleicht nicht so viele Fehler hervorbringen wie befürchtet PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

KI-Co-Programmierer werden vielleicht nicht so viele Fehler hervorbringen wie befürchtet

Modelle für maschinelles Lernen, die Codevervollständigungstools der nächsten Generation wie GitHub Copilot unterstützen, können Softwareentwicklern helfen, funktionaleren Code zu schreiben, ohne ihn weniger sicher zu machen.

Das ist das vorläufige Ergebnis einer wenn auch kleinen Umfrage mit 58 Personen, die von einer Gruppe von Informatikern der New York University durchgeführt wurde.

In ein Papier vertrieben über ArXiv, Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt und Siddharth Garg erzählen, wie sie die Sicherheit von Quellcode, der mit Hilfe von Large Language Models (LLMs) erstellt wurde, auf die Probe gestellt haben.

LLMs wie die OpenAI GPT-Familie wurden mit riesigen Mengen öffentlicher Textdaten oder öffentlichem Quellcode im Fall von OpenAIs Codex, einem GPT-Nachkommen und der Grundlage von GitHubs Copilot, trainiert. Als solche können sie Fehler reproduzieren, die in der Vergangenheit von menschlichen Programmierern gemacht wurden, und die Maxime „Garbage in, Garbage out“ veranschaulichen. Es bestand die Befürchtung, dass diese Tools wieder auftauchen und Entwicklern schlechten Code vorschlagen würden, der das Zeug in ihre Projekte einbauen würde.

Darüber hinaus kann die Codesicherheit kontextbezogen sein: Code, der isoliert sicher ist, kann unsicher sein, wenn er in einer bestimmten Reihenfolge mit anderer Software ausgeführt wird. Diese Tools zur automatischen Vervollständigung bieten möglicherweise Codevorschläge, die für sich genommen in Ordnung sind, aber in Verbindung mit anderem Code jetzt anfällig für Angriffe oder einfach nur kaputt sind. Es stellt sich jedoch heraus, dass diese Tools Menschen beim Programmieren nicht wirklich schlechter machen.

In gewisser Weise löschten die Forscher ihr eigenes Feuer. Vor etwa einem Jahr haben zwei der gleichen Informatiker zu einem Artikel mit dem Titel „Asleep at the Keyboard? Bewertung der Sicherheit der Codebeiträge von GitHub Copilot.“ Diese Arbeit gefunden über 40 Prozent der Ausgabe von Copilot enthalten potenziell ausnutzbare Schwachstellen (CWEs).

„Der Unterschied zwischen den beiden Artikeln besteht darin, dass ‚Asleep at the Keyboard‘ die vollautomatisierte Codegenerierung betrachtete (kein Mensch in der Schleife) und wir keine menschlichen Benutzer zum Vergleichen hatten, also konnten wir nichts darüber sagen, wie die Sicherheit von Copilot im Vergleich zur Sicherheit von von Menschen geschriebenem Code“, sagte Brendan Dolan-Gavitt, Co-Autor beider Artikel und Assistenzprofessor an der Informatik- und Ingenieurabteilung der NYU Tandon, in einer E-Mail an Das Register.

„Das User Study Paper versucht, diese fehlenden Teile direkt anzugehen, indem die Hälfte der Benutzer Unterstützung von Codex (dem Modell, das Copilot antreibt) erhält und die andere Hälfte den Code selbst schreiben lässt. Allerdings ist es auch enger gefasst als ‚Asleep at the Keyboard‘: Wir haben uns nur eine Aufgabe und eine Sprache angesehen (Schreiben einer verketteten Liste in C).“

Im neuesten Bericht „Security Implications of Large Language Model Code Assistants: A User Study“ räumt eine leicht unterschiedliche Gruppe von NYU-Forschern ein, dass frühere Arbeiten die Verwendung von LLM-basierten Tools wie Copilot nicht realistisch modellieren.

„Erstens gehen diese Studien davon aus, dass der gesamte Code automatisch vom LLM generiert wird (wir nennen dies den Autopilot-Modus)“, erklären die Tüftler in ihrem Paper.

„In der Praxis unterstützen LLMs zur Codevervollständigung Entwickler mit Vorschlägen, die sie akzeptieren, bearbeiten oder ablehnen. Das bedeutet, dass Programmierer, die zu Automatisierung neigen, naiv fehlerhafte Vervollständigungen akzeptieren könnten, während andere Entwickler weniger fehlerhaften Code produzieren könnten, indem sie die eingesparte Zeit zum Beheben von Fehlern verwenden.“

Zweitens stellen sie fest, dass zwar LLMs nachweislich fehlerhaften Code produzieren, Menschen dies jedoch auch tun. Die Fehler in den LLM-Trainingsdaten kamen von Menschen.

Anstatt die Fehlerhaftigkeit von LLM-generiertem Code allein zu bewerten, machten sie sich daran, zu vergleichen, wie sich der von menschlichen Entwicklern mit Hilfe von Modellen für maschinelles Lernen erstellte Code von Code unterscheidet, der durch eigenständige Programmierung erstellt wurde.

Die Informatiker der NYU rekrutierten 58 Umfrageteilnehmer – Studenten und Doktoranden in Softwareentwicklungskursen – und teilten sie in eine Kontrollgruppe ein, die ohne Vorschläge arbeiten würde, und eine unterstützte Gruppe, die Zugriff auf ein benutzerdefiniertes Vorschlagssystem hatte, das mit OpenAI erstellt wurde Codex-API. Sie verwendeten auch das Codex-Modell, um 30 Lösungen für die gegebenen Programmierprobleme als Vergleichspunkt zu erstellen. Diese Autopilot-Gruppe fungierte hauptsächlich als zweite Kontrollgruppe.

Sowohl die unterstützte als auch die kontrollierte Gruppe durften Webressourcen wie Google und Stack Overflow konsultieren, aber nicht andere um Hilfe bitten. Die Arbeit wurde in Visual Studio Code innerhalb eines webbasierten Containers durchgeführt, der mit Open Source erstellt wurde Anubis.

Die Teilnehmer wurden gebeten, ein Einkaufslistenprogramm mit der Programmiersprache C zu absolvieren, weil „Entwickler leicht versehentlich anfällige Designmuster in C ausdrücken“ und weil die verwendete C-Compiler-Toolchain nicht im gleichen Maße auf Fehler prüft wie Toolchains für moderne Sprachen wie Go und Rust tun dies.

Als die Forscher den von den Control- und Assistant-Gruppen erstellten Code manuell analysierten, stellten sie fest, dass KI-Codevorschläge im Gegensatz zu früheren Arbeiten die Situation insgesamt nicht verschlimmerten.

Sieht klar aus, aber es gibt Details

„Wir haben keine Beweise gefunden, die darauf hindeuten, dass die Codex-Unterstützung die Häufigkeit von Sicherheitsfehlern erhöht“, heißt es in dem Papier, während die kleine Stichprobengröße der Studie bedeutet, dass weitere Studien gerechtfertigt sind. „Im Gegenteil, es gibt einige Hinweise darauf, dass CWEs/LoC [Codezeilen] mit Hilfe von Codex abnehmen.“

„Es ist schwer, dies mit großer statistischer Sicherheit zu schließen“, sagte Siddharth Garg, ein Cybersicherheitsforscher und außerordentlicher Professor an der technischen Fakultät der NYU Tandon, in einem Telefoninterview mit Das Register.

Es ist schwer, dies mit viel statistischer Sicherheit zu schließen

Nichtsdestotrotz sagte er: „Die Daten deuten darauf hin, dass es den Copilot-Benutzern nicht viel schlechter ging.“

Dolan-Gavitt ist ähnlich vorsichtig mit den Ergebnissen.

„Die aktuelle Analyse der Ergebnisse unserer Benutzerstudie hat keine statistisch signifikanten Unterschiede ergeben – wir analysieren dies immer noch, auch qualitativ, daher würde ich daraus keine starken Schlussfolgerungen ziehen, insbesondere da es sich um eine kleine Studie (insgesamt 58 Benutzer) handelte und die Benutzer waren eher Studenten als professionelle Entwickler“, sagte er.

„Trotzdem können wir sagen, dass bei diesen Benutzern bei dieser Aufgabe die Sicherheitsauswirkung der KI-Unterstützung wahrscheinlich nicht groß war: Wenn sie eine sehr große Auswirkung gehabt hätte, hätten wir einen größeren Unterschied zwischen den beiden Gruppen beobachtet. Wir machen gerade ein bisschen mehr statistische Analysen, um das genau zu machen.“

Darüber hinaus ergaben sich einige andere Erkenntnisse. Einer davon ist, dass die Teilnehmer der Assistentengruppe produktiver waren, mehr Codezeilen generierten und einen größeren Teil der Funktionen in der Aufgabe erledigten.

„Benutzer in der Assisted-Gruppe haben mehr Funktionstests bestanden und mehr Funktionscode erstellt“, sagte Garg und fügte hinzu, dass Ergebnisse dieser Art Unternehmen, die sich mit unterstützenden Codierungstools befassen, bei der Entscheidung helfen könnten, ob sie diese einsetzen möchten.

Ein weiterer Grund ist, dass die Forscher in der Lage waren, die von den Gruppen Control, Assisted und Autopilot erzeugten Ergebnisse zu unterscheiden, was möglicherweise Abhilfe schafft Bedenken über KI-Power-Cheating in Bildungseinrichtungen.

Die Experten stellten auch fest, dass KI-Tools im Zusammenhang mit Benutzerfehlern betrachtet werden müssen. „Benutzer stellen Eingabeaufforderungen bereit, die Fehler enthalten können, akzeptieren fehlerhafte Eingabeaufforderungen, die in den ‚abgeschlossenen' Programmen landen, und akzeptieren Fehler, die später entfernt werden“, heißt es in dem Papier. „In einigen Fällen haben Benutzer auch mehr Fehler als vom Modell vorgeschlagen!“

Erwarten Sie weitere Arbeiten in dieser Richtung. ®

Zeitstempel:

Mehr von Das Register