How Does Code Pretraining Affect Language Model Task Performance?
Jackson Petty, Sjoerd van Steenkiste, Tal Linzen
TL;DR
The study causally probes how varying the proportion of code in pretraining data affects downstream performance, by constructing interleaved natural-language and code corpora under two regimes: competitive (fixed total data) and additive (fixed language data). Using decoder-only transformers, the authors evaluate on compositional generalization benchmarks (COGS, COGS-vf, English Passivization) and on BigBench tasks, revealing that more code improves structured-output generalization and arithmetic tasks but can harm linguistic and world-knowledge performance. Permutation tests show that code increases performance variance and boosts upper-quartile gains in aggregate, supporting nuanced guidance on data-source composition depending on target domains. The findings highlight domain-dependent trade-offs and suggest that optimal pretraining mixtures should align with intended downstream applications, while noting limitations related to scale, data separation, and task scope.
Abstract
Large language models are increasingly trained on corpora containing both natural language and non-linguistic data like source code. Aside from aiding programming-related tasks, anecdotal evidence suggests that including code in pretraining corpora may improve performance on other, unrelated tasks, yet to date no work has been able to establish a causal connection by controlling between language and code data. Here we do just this. We pretrain language models on datasets which interleave natural language and code in two different settings: additive, in which the total volume of data seen during pretraining is held constant; and competitive, in which the volume of language data is held constant. We study how the pretraining mixture affects performance on (a) a diverse collection of tasks included in the BigBench benchmark, and (b) compositionality, measured by generalization accuracy on semantic parsing and syntactic transformations. We find that pretraining on higher proportions of code improves performance on compositional tasks involving structured output (like semantic parsing), and mathematics. Conversely, increase code mixture can harm performance on other tasks, including on tasks that requires sensitivity to linguistic structure such as syntax or morphology, and tasks measuring real-world knowledge.
