HyperAI

Wenn KI Nicht Vorhanden Ist, Besteht Der Richtige Weg Darin, Mit Programmierern Zusammenzuarbeiten, Um Code Zu Schreiben

vor 6 Jahren
Große Fabrikangelegenheiten
Schlagzeilen
Information
Dao Wei
特色图像

Von Super Neuro

Das bekannte Spieleentwicklungsunternehmen Ubisoft und der Open-Source-Technologieriese Mozila haben kürzlich das gemeinsam entwickelte Programmierhilfetool Clever-Commit veröffentlicht, das Ingenieuren Funktionen zur Fehlerwarnung und -korrektur bietet. 

Wir haben einen Artikel mit dem Titel „Unterstützung beim Schreiben von Python ist nur der erste Schritt zur Ersetzung von Programmierern durch KI“ veröffentlicht, in dem wir darlegen, dass immer mehr KI-Tools Ingenieuren dabei helfen können, ihre Codequalität und Arbeitseffizienz während des Codeschreibprozesses zu verbessern.

Beispielsweise kann Kite, in das der CEO von GitHub investiert hat, Codeausschnitte intelligent vervollständigen, Funktionen aufrufen und Dokumentdemos basierend auf der aktuellen Produktionsumgebung abfragen. Wir wissen, dass Kite gescherzt hat, dass die Ambition der KI nicht nur darin besteht, Menschen zu unterstützen, sondern letztendlich die Aufgaben von Ingenieuren zu ersetzen. 

Natürlich sind das nur Witze. Dass KI Handwerker vollständig ersetzen wird, erscheint derzeit unwahrscheinlich. KI wird Ingenieuren künftig stärker dabei helfen, effizienter und qualitativ hochwertiger zu arbeiten. 

Wenn Sie feststellen, dass Ihr Code nicht funktioniert

Kürzlich ist ein KI-Codierungsassistent namens Clever-Commit erschienen, der gemeinsam von Mozila und Ubisoft entwickelt wurde. Seine Funktion besteht darin, die Entwickler hinter Firefox vor Fehlern zu bewahren. Am 12. Februar gab Mozila bekannt, dass sie in Zusammenarbeit mit Ubisoft begonnen hätten, dieses Tool zu verwenden, um das Schreiben von Code effizienter zu gestalten und Firefox-Benutzern so ein besseres Browser-Erlebnis zu bieten. 

 Clever-Commit: Warnung vor energiereichen Bugs! 

Der Vorgänger von Clever-Commit war Commit-Assistant, das Ubisoft letztes Jahr auf den Markt brachte.  

Commit-Assistant ist ein System zum Auffinden von Fehlern und zum Vorschlagen von Korrekturen. Es handelt sich um einen Code-Assistenten, der Entwicklern hilft, das Spielerlebnis zu verbessern. Die Entstehung dieses KI-Assistenten ist auf seine riesige Codebasis zurückzuführen. Während seiner Ausbildung erhielt er Berichten zufolge etwa zehn Jahre funktionierenden Code von Ubisoft, darunter auch Code mit zahlreichen behobenen Fehlern. 

Vor diesem Hintergrund haben Mozlia und Ubisoft zusammengearbeitet, um eine verbesserte Version von Clever-Commit auf den Markt zu bringen. 

Clever-Commit ist ein Hilfsprogrammiertool, das vereinfacht als KI-Assistent beschrieben werden kann, der den Code überprüft. Wenn Entwickler Codeänderungen an der Firefox-Codebasis übermitteln, kann der neue Code mit dem vorherigen verglichen werden, um zu sehen, ob er den gefundenen Fehlern ähnelt. Wenn der Assistent feststellt, dass eine neue Übermittlung verdächtig ist, benachrichtigt er den Entwickler. 

Wenn die Beurteilungsgenauigkeit des Assistenten hoch ist, bedeutet dies, dass Fehler erkannt und gemeldet werden können, bevor sie an das Quellrepository übermittelt werden. Für einige Fehler kann Clever-Commit sogar entsprechende Korrekturen vorschlagen. 

Mozilla plant, Clever-Commit zunächst während der Codeüberprüfung zu verwenden und es dann im Laufe der Zeit auf andere Entwicklungsphasen auszuweiten. Erwähnenswert ist, dass es perfekt mit den drei Sprachen funktioniert, die Mozilla für Firefox verwendet: C++, JavaScript und Rust. 

Wie findet es Fehler? 

Tatsächlich ist ihr Auftreten unvermeidlich und die automatische Verhinderung und Behebung von Fehlern ist ein unvermeidlicher Weg für die Softwareentwicklung. Bestehende Ansätze nutzen Code- und Prozessmetriken, um metrikbasierte Modelle zu erstellen, die das Einfügen von Fehlern in Softwareprojekte wirksam verhindern können. 

Die hier verwendete Technologie heißt CLEVER und wurde zuerst von Forschern von Ubisoft und der Concordia University entwickelt. Sie haben ein Dokument mit dem Titel „CLEVER: Kombination von Codemetriken mit Klonerkennung zur Just-in-Time-Fehlerverhütung und -behebung in großen Industrieprojekten“ verfasst, in dem die Einzelheiten erläutert werden. Im Allgemeinen handelt es sich um eine Technologie zur Fehlerverhütung und -behebung auf kombinierter Ebene.

Artikeladresse: https://montreal.ubisoft.com/wp-content/uploads/2018/05/ICSE-CE-MSR-165.pdf

Der Schlüssel liegt darin, beim Hinzufügen genau zu bestimmen, ob der Code ein riskanter Teil ist, um ihn abzufangen oder zu reparieren. 

Die Implementierungsmethode besteht aus zwei Hauptphasen. Die erste besteht darin, eine Bibliothek basierend auf vorhandenen Indikatoren aufzubauen, die feststellen kann, ob der neu hinzugefügte Code dem riskanten Code ähnelt. Der zweite Schritt besteht darin, diese scheinbar gefährlichen Codes zum Klonbereich des Codes hinzuzufügen und dann festzustellen, ob es sich um riskante Codes handelt. 

Darüber hinaus bewertet CLEVER nicht nur das aktuelle Projekt, sondern berücksichtigt bei seiner Beurteilung auch andere verwandte Projekte und erreicht so eine höhere Intelligenz. Basierend auf der Übereinstimmung der Codebasis und der Ansammlung vorheriger Daten liegt CLEVER hinsichtlich der Fehleridentifizierungsrate und der Verbesserungsvorschläge auf dem führenden Niveau. 

Grenzüberschreitende Zusammenarbeit zwischen Ubisoft und Firefox 

Der Grund für die hohe Leistungsfähigkeit von CLEVER liegt darin, dass leistungsstarke Ressourcen dahinter stecken. Ubisoft ist ein Gigant der Videospielbranche und auf die Entwicklung und Umsetzung von Videospielen mit hohem Budget spezialisiert. 

Die Softwaresysteme von Ubisoft sind stark gekoppelt, bestehen aus Millionen von Dateien und Commits und werden von mehr als 8.000 Entwicklern an 29 Standorten auf sechs Kontinenten entwickelt und gepflegt. Dies ist ein einzigartiger Vorteil für die Entwicklung und Ausbildung von CLEVER. 

Um die Leistung von CLEVER zu vergleichen, wurde es auf 12 Ubisoft-Systemen getestet. Die Ergebnisse zeigten, dass CLEVER bei riskanten Code-Einreichungen eine Präzision von 79 % und einen Rückruf von 65 % erreichte, was die Leistung einer ähnlichen Methode, Commit-guru (66 % Präzision und 63 % Rückruf), übertraf. Darüber hinaus konnte CLEVER den Entwicklern bei 66,7 % der riskanten Commits Empfehlungen zur Behebung geben. 

Clever-Commit, das die CLEVER-Technologie nutzt, dürfte gute Ergebnisse erzielen, sobald es vollständig in den Entwicklungsprozess von Mozilla integriert ist, was auch den Aufwand für die Entwickler erheblich reduzieren wird. Das Erkennen von vier oder fünf Schwachstellen, bevor sie auftreten, spart mehr Ressourcen, als wenn man sie erst nach ihrem Auftreten findet.

Das Firefox-Entwicklungsteam hat angekündigt, dass es Clever-Commit künftig beim Schreiben, Testen und Freigeben von Code verwenden wird. Sie erwarten, durch diesen Ansatz Hunderte von Stunden an Schwachstellenrisikoanalyse und -erkennung einzusparen. 

Irgendetwas anderes? 

Es gibt weitere Versuche, maschinelles Lernen zum Erkennen von Fehlern in großen Codebasen zu verwenden. 

Letztes Jahr hat Microsoft ein ähnliches Tool in Visual Studio herausgebracht: IntelliCode. 

IntelliCode hat die beliebtesten öffentlichen GitHub-Repositories (über 2.000 Projekte mit jeweils über 100 Sternen) untersucht, um die Merkmale der besten Codierungspraktiken zu ermitteln. 

Der ursprüngliche Zweck von IntelliCode ist recht konservativ: Es bietet intelligentere IntelliSense-Vervollständigungsvorschläge, indem es erkennt, welche Vorschläge basierend auf der Art und Weise, wie andere Projekte dieselbe API verwenden, eher verwendet werden. Es wird auch verwendet, um den Codierungsstil und die Verwendung von Leerzeichen zu erkennen, sodass der Code in einem ähnlichen Codeschreibstil geschrieben werden kann. 

Wie Clever-Commit kann IntelliCode zum Auffinden von Fehlern verwendet werden. Sorgen Sie für eine rechtzeitige Behebung kurzfristiger Fehler der Entwickler.