Das Schreiben von Code ist nur der erste Schritt, um etwas zu erstellen. Das Durchsuchen Ihres Codes nach Fehlern und deren Behebung ist zeitaufwändig und dauert oft länger als erwartet, ist aber dennoch ein wesentlicher Schritt.
Wenn es nur eine Möglichkeit gäbe, Fehler automatisch zu beheben, die über Syntaxfehler hinausgeht und die Absichten Ihres Codes wirklich versteht.
Vor kurzem hat Microsoft eine KI entwickelt, die mit Deep Learning Fehler im Code erkennen und beheben kann. Aber wie ist diese revolutionäre Technologie entstanden und wie funktioniert sie?
Was ist BugLab und wie funktioniert es?
BugLab ist eine Python-Implementierung mit künstlicher Intelligenz, die Fehler im Code sucht und behebt. Es wurde von Miltos Alamanis und Marc Brockschmidt, zwei Forschern bei Microsoft Research, entwickelt. Sie haben es geschafft, den Mangel an gekennzeichneten Daten zu überwinden, die häufig in maschinelles Lernen indem man auf selbstüberwachtes Lernen zurückgreift und BugLab erlaubt, sich selbst durch ein „Versteckspiel“ mit Codezeilen zu trainieren.
BugLab wurde mit zwei Rechenmodellen trainiert; eine, die Fehler in korrekten Code-Schnipseln verbirgt, und eine andere, die die Fehler sucht und korrigiert. Beide Modelle lernen kontinuierlich voneinander. Im Laufe der Zeit wird die Fehlerauswahl besser darin, Fehler im Code zu verbergen, und der Detektor wird besser darin, sie zu erkennen und zu beheben.
Den Code mit BugLab verstehen
Die meisten Fehler, für die BugLab AI trainiert hat, sie zu erkennen und zu beheben, führen nicht zu logischen Fehlern, sondern sind nur aufgrund des allgemeinen Kontexts des Codes falsch. Um diese Fehler zu finden, ist es wichtig, die Absicht des Entwicklers zu verstehen.
Die Behandlung von Codeschnipseln auf die gleiche Weise wie die Verarbeitung natürlicher Sprachen führt zu suboptimalen Ergebnissen. Es ist für KI immer noch schwierig, die Beziehung zwischen verschiedenen Aussagen zu verstehen, wenn sie in einzelne Token aufgeteilt sind.
Stattdessen betrachtet BugLab den Code als Ganzes. Auf diese Weise werden jede Syntax, jeder Ausdruck, jedes Symbol und jeder Bezeichner als Punkte in einem Diagramm dargestellt, sodass die KI die Verbindung und Beziehung zwischen verschiedenen Knoten „verstehen“ kann.
Neuronale Netzarchitekturen werden dann verwendet, um die Debugging-KI zu trainieren. Sie können Erkenntnisse aus der umfangreichen Struktur des Codediagramms ziehen und Gründe für die Beziehung der einzelnen Knoten zu den anderen angeben.
Funktioniert BugLab mit Real-Life-Code?
Es ist wichtig zu beachten, dass BugLab kein Ersatz für einen erfahrenen Programmierer ist. Das liegt daran, dass komplexe Fehler immer noch nicht in Reichweite sind.
Microsofts Ziel mit der KI ist es, häufig auftretende Fehler wie falsche boolesche Operatoren zu erkennen und zu beheben. wie die Verwendung von „oder“ anstelle von „und“ und umgekehrt, zusätzlich zu invertierten Wertvergleichen und Variablen missbraucht.
Gemäß Microsoft, sind die Ergebnisse vielversprechend, da BugLab in der Lage ist, rund 26 Prozent der Fehler in einem Codestück automatisch zu erkennen und automatisch zu beheben. Dennoch geht immer noch ein erheblicher Prozentsatz der Genauigkeit aufgrund von Fehlalarmen und übersehenen Fehlern verloren.
Zukünftige Anwendungen von Microsoft BugLab
Microsofts Ziel mit BugLab ist es, Softwareentwicklern Zeit zu sparen, die sie oft damit verbringen, ihren Code auf der Suche nach den kleinsten Fehlern durchzugehen.
Während das KI-Debug-Modell noch in Arbeit ist, besteht die Chance, dass es Fehler finden und beheben die von unbequem bis katastrophal reichen. Aber in ein paar Jahren können Sie davon ausgehen, dass BugLab zu einem Muss in jedem Entwickler-Toolkit wird, auch wenn es nicht perfekt ist.
Die exponentielle Entwicklung der selbstlernenden KI
Je mehr Zeit KI-Modelle wie BugLab haben, um an realen Beispielen zu trainieren, desto bessere und genauere Ergebnisse liefern sie.
Eine der größten Hürden, mit der Microsoft-Forscher bei der Entwicklung von BugLab konfrontiert waren, bestand darin, ein menschliches Verständnis von Code und Absicht in das Tool zu integrieren. Aber jetzt, da dies größtenteils gelöst ist, können Sie davon ausgehen, dass BugLab mit der Zeit besser wird.
Versuchen Sie, den Unterschied zwischen künstlicher Intelligenz, maschinellem Lernen und Deep Learning herauszufinden? Hier ist, was sie alle bedeuten.
Weiter lesen
- Programmierung
- Microsoft
- Codierungstipps
- Künstliche Intelligenz
Anina ist freiberufliche Autorin für Technologie und Internetsicherheit bei MakeUseOf. Sie begann vor 3 Jahren über Cybersicherheit zu schreiben, in der Hoffnung, es für den Durchschnittsmenschen zugänglicher zu machen. Lust auf Neues und ein riesiger Astronomie-Nerd.
Abonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um zu abonnieren