Machine learning (ML) is a fast-moving field with frequent innovations in improving ML models’ runtime, resource footprint, and accuracy. Training a good model requires significant expertise and computational resources. To facilitate easier use of ML techniques, ML APIs are designed and trained so that they can be incorporated into various applications. However, the adoption of ML APIs in practice is challenging because there are several available APIs for the same task with varying accuracy, runtime, and memory footprint, and each API’s accuracy can often depend on the input. For instance, for the task of object detection, one API may be better during the daytime and another could be better during the nighttime. The problem is further exacerbated since ML APIs can give garbage outputs at any time. This project will study how ML APIs deal with varying inputs and then how applications deal with garbage outputs, and generate novel design principles and programming abstractions that guide designing ML APIs and simplify applications using ML APIs.
Novel design principles / Novel programming language abstractions for designing and simplifying the use of ML APIs.
High-quality publications in software engineering and/or machine learning and/or systems conferences.
Excellent programming and analytical skills
Excellent English written skills, Exposure to large-scale software and to machine learning.
Completed a Bachelor’s or a Master’s degree within the field of Computer Science or a closely related field