The Hidden Bloat in Machine Learning Systems

Published: 11 Feb 2025, Last Modified: 16 May 2025MLSys 2025EveryoneRevisionsBibTeXCC BY 4.0
Keywords: Machine Learning, Software Engineer, Software Bloat, Software Debloating
Abstract: Software bloat refers to code and features that are not used by a software during runtime. For Machine Learning (ML) systems, bloat is a major contributor to their technical debt, leading to decreased performance and resource wastage. In this work, we present Negativa-ML, a novel tool to identify and remove bloat in ML frameworks by analyzing their shared libraries. Our approach includes novel techniques to detect and locate unnecessary code within GPU code - a key area overlooked by existing research. We evaluate Negativa-ML using four popular ML frameworks across ten workloads over 300 shared libraries. Our results demonstrate that ML frameworks are highly bloated on both the GPU and CPU code side, with GPU code being a primary source of bloat within ML frameworks. On average, Negativa-ML reduces the GPU code size by up to 75\% and the CPU code by up to 72\%, resulting in total file size reductions of up to 55\%. Through debloating, we achieve reductions in peak CPU memory usage, peak GPU memory usage, and execution time by up to 74.6\%, 69.6\%, and 44.6\%, respectively.
Supplementary Material: pdf
Submission Number: 61
Loading

OpenReview is a long-term project to advance science through improved peer review with legal nonprofit status. We gratefully acknowledge the support of the OpenReview Sponsors. © 2025 OpenReview