MDInference: Balancing inference accuracy and latency for mobile applications


Deep Neural Networks are allowing mobile devices to incorporate a wide range of features into user applications. However, the computational complexity of these models makes it difficult to run them effectively on resource-constrained mobile devices. Prior work approached the problem of supporting deep learning in mobile applications by either decreasing model complexity or utilizing powerful cloud servers. These approaches each only focus on a single aspect of mobile inference and thus they often sacrifice overall performance.In this work we introduce a holistic approach to designing mobile deep inference frameworks. We first identify the key goals of accuracy and latency for mobile deep inference and the conditions that must be met to achieve them. We demonstrate our holistic approach through the design of a hypothetical framework called MDINFERENCE. This framework leverages two complementary techniques; a model selection algorithm that chooses from a set of cloud-based deep learning models to improve inference accuracy and an on-device request duplication mechanism to bound latency. Through empirically-driven simulations we show that MDINFERENCE improves aggregate accuracy over static approaches by over 40% without incurring SLA violations. Additionally, we show that with a target latency of 250ms, MDINFERENCE increased the aggregate accuracy in 99.74% cases on faster university networks and 96.84% cases on residential networks.

Ogden2020 PDF


@InProceedings{Ogden2020, author = {S. S. Ogden and T. Guo}, booktitle = {2020 IEEE International Conference on Cloud Engineering (IC2E)}, title = {MDINFERENCE: Balancing Inference Accuracy and Latency for Mobile Applications}, year = {2020}, address = {Los Alamitos, CA, USA}, month = {apr}, pages = {28-39}, publisher = {IEEE Computer Society}, doi = {10.1109/IC2E48712.2020.00010}, keywords = {mobile handsets;servers;load modeling;aggregates;mobile applications;computational modeling;machine learning}, url = {}, } = {28--39},