Microsoft entwickelt KI, die Fehler im Code finden kann

Symbol für die Lesezeit 2 Minute. lesen


Leser unterstützen MSpoweruser. Wir erhalten möglicherweise eine Provision, wenn Sie über unsere Links kaufen. Tooltip-Symbol

Lesen Sie unsere Offenlegungsseite, um herauszufinden, wie Sie MSPoweruser dabei helfen können, das Redaktionsteam zu unterstützen Lesen Sie weiter

Forscher bei Microsoft haben eine KI entwickelt, die Fehler im Code finden kann und Entwicklern hilft, ihre Anwendungen genauer und effizienter zu debuggen.

Die Forscher Miltos Allamanis, Principal Researcher, und Marc Brockschmidt, Senior Principal Research Manager, entwickelten ihre KI BugLabs auf die gleiche Weise, wie Generative Adversarial Networks (GANs) erstellt werden.

Microsoft stellte zwei Netzwerke gegeneinander auf – eines, das darauf abzielte, kleine Fehler in bestehenden Code einzuführen, und ein anderes, das darauf abzielte, diese Fehler zu finden. Die beiden Netzwerke wurden immer besser, was zu einer KI führte, die gut darin war, im echten Code versteckte Fehler zu identifizieren.

Der Vorteil dieses Ansatzes war, dass der Prozess vollständig selbstüberwacht war und keine gekennzeichneten Daten benötigte.

Sie berichten die Ergebnisse wie folgt:

Theoretisch könnten wir das Versteckspiel breit anwenden und einer Maschine beibringen, beliebig komplexe Fehler zu identifizieren. Solche Fehler sind jedoch noch außerhalb der Reichweite moderner KI-Methoden. Stattdessen konzentrieren wir uns auf eine Reihe häufig auftretender Fehler. Dazu gehören falsche Vergleiche (z. B. die Verwendung von „<=“ anstelle von „<“ oder „>“), falsche boolesche Operatoren (z. B. die Verwendung von „and“ anstelle von „or“ und umgekehrt), der Missbrauch von Variablen (z. B. die falsche Verwendung von „i“ statt „j“) und ein paar andere. Um unser System zu testen, konzentrieren wir uns auf Python-Code.

Sobald unser Detektor trainiert ist, verwenden wir ihn, um Fehler in realem Code zu erkennen und zu beheben. Um die Leistung zu messen, versehen wir manuell einen kleinen Datensatz von Fehlern aus Paketen im Python-Paketindex mit solchen Fehlern und zeigen, dass Modelle, die mit unserer „Hide-and-Seek“-Methode trainiert wurden, bis zu 30 % besser sind als andere Alternativen, z. Detektoren, die mit zufällig eingefügten Fehlern trainiert wurden. Die Ergebnisse sind vielversprechend und zeigen, dass etwa 26 % der Fehler automatisch gefunden und behoben werden können. Unter den Fehlern, die unser Detektor gefunden hat, befanden sich 19 zuvor unbekannte Fehler in echtem Open-Source-GitHub-Code. Die Ergebnisse zeigten jedoch auch viele falsch positive Warnungen, was darauf hindeutet, dass weitere Fortschritte erforderlich sind, bevor solche Modelle praktisch eingesetzt werden können.

Sie kommen zu dem Schluss, dass ihr Ansatz vielversprechend ist, obwohl natürlich noch viel mehr Arbeit erforderlich ist, um solche Detektoren für den praktischen Einsatz zuverlässig zu machen. Gegeben GPT-3 von Microsoft funktioniert auf GitHub Es ist jedoch durchaus möglich, dass diese Arbeit schließlich kommerzialisiert wird.

Lesen Sie ihre vollständige Arbeit hier.

Mehr zu den Themen: ai, Entwickler, Microsoft