Run-Time Prevention of Software Integration Failures of Machine Learning APIs
- Chengcheng Wan ,
- Yuhan Liu ,
- Kuntai Du ,
- Henry Hoffmann ,
- Junchen Jiang ,
- Michael Maire ,
- Shan Lu
OOPSLA | , Vol 7: pp. 264-291
Due to the under-specified interfaces, developers face challenges in correctly integrating machine learning (ML) APIs in software. Even when the ML API and the software are well designed on their own, the resulting application misbehaves when the API output is incompatible with the software. It is desirable to have an adapter that converts ML API output at runtime to better fit the software need and prevent integration failures. In this paper, we conduct an empirical study to understand ML API integration problems in real-world applications. Guided by this study, we present SmartGear, a tool that automatically detects and converts mismatching or incorrect ML API output at run time, serving as a middle layer between ML API and software. Our evaluation on a variety of open-source applications shows that SmartGear detects 70% incompatible API outputs and prevents 67% potential integration failures, outperforming alternative solutions.