ChatPaper.aiChatPaper

Apprendimento della Rappresentazione del Codice su Scala Ampia

Code Representation Learning At Scale

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

Abstract

Studi recenti hanno dimostrato che i modelli linguistici per il codice su larga scala ottengono significativi miglioramenti nelle prestazioni su task downstream, come la generazione di codice. Tuttavia, la maggior parte dei lavori esistenti sull'apprendimento della rappresentazione del codice addestra modelli con centinaia di milioni di parametri utilizzando corpora di pre-addestramento molto limitati. In questo lavoro, alimentiamo l'apprendimento della rappresentazione del codice con una vasta quantità di dati di codice attraverso uno schema di pre-addestramento in due fasi. Inizialmente addestriamo gli encoder utilizzando una miscela che sfrutta sia la casualità nel masked language modeling sia l'aspetto strutturale dei linguaggi di programmazione. Successivamente, miglioriamo le rappresentazioni attraverso l'apprendimento contrastivo con negativi difficili e positivi difficili costruiti in modo non supervisionato. Abbiamo stabilito un modello encoder pronto all'uso che supera costantemente i modelli esistenti su una vasta gamma di task downstream con ampi margini. Per comprendere i fattori che contribuiscono al successo dell'apprendimento della rappresentazione del codice, conduciamo ablazioni dettagliate e condividiamo le nostre scoperte su: (i) uno schema personalizzato ed efficace di denoising a livello di token per il codice sorgente; (ii) l'importanza dei negativi difficili e dei positivi difficili; (iii) come il proposto apprendimento contrastivo bimodale migliori le prestazioni della ricerca semantica cross-linguale; e (iv) come gli schemi di pre-addestramento influenzino la scala delle prestazioni dei task downstream in relazione alla dimensione del modello.
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 22, 2025