Structured Code Representations Enable Data-Efficient Adaptation of Code Language Models
Not on the map. Why?
Abstract (arXiv)
Current language models tailored for code tasks often adopt the pre-training-then-fine-tuning paradigm from natural language processing, modeling source code as plain text. This approach, however, overlooks the unambiguous structures inherent in programming languages. In this work, we explore data-efficient adaptation of pre-trained code models by further pre-training and fine-tuning them with program structures. Specifically, we represent programs as parse trees -- also known as concrete syntax trees (CSTs) -- and adapt pre-trained models on serialized CSTs. Although the models that we adapt have been pre-trained only on the surface form of programs, we find that a small amount of continual pre-training and fine-tuning on CSTs without changing the model architecture yields improvements over the baseline approach across various code tasks. The improvements are found to be particularly significant when there are limited training examples, demonstrating the effectiveness of integrating program structures with plain-text representation even when working with backbone models that have not been pre-trained with structures.
Key facts. Cited by 3 papers in the map (data through 14 Oct 2026). Builds on 40 of its 58 references that are in the map. First posted on arXiv 19 Jan 2024.
Builds on
40 of 58 references.
References · 40
- 2017Attention Is All You Needcited by 60,361
- 2019Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformercited by 14,599
- 2021Evaluating Large Language Models Trained on Codecited by 8,320
- 2021Program Synthesis with Large Language Modelscited by 3,637
- 2020CodeBERT: A Pre-Trained Model for Programming and Natural Languagescited by 1,310
- 2021CodeT5: Identifier-aware Unified Pre-trained Encoder-Decoder Models for Code Understanding and Generationcited by 906
- 2022CodeGen: An Open Large Language Model for Code with Multi-Turn Program Synthesiscited by 885
- 2019SpanBERT: Improving Pre-training by Representing and Predicting Spanscited by 834
- 2023StarCoder: may the source be with you!cited by 799
- 2021CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generationcited by 744
- 2019CodeSearchNet Challenge: Evaluating the State of Semantic Code Searchcited by 654
- 2020GraphCodeBERT: Pre-training Code Representations with Data Flowcited by 609
28 more
- 2020CodeBLEU: a Method for Automatic Evaluation of Code Synthesiscited by 479
- 2021Unified Pre-training for Program Understanding and Generationcited by 366
- 2022UniXcoder: Unified Cross-Modal Pre-training for Code Representationcited by 361
- 2022The Stack: 3 TB of permissively licensed source codecited by 359
- 2022CodeRL: Mastering Code Generation through Pretrained Models and Deep Reinforcement Learningcited by 358
- 2019Devign: Effective Vulnerability Identification by Learning Comprehensive Program Semantics via Graph Neural Networkscited by 272
- 2020Unsupervised Translation of Programming Languagescited by 263
- 2017Learning to Represent Programs with Graphscited by 220
- 2018Learning to Mine Aligned Code and Natural Language Pairs from Stack Overflowcited by 165
- 2016Language to Logical Form with Neural Attentioncited by 158
- 2018Mapping Language to Code in Programmatic Contextcited by 104
- 2018Tree-to-tree Neural Networks for Program Translationcited by 93
- 2017Abstract Syntax Networks for Code Generation and Semantic Parsingcited by 92
- 2016A Convolutional Attention Network for Extreme Summarization of Source Codecited by 91
- 2018TRANX: A Transition-based Neural Abstract Syntax Parser for Semantic Parsing and Code Generationcited by 88
- 2020Code Prediction by Feeding Trees to Transformerscited by 70
- 2021DOBF: A Deobfuscation Pre-Training Objective for Programming Languagescited by 68
- 2021Language-Agnostic Representation Learning of Source Code from Structure and Contextcited by 63
- 2021AVATAR: A Parallel Corpus for Java-Python Program Translationcited by 59
- 2019TreeGen: A Tree-Based Transformer Architecture for Code Generationcited by 58
- 2016Deep API Learningcited by 41
- 2021TreeBERT: A Tree-Based Pre-Trained Model for Programming Languagecited by 41
- 2022StructCoder: Structure-Aware Transformer for Code Generationcited by 34
- 2021Code Completion by Modeling Flattened Abstract Syntax Trees as Graphscited by 30
- 2014Learning Natural Coding Conventionscited by 29
- 2018A Grammar-Based Structural CNN Decoder for Code Generationcited by 29
- 2015Top-down Tree Long Short-Term Memory Networkscited by 12
- 2022Learning Program Representations with a Tree-Structured Transformercited by 6
Built on by
Citing papers per year: 2024: 2; 2025: 1.
3 papers.