HyperAIHyperAI
vor 2 Monaten

Kontrastives Lernen von Code-Darstellungen

Paras Jain; Ajay Jain; Tianjun Zhang; Pieter Abbeel; Joseph E. Gonzalez; Ion Stoica
Kontrastives Lernen von Code-Darstellungen
Abstract

Kürzliche Arbeiten lernen kontextuelle Darstellungen von Quellcode, indem sie Token aus ihrem Kontext rekonstruieren. Für nachgelagerte semantische Verständnistasks wie die Zusammenfassung von Code auf Englisch sollten diese Darstellungen idealerweise die Funktionalität des Programms erfassen. Wir zeigen jedoch, dass das weit verbreitete rekonstruktionsbasierte BERT-Modell empfindlich gegenüber Änderungen im Quellcode ist, selbst wenn diese Änderungen die Semantik erhalten. Wir schlagen ContraCode vor: eine kontrastive Vortrainingsaufgabe, die die Funktionalität des Codes erfasst, nicht seine Form. ContraCode führt ein Vortraining eines neuronalen Netzes durch, um funktional ähnliche Varianten eines Programms unter vielen nicht äquivalenten Ablenkern zu identifizieren. Diese Varianten generieren wir skalierbar mithilfe eines automatischen Source-to-Source-Kompilers als Form der Datenverstärkung (data augmentation). Das kontrastive Vortraining verbessert die Genauigkeit der JavaScript-Zusammenfassung und der TypeScript-Typinferenz um 2% bis 13%. Wir schlagen zudem einen neuen Zero-Shot-JavaScript-Codeklon-Erkennungsdatensatz vor, der zeigt, dass ContraCode sowohl robuster als auch semantisch bedeutsamer ist. In einer feindlichen Umgebung übertreffen wir RoBERTa um 39% AUROC und bis zu 5% bei natürlichen Codebeispielen.

Kontrastives Lernen von Code-Darstellungen | Neueste Forschungsarbeiten | HyperAI