ChatPaper.aiChatPaper

Code-Repräsentationslernen im großen Maßstab

Code Representation Learning At Scale

February 2, 2024
Autoren: Dejiao Zhang, Wasi Ahmad, Ming Tan, Hantian Ding, Ramesh Nallapati, Dan Roth, Xiaofei Ma, Bing Xiang
cs.AI

Zusammenfassung

Aktuelle Studien haben gezeigt, dass Code-Sprachmodelle in großem Maßstab signifikante Leistungssteigerungen bei nachgelagerten Aufgaben, wie z.B. der Code-Generierung, erzielen. Die meisten bestehenden Arbeiten zum Erlernen von Code-Repräsentationen trainieren jedoch Modelle mit hundert Millionen Parametern unter Verwendung sehr begrenzter Vorabtrainingskorpora. In dieser Arbeit beleben wir das Erlernen von Code-Repräsentationen mit einer großen Menge an Code-Daten durch ein zweistufiges Vorabtrainingsschema. Zunächst trainieren wir die Encoder über eine Mischung, die sowohl die Zufälligkeit beim Maskieren von Sprachmodellen als auch den strukturellen Aspekt von Programmiersprachen nutzt. Anschließend verbessern wir die Repräsentationen durch kontrastives Lernen mit hart-negativen und hart-positiven Beispielen, die auf unüberwachte Weise konstruiert werden. Wir etablieren ein sofort einsetzbares Encoder-Modell, das bestehende Modelle bei einer Vielzahl von nachgelagerten Aufgaben deutlich übertrifft. Um die Faktoren zu verstehen, die zum erfolgreichen Erlernen von Code-Repräsentationen beitragen, führen wir detaillierte Ablationen durch und teilen unsere Erkenntnisse zu (i) einem maßgeschneiderten und effektiven Token-Level-Entrauschungsschema für Quellcode; (ii) der Bedeutung von hart-negativen und hart-positiven Beispielen; (iii) wie das vorgeschlagene bimodale kontrastive Lernen die Leistung bei der cross-lingualen semantischen Suche steigert; und (iv) wie die Vorabtrainingsschemata die Skalierung der Leistung bei nachgelagerten Aufgaben mit der Modellgröße bestimmen.
English
Recent studies have shown that code language models at scale demonstrate significant performance gains on downstream tasks, i.e., code generation. However, most of the existing works on code representation learning train models at a hundred million parameter scale using very limited pretraining corpora. In this work, we fuel code representation learning with a vast amount of code data via a two-stage pretraining scheme. We first train the encoders via a mix that leverages both randomness in masking language modeling and the structure aspect of programming language. We then enhance the representations via contrastive learning with hard negative and hard positive constructed in an unsupervised manner. We establish an off-the-shelf encoder model that persistently outperforms the existing models on a wide variety of downstream tasks by large margins. To comprehend the factors contributing to successful code representation learning, we conduct detailed ablations and share our findings on (i) a customized and effective token-level denoising scheme for source code; (ii) the importance of hard negatives and hard positives; (iii) how the proposed bimodal contrastive learning boost the cross-lingual semantic search performance; and (iv) how the pretraining schemes decide the downstream task performance scales with the model size.
PDF131December 15, 2024