ChatPaper.aiChatPaper

Масштабируемое обучение представлений кода

Code Representation Learning At Scale

February 2, 2024
Авторы: Dejiao Zhang, Wasi Ahmad, Ming Tan, Hantian Ding, Ramesh Nallapati, Dan Roth, Xiaofei Ma, Bing Xiang
cs.AI

Аннотация

Недавние исследования показали, что языковые модели для кода, обученные в большом масштабе, демонстрируют значительное улучшение производительности на последующих задачах, таких как генерация кода. Однако большинство существующих работ по обучению представлений кода обучают модели с сотнями миллионов параметров, используя очень ограниченные корпуса для предварительного обучения. В данной работе мы обогащаем обучение представлений кода большим объемом данных с помощью двухэтапной схемы предварительного обучения. Сначала мы обучаем кодировщики с использованием смешанного подхода, который сочетает случайность в маскирующем языковом моделировании и структурные аспекты языков программирования. Затем мы улучшаем представления с помощью контрастивного обучения, используя сложные отрицательные и положительные примеры, созданные в неконтролируемом режиме. Мы создаем готовую модель кодировщика, которая стабильно превосходит существующие модели на широком спектре последующих задач с большим отрывом. Чтобы понять факторы, способствующие успешному обучению представлений кода, мы проводим детальные исследования и делимся своими выводами по следующим аспектам: (i) кастомизированная и эффективная схема шумоподавления на уровне токенов для исходного кода; (ii) важность сложных отрицательных и положительных примеров; (iii) как предложенное бимодальное контрастивное обучение улучшает производительность кросс-языкового семантического поиска; и (iv) как схемы предварительного обучения определяют масштабирование производительности на последующих задачах в зависимости от размера модели.
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