Tiny Machine Learning: Progress and Futures

Ji Lin, Ligeng Zhu, Wei-Ming Chen, Wei-Chen Wang, Song Han
3/28/2024
cs.LGcs.AIcs.CV

No official code found. Best implementation: mit-han-lab/mcunet (704 stars, MIT, PyTorch, last commit 2024-03-29).

Abstract

Tiny Machine Learning (TinyML) is a new frontier of machine learning. By squeezing deep learning models into billions of IoT devices and microcontrollers (MCUs), we expand the scope of AI applications and enable ubiquitous intelligence. However, TinyML is challenging due to hardware constraints: the tiny memory resource makes it difficult to hold deep learning models designed for cloud and mobile platforms. There is also limited compiler and inference engine support for bare-metal devices. Therefore, we need to co-design the algorithm and system stack to enable TinyML. In this review, we will first discuss the definition, challenges, and applications of TinyML. We then survey the recent progress in TinyML and deep learning on MCUs. Next, we will introduce MCUNet, showing how we can achieve ImageNet-scale AI applications on IoT devices with system-algorithm co-design. We will further extend the solution from inference to training and introduce tiny on-device training techniques. Finally, we present future directions in this area. Today's large model might be tomorrow's tiny model. The scope of TinyML should evolve and adapt over time.

View on arXivView PDF

Code Implementations(1)

mit-han-lab/mcunetCommunity100%
PyTorchMIT

[NeurIPS 2020] MCUNet: Tiny Deep Learning on IoT Devices; [NeurIPS 2021] MCUNetV2: Memory-Efficient Patch-based Inference for Tiny Deep Learning

704111PythonJun 14, 20222 years agoMIT
deep-learningmicroncontrollerneural-architecture-searchpytorchtinyml

Similar Papers

Cite this paper

@article{lin2024tiny,
  title  = {Tiny Machine Learning: Progress and Futures},
  author = {Ji Lin and Ligeng Zhu and Wei-Ming Chen and Wei-Chen Wang and Song Han},
  year   = {2024},
  eprint = {2403.19076},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2403.19076v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2403.19076.svg)](https://codeofpaper.com/paper/2403.19076)

Discussion