Awesome
SC21 RIBBON: cost-effective and qos-aware deep learning model inference using a diverse pool of cloud computing instances
Ribbon applies a Bayesian Optimization (BO) engine for heterogeneous instance serving of ML inference queries. Please see the link for the full paper here: RIBBON: cost-effective and qos-aware deep learning model inference using a diverse pool of cloud computing instances
Dependencies
With Python 3.7 ready, the other required packages can be installed with command
pip install -r requirements.txt
Bayesian Optimization Engine Setup
Ribbon uses a modified public open-source BO library from fmfn
To setup the BO backend, clone the repo, copy the source file over and build the library
cd /<usr_git_dir> # replace with custom path
git clone https://github.com/fmfn/BayesianOptimization.git
cp Ribbon/bayesian_optimization.py BayesianOptimization/bayes_opt
cp Ribbon/util.py BayesianOptimization/bayes_opt
cd BayesianOptimization
python setup.py build
PYTHONPATH="$PYTHONPATH:/<usr_gir_dir>/BayesianOptimization/build/lib" # make sure python sees this library
export PYTHONPATH
cd /<usr_git_dir>/Ribbon
Inference models
The source code for evaluated models are in the models
directory. The characterization data of each model on various instances are in the characterization
directory. To verify the characterization data, navigate to the models
directory, follow the instructions to run the benchmarks, and compare the collected logs with data in characterization
.
Here are the links to each model implementation.
- CANDLE (cancer distributed learning environment) Combo model: link
- VGG model: link
- ResNet model: link
- MT-WND (multi-task wide and deep): link
- DIEN (deep interest evolution network): link
Start Ribbon
The characterization data is used to evaluate whether a certain configuration meets the target QoS. First extract the zipped file.
cd characterization
tar -xf logs.tar.gz
cd ../
Navigate to the BO directory, run Ribbon and all competing schemes
cd BO/
./all_scheme.sh
To visualize the comparison, run
cd visualize
python num_of_samples.py
python explore_cost.py
After running the visualization scripts, new figures will appear in the visualize
directory. The num_of_samples.png
picture shows the number of samples to find the optimal instance pool for all schemes, the explore_cost.png
picture shows the total cost of exploration for all schemes.
For further inquries, please contact li.baol@northeastern.edu