在Meta学习预测生产环境中的性能回退
软件工程
2023-05-23 v2 机器学习
摘要
捕获并归因生产环境中由代码变更引起的性能回退很困难;而事先预测它们则更难。作为自动学习预测软件性能回退的入门,本文记述了我们在Meta研究和部署基于ML的回退预测流水线时所获得的经验。在本文中,我们报告了一项使用四种复杂度递增的ML模型的比较研究,从(1)代码不透明,到(2)词袋(Bag of Words),(3)现成基于Transformer的,再到(4)一种定制的基于Transformer的模型,称为SuperPerforator。我们的调查显示了性能预测问题固有的难度,其特征是良性变更远多于回退变更的巨大不平衡。我们的结果也对基于Transformer的架构用于性能预测的普遍适用性提出质疑:现成的基于CodeBERT的方法性能出奇地差;我们高度定制的SuperPerforator架构初期取得的预测性能仅与更简单的词袋模型相当,且仅在下游用例中超越它们。SuperPerforator向少样本学习示例应用的迁移能力为其在Meta的实际部署提供了机会:它可作为预过滤器排除不太可能引入回退的变更,将需搜索回退的变更空间缩减多达43%,比随机基线提升45倍。为进一步洞察SuperPerforator,我们通过一系列计算反事实解释的试验对其进行了探索。这些解释凸显了模型认为代码变更中哪些部分重要,从而验证了所学黑盒模型。
引用
@article{arxiv.2208.04351,
title = {Learning to Learn to Predict Performance Regressions in Production at Meta},
author = {Moritz Beller and Hongyu Li and Vivek Nair and Vijayaraghavan Murali and Imad Ahmad and Jürgen Cito and Drew Carlson and Ari Aye and Wes Dyer},
journal= {arXiv preprint arXiv:2208.04351},
year = {2023}
}