Guillaume Baudart, Javier Burroni, et al.
PLDI 2021
Machine-learning operators often have correctness constraints that cut across multiple hyperparameters and/or data. Violating these constraints causes the operator to raise runtime exceptions, but those are usually documented only informally or not at all. This paper presents the first interprocedural weakest-precondition analysis for Python to extract hyperparameter constraints. The analysis is mostly static, but to make it tractable for typical Python idioms in machine-learning libraries, it selectively switches to the concrete domain for some cases. This paper demonstrates the analysis by extracting hyperparameter constraints for 181 operators from a total of 8 ML libraries, where it achieved high precision and recall and found real bugs. Our technique advances static analysis for Python and is a step towards safer and more robust machine learning.
Guillaume Baudart, Javier Burroni, et al.
PLDI 2021
Wei Huang, Yao Dong, et al.
ISSTA 2015
Guillaume Baudart, Olivier Tardieu, et al.
SPLASH/REBLS 2018
Yao Dong, Ana Milanova, et al.
PPPJ 2016