ChatPaper.aiChatPaper

Apprentissage de la représentation de code à grande échelle

Code Representation Learning At Scale

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

Résumé

Des études récentes ont montré que les modèles de langage de code à grande échelle démontrent des gains de performance significatifs sur des tâches en aval, telles que la génération de code. Cependant, la plupart des travaux existants sur l'apprentissage de représentations de code entraînent des modèles à l'échelle de centaines de millions de paramètres en utilisant des corpus de prétraitement très limités. Dans ce travail, nous alimentons l'apprentissage de représentations de code avec une quantité massive de données de code via un schéma de prétraitement en deux étapes. Nous entraînons d'abord les encodeurs via un mélange qui exploite à la fois l'aléa dans la modélisation de langage masqué et l'aspect structurel des langages de programmation. Nous améliorons ensuite les représentations via un apprentissage contrastif avec des négatifs durs et des positifs durs construits de manière non supervisée. Nous établissons un modèle encodeur prêt à l'emploi qui surpasse de manière persistante les modèles existants sur une grande variété de tâches en aval avec des marges importantes. Pour comprendre les facteurs contribuant à un apprentissage réussi des représentations de code, nous menons des ablations détaillées et partageons nos découvertes sur (i) un schéma de débruitage personnalisé et efficace au niveau des tokens pour le code source ; (ii) l'importance des négatifs durs et des positifs durs ; (iii) comment l'apprentissage contrastif bimodal proposé améliore les performances de recherche sémantique multilingue ; et (iv) comment les schémas de prétraitement déterminent l'échelle des performances des tâches en aval en fonction de la taille du modèle.
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