Modeling Vocabulary for Big Code Machine Learning
This addresses the challenge of vocabulary modeling for developers and researchers in code machine learning, but it is incremental as it focuses on optimizing existing methods.
The paper tackles the problem of modeling source-code vocabulary for machine learning on big code, showing that specific decisions significantly impact performance, enabling accurate neural language models to be trained quickly on a corpus of 10,106 projects.
When building machine learning models that operate on source code, several decisions have to be made to model source-code vocabulary. These decisions can have a large impact: some can lead to not being able to train models at all, others significantly affect performance, particularly for Neural Language Models. Yet, these decisions are not often fully described. This paper lists important modeling choices for source code vocabulary, and explores their impact on the resulting vocabulary on a large-scale corpus of 14,436 projects. We show that a subset of decisions have decisive characteristics, allowing to train accurate Neural Language Models quickly on a large corpus of 10,106 projects.