HyperAIHyperAI
vor 17 Tagen

Multilingualer Training für Software Engineering

Toufique Ahmed, Premkumar Devanbu
Multilingualer Training für Software Engineering
Abstract

Gut trainierte maschinelle Lernmodelle, die große Mengen an Open-Source-Software-Daten nutzen, sind heute eine vielversprechende Herangehensweise, um zahlreiche Aufgaben im Bereich des Software Engineering zu automatisieren. Verschiedene Software-Engineering-Aufgaben wurden bereits mit diesem Ansatz bearbeitet, wobei die Leistung in den vergangenen Jahren kontinuierlich durch verbesserte Modelle und Trainingsmethoden gesteigert wurde. Je mehr und vielfältigere, saubere, beschriftete Daten zur Verfügung stehen, desto besser ist die Trainingsbasis; doch die Erstellung hochwertiger Datensätze ist zeitaufwendig und herausfordernd. Methoden zur Erweiterung des Umfangs und der Vielfalt sauberer, beschrifteter Daten weisen generell eine breite Anwendbarkeit auf. Für einige Sprachen (z. B. Ruby) sind beschriftete Daten weniger reichhaltig, während sie für andere Sprachen (z. B. JavaScript) möglicherweise stark auf bestimmte Anwendungsbereiche fokussiert sind und daher weniger vielfältig sind. Um solche Datenengpässe zu umgehen, präsentieren wir Hinweise darauf, dass menschlich geschriebener Code in verschiedenen Sprachen, der dieselbe Funktion erfüllt, erstaunlich ähnlich ist – insbesondere hinsichtlich der Namensmuster von Bezeichnern. Wir liefern zudem Belege dafür, dass Bezeichner ein äußerst wichtiger Bestandteil von Trainingsdaten für Software-Engineering-Aufgaben darstellen. Wir nutzen dieses eher zufällig auftretende Phänomen, um zu zeigen, dass bestehende multilinguale Trainingsdaten (über verschiedene Sprachen hinweg) genutzt werden können, um die Leistungsfähigkeit zu steigern. Wir untersuchen diesen Ansatz an drei unterschiedlichen Aufgaben: Code-Zusammenfassung, Code-Abfrage und Funktionsnamenbildung. Dabei stellen wir fest, dass diese Datenverstärkungsmethode allgemein mit unterschiedlichen Aufgaben, Sprachen und maschinellen Lernmodellen kompatibel ist.