POET: Training Neural Networks on Tiny Devices with Integrated Rematerialization and Paging

Shishir G. Patil, Paras Jain, Prabal Dutta, Ion Stoica, Joseph E. Gonzalez
7/15/2022
cs.LGcs.CVcs.DC

Official code: ShishirPatil/poet (169 stars, Apache-2.0, last commit 2023-09-29).

Abstract

Fine-tuning models on edge devices like mobile phones would enable privacy-preserving personalization over sensitive data. However, edge training has historically been limited to relatively small models with simple architectures because training is both memory and energy intensive. We present POET, an algorithm to enable training large neural networks on memory-scarce battery-operated edge devices. POET jointly optimizes the integrated search search spaces of rematerialization and paging, two algorithms to reduce the memory consumption of backpropagation. Given a memory budget and a run-time constraint, we formulate a mixed-integer linear program (MILP) for energy-optimal training. Our approach enables training significantly larger models on embedded devices while reducing energy consumption while not modifying mathematical correctness of backpropagation. We demonstrate that it is possible to fine-tune both ResNet-18 and BERT within the memory constraints of a Cortex-M class embedded device while outperforming current edge training methods in energy efficiency. POET is an open-source project available at https://github.com/ShishirPatil/poet

View on arXivView PDF

Code Implementations(1)

ShishirPatil/poetOfficial100%
Apache-2.0

ML model training for edge devices

16920Python, DockerfileJul 19, 20223 years agoApache-2.0
compilerdeep-learningedge-computingilpmachine-learning+1 more

Similar Papers

Cite this paper

@article{patil2022poet,
  title  = {POET: Training Neural Networks on Tiny Devices with Integrated Rematerialization and Paging},
  author = {Shishir G. Patil and Paras Jain and Prabal Dutta and Ion Stoica and Joseph E. Gonzalez},
  year   = {2022},
  eprint = {2207.07697},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2207.07697v1}
}

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/2207.07697.svg)](https://codeofpaper.com/paper/2207.07697)

Discussion