Learning to Learn to Predict Performance Regressions in Production at Meta
Not on the map. Why?
Abstract (arXiv)
Catching and attributing code change-induced performance regressions in production is hard; predicting them beforehand, even harder. A primer on automatically learning to predict performance regressions in software, this article gives an account of the experiences we gained when researching and deploying an ML-based regression prediction pipeline at Meta. In this paper, we report on a comparative study with four ML models of increasing complexity, from (1) code-opaque, over (2) Bag of Words, (3) off-the-shelve Transformer-based, to (4) a bespoke Transformer-based model, coined SuperPerforator. Our investigation shows the inherent difficulty of the performance prediction problem, which is characterized by a large imbalance of benign onto regressing changes. Our results also call into question the general applicability of Transformer-based architectures for performance prediction: an off-the-shelve CodeBERT-based approach had surprisingly poor performance; our highly customized SuperPerforator architecture initially achieved prediction performance that was just on par with simpler Bag of Words models, and only outperformed them for down-stream use cases. This ability of SuperPerforator to transfer to an application with few learning examples afforded an opportunity to deploy it in practice at Meta: it can act as a pre-filter to sort out changes that are unlikely to introduce a regression, truncating the space of changes to search a regression in by up to 43%, a 45x improvement over a random baseline. To gain further insight into SuperPerforator, we explored it via a series of experiments computing counterfactual explanations. These highlight which parts of a code change the model deems important, thereby validating the learned black-box model.
Key facts. Cited by 1 paper in the map (data through 7 Oct 2026). Builds on 18 of its 63 references that are in the map. First posted on arXiv 8 Aug 2022.
Builds on
18 of 63 references.
References · 18
- 2020Language Models are Few-Shot Learnerscited by 32,199
- 2016"Why Should I Trust You?": Explaining the Predictions of Any Classifiercited by 5,040
- 2020Longformer: The Long-Document Transformercited by 3,362
- 2017Axiomatic Attribution for Deep Networkscited by 3,350
- 2020CodeBERT: A Pre-Trained Model for Programming and Natural Languagescited by 1,286
- 2019What Does BERT Look At? An Analysis of BERT's Attentioncited by 994
- 2020GraphCodeBERT: Pre-training Code Representations with Data Flowcited by 600
- 2020Generate Your Counterfactuals: Towards Controlled Counterfactual Generation for Textcited by 75
- 2019Attention Interpretability Across NLP Taskscited by 71
- 2021Applying CodeBERT for Automated Program Repair of Java Simple Bugscited by 44
- 2018Ithemal: Accurate, Portable and Fast Basic Block Throughput Estimation using Deep Neural Networkscited by 43
- 2021What do pre-trained code models know about code?cited by 36
6 more
- 2017Mimicking Word Embeddings using Subword RNNscited by 30
- 2021Counterfactual Explanations for Models of Codecited by 24
- 2021Which transformer architecture fits my data? A vocabulary bottleneck in self-attentioncited by 16
- 2017A Zero-Positive Learning Approach for Diagnosing Software Performance Regressionscited by 5
- 2020Industry-scale IR-based Bug Localization: A Perspective from Facebookcited by 5
- 2021Improving Stack Overflow question title generation with copying enhanced CodeBERT model and bi-modal informationcited by 5
Built on by
Citing papers per year: 2026: 1.
1 paper.