ElasticRec: A Microservice-based Model Serving Architecture Enabling Elastic Resource Scaling for Recommendation Models
Yujeong Choi, Jiin Kim, Minsoo Rhu
TL;DR
ElasticRec tackles the inefficiency of model-wise resource allocation in RecSys serving by introducing a microservice-based architecture that partitions models into fine-grained shards and employs a utility-based embedding allocation guided by DP-based table partitioning. This design enables selective replication of hot embeddings and bottlenecked dense layers, achieving substantial memory savings ($3.3\times$) and memory utilization gains ($8.1\times$) with reduced deployment costs ($1.6\times$) across CPU-only and CPU-GPU setups. The approach leverages bucketization and Kubernetes autoscaling to adapt to dynamic query traffic, providing practical elasticity for large embedding tables and heterogeneous compute demands. The results indicate that ElasticRec significantly improves fleet-wide QPS and reduces memory footprint, making elastic, cost-effective RecSys serving feasible at scale.
Abstract
With the increasing popularity of recommendation systems (RecSys), the demand for compute resources in datacenters has surged. However, the model-wise resource allocation employed in current RecSys model serving architectures falls short in effectively utilizing resources, leading to sub-optimal total cost of ownership. We propose ElasticRec, a model serving architecture for RecSys providing resource elasticity and high memory efficiency. ElasticRec is based on a microservice-based software architecture for fine-grained resource allocation, tailored to the heterogeneous resource demands of RecSys. Additionally, ElasticRec achieves high memory efficiency via our utility-based resource allocation. Overall, ElasticRec achieves an average 3.3x reduction in memory allocation size and 8.1x increase in memory utility, resulting in an average 1.6x reduction in deployment cost compared to state-of-the-art RecSys inference serving system.
