AdaptLSTM: Efficient Adaptive Online Learning for Cloud Workload Forecasting under Distribution Drift
Organizations: Zhejiang University Ningbo, China · Zhejiang University Hangzhou, China
Abstract
Accurate workload forecasting is critical for elastic resource provisioning in web-scale cloud services, where distribution shifts driven by viral content, product launches, and user behavior degrade offline-trained models rapidly. Naive online learning recovers accuracy but incurs prohibitive per-step compute cost. We propose AdaptLSTM, an adaptive online framework that detects drift via validation-calibrated thresholds and applies selective, targeted updates. On the Alibaba Machine Trace, AdaptLSTM recovers 54% of Naive Online's improvement at 20% cost ( efficiency, over 10 seeds). On the more volatile Container Trace, it achieves 96% at 20% cost ( efficiency, MAE reduction over Static). Unlike classical drift detectors (ADWIN, DDM, Page-Hinkley) which fail to trigger on regression-scale error streams, AdaptLSTM fires 42 times over 301 steps and outperforms matched-budget baselines. Wall-clock profiling shows throughput gain and 45% update-time reduction. The framework is model-agnostic: identical Pareto patterns hold for LSTM, GRU, and Transformer backbones.
Figures & tables
| Scenario | MAE | Improvement vs Static | Update Cost | ||||
| Static | Naive | AdaptLSTM | Naive | AdaptLSTM | Naive | AdaptLSTM | |
| Gradual Drift | 0.1699 | 0.1639 | 0.1678 | +3.56% | +1.27% | 100% | 20% |
| Sudden Drift | 0.1776 | 0.1641 | 0.1681 | +7.62% | +5.33% | 100% | 20% |
| Recurring Drift | 0.1737 | 0.1645 | 0.1691 | +5.31% | +2.66% | 100% | 20% |
| Mixed Drift | 0.1733 | 0.1639 | 0.1679 | +5.42% | +3.07% | 100% | 20% |
| Average | 0.1736 | 0.1641 | 0.1682 | +5.50% | +3.10% | 100% | 20% |
| Variant | MAE | Updates | Cost |
| Full AdaptLSTM | 0.1674 | 42 | 20.0% |
| w/o Drift Detection | 0.1695 | 43 | 100.0% |
| w/o Selective Update | 0.1674 | 42 | 100.0% |
| w/o Adaptive Threshold | 0.1722 | 23 | 20.0% |
| Detector | Gradual | Sudden | Recurring | Mixed | ||||
| MAE | Trig. | MAE | Trig. | MAE | Trig. | MAE | Trig. | |
| Static | 0.1699 | 0 | 0.1776 | 0 | 0.1737 | 0 | 0.1733 | 0 |
| ADWIN ( ) | 0.1699 | 0 | 0.1776 | 0 | 0.1737 | 0 | 0.1733 | 0 |
| DDM | 0.1699 | 0 | 0.1776 | 0 | 0.1737 | 0 | 0.1733 | 0 |
| Page–Hinkley | 0.1700 | 1 | 0.1772 | 1 | 0.1728 | 1 | 0.1730 | 1 |
| Fixed period ( ) | 0.1665 | 37 | 0.1684 | 37 | 0.1689 | 37 | 0.1675 | 37 |
| Scenario | Static | Naive (100%) | AdaptLSTM (20%) |
| Gradual | |||
| Sudden | |||
| Recurring | |||
| Mixed |
| Scenario | Backbone | Static | Naive | Adapt | Trig. / Eff. cost |
| Gradual | LSTM | 0.1772 | 0.1631 | 0.1695 | 18 / 1.20% |
| GRU | 0.1685 | 0.1629 | 0.1671 | 22 / 1.46% | |
| Transformer | 0.1718 | 0.1603 | 0.1679 | 18 / 1.20% | |
| Sudden | LSTM | 0.1866 | 0.1635 | 0.1728 | 22 / 1.46% |
| GRU | 0.1746 | 0.1634 | 0.1698 | 26 / 1.73% | |
| Transformer | 0.1777 | 0.1607 | 0.1690 | 22 / 1.46% |
| Metric | Static | Naive | AdaptLSTM |
| Total time (s) | 1.16 | 3.37 | 2.53 |
| Throughput (samp/s) | 258.2 | 89.0 | 118.4 |
| Predict latency (ms) | 0.30 | 1.02 | 3.17 |
| Update latency, avg (ms) | – | 9.14 | 40.78 |
| # Updates | 0 | 300 | 37 |
| Cumulative update time (s) | 0 | 2.74 | 1.51 |
| Dataset | Scenario | MAE | Improvement over Static | Cost | |||
| Static | Naive | AdaptLSTM | Naive (100%) | AdaptLSTM (20%) | Adapt/Naive | ||
| Machine | Gradual | 0.1699 | 0.1639 | 0.1677 | +3.56% | +1.28% | 35.8% |
| Sudden | 0.1776 | 0.1641 | 0.1680 | +7.60% | +5.40% | 71.1% | |
| Recurring | 0.1737 | 0.1645 | 0.1691 | +5.32% | +2.65% | 49.9% | |
| Mixed | 0.1733 | 0.1639 | 0.1680 | +5.41% | +3.06% | 56.5% | |
| Average | 0.1736 | 0.1641 | 0.1682 | +5.47% | +3.10% | 53.3% | |
| Gradual | Sudden | Recurring | Mixed | |||||
| Detector | MAE | Trig. | MAE | Trig. | MAE | Trig. | MAE | Trig. |
| Static | 0.0329 | 0 | 0.1289 | 0 | 0.0964 | 0 | 0.0953 | 0 |
| ADWIN ( ) | 0.0329 | 0 | 0.1289 | 0 | 0.0964 | 0 | 0.0953 | 0 |
| DDM | 0.0329 | 0 | 0.1289 | 0 | 0.0964 | 0 | 0.0953 | 0 |
| Page–Hinkley | 0.0442 | 2 | 0.0722 | 5 | 0.0964 | 0 | 0.0579 | 4 |
| Fixed period ( ) | 0.0235 | 37 | 0.0383 | 37 | 0.0314 | 37 | 0.0201 | 37 |
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| Detector | Parameters |
| ADWIN | (permissive), window cap 500, min samples 20, values rescaled to with saturation at |
| DDM | (mistake threshold), drift level |
| Page–Hinkley | , , warm-started with reference mean |
| Fixed-period | ; approximately matches AdaptLSTM’s trigger count, approximately matches AdaptLSTM’s effective cost |
| Parameter | Value |
| Base LSTM | |
| Hidden dimension | 128 |
| Number of layers | 2 |
| Dropout | 0.2 |
| Optimizer (offline) | Adam |
| Learning rate (offline) | |
| Scenario | Variant | MAE | Updates | Cost |
| Sudden | Full | 0.1674 | 42 | 20.0% |
| w/o Drift Detection | 0.1695 | 43 | 100.0% | |
| w/o Selective | 0.1674 | 42 | 100.0% | |
| w/o Adaptive Threshold | 0.1722 | 23 | 20.0% | |
| Gradual | Full | 0.1678 | 36 | 20.0% |
| w/o Drift Detection | 0.1687 | 36 | 100.0% |
| MAE | # Updates | Effective cost | |
| 0.85 | 0.1670 | 53 | 3.52% |
| 0.90 | 0.1688 | 49 | 3.26% |
| 0.95 | 0.1673 | 41 | 2.72% |
| 1.00 | 0.1679 | 36 | 2.39% |
| 1.05 | 0.1686 | 29 | 1.93% |
| 1.10 | 0.1708 | 24 | 1.60% |
| MAE | # Updates | Cost | |
| 0.1 | 0.1675 | 42 | 10.0% |
| 0.2 | 0.1674 | 42 | 20.0% |
| 0.3 | 0.1673 | 42 | 30.0% |
| 0.5 | 0.1673 | 42 | 50.0% |
| 1.0 | 0.1673 | 42 | 100.0% |
| MAE | # Updates | Cost | |
| 10 | 0.1681 | 71 | 33.8% |
| 20 | 0.1674 | 42 | 20.0% |
| 50 | 0.1687 | 18 | 8.6% |
| 100 | 0.1712 | 5 | 2.4% |
| MAE | # Updates | Cost | |
| 0.1691 | 42 | 20.0% | |
| 0.1674 | 42 | 20.0% | |
| 0.1685 | 42 | 20.0% | |
| 0.1732 | 42 | 20.0% |
| Policy | Total GFLOPs (24h) | Cost (24h) | Annual cost |
| Static | 3,600 | $0.79 | $289 |
| Naive Online | 14,400 | $3.19 | $1,165 |
| AdaptLSTM | 5,112 | $1.13 | $412 |
| Savings vs Naive | 9,288 (64.5%) | $2.06 | $753 |
| Dataset | Static MAE | Naive MAE | AdaptLSTM MAE | Triggers |
| Machine | 0.1652 | 0.1588 | 0.1629 | 35 / 301 (11.6%) |
| Container | 0.0312 | 0.0139 | 0.0312 | 0 / 301 (0%) |