Plumber: Diagnosing and Removing Performance Bottlenecks in Machine Learning Data Pipelines
This addresses performance bottlenecks in ML training for practitioners, offering an automated solution to improve efficiency, though it is incremental as it builds on existing tuning methods.
The paper tackles the problem of inefficient machine learning data pipelines, which often limit training speed, by introducing Plumber, a tool that automatically diagnoses and optimizes pipeline configurations, achieving speedups of up to 47x for misconfigured pipelines and over 50% end-to-end compared to state-of-the-art tuners.
Input pipelines, which ingest and transform input data, are an essential part of training Machine Learning (ML) models. However, it is challenging to implement efficient input pipelines, as it requires reasoning about parallelism, asynchrony, and variability in fine-grained profiling information. Our analysis of over two million ML jobs in Google datacenters reveals that a significant fraction of model training jobs could benefit from faster input data pipelines. At the same time, our analysis indicates that most jobs do not saturate host hardware, pointing in the direction of software-based bottlenecks. Motivated by these findings, we propose Plumber, a tool for finding bottlenecks in ML input pipelines. Plumber uses an extensible and interpretable operational analysis analytical model to automatically tune parallelism, prefetching, and caching under host resource constraints. Across five representative ML pipelines, Plumber obtains speedups of up to 47x for misconfigured pipelines. By automating caching, Plumber obtains end-to-end speedups of over 50% compared to state-of-the-art tuners.