@inproceedings{3965d9a5810e48d7bc194fa37a181c52,
title = "NeuRI: Diversifying DNN Generation via Inductive Rule Inference",
abstract = "Deep Learning (DL) is prevalently used in various industries to improve decision-making and automate processes, driven by the ever-evolving DL libraries and compilers. The correctness of DL systems is crucial for trust in DL applications. As such, the recent wave of research has been studying the automated synthesis of test-cases (i.e., DNN models and their inputs) for fuzzing DL systems. However, existing model generators only subsume a limited number of operators, lacking the ability to pervasively model operator constraints. To address this challenge, we propose NeuRI, a fully automated approach for generating valid and diverse DL models composed of hundreds of types of operators. NeuRI adopts a three-step process: (i) collecting valid and invalid API traces from various sources; (ii) applying inductive program synthesis over the traces to infer the constraints for constructing valid models; and (iii) using hybrid model generation which incorporates both symbolic and concrete operators. Our evaluation shows that NeuRI improves branch coverage of TensorFlow and PyTorch by 24% and 15% over the state-of-the-art model-level fuzzers. NeuRI finds 100 new bugs for PyTorch and TensorFlow in four months, with 81 already fixed or confirmed. Of these, 9 bugs are labelled as high priority or security vulnerability, constituting 10% of all high-priority bugs of the period. Open-source developers regard error-inducing tests reported by us as {"}high-quality{"}and {"}common in practice{"}.",
keywords = "Compiler Testing, Deep Learning Compilers, Fuzzing",
author = "Jiawei Liu and Jinjun Peng and Yuyao Wang and Lingming Zhang",
note = "This work was partially supported by NSF grants CCF-2131943 and CCF-2141474, as well as research awards from Google and Meta.; 31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2023 ; Conference date: 03-12-2023 Through 09-12-2023",
year = "2023",
month = nov,
day = "30",
doi = "10.1145/3611643.3616337",
language = "English (US)",
series = "ESEC/FSE 2023 - Proceedings of the 31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering",
publisher = "Association for Computing Machinery",
pages = "657--669",
editor = "Satish Chandra and Kelly Blincoe and Paolo Tonella",
booktitle = "ESEC/FSE 2023 - Proceedings of the 31st ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering",
address = "United States",
}