{"id":13604496,"url":"https://github.com/MachineLearningSystem/SC21_Ribbon","last_synced_at":"2025-04-12T02:30:46.172Z","repository":{"id":185461932,"uuid":"566325522","full_name":"MachineLearningSystem/SC21_Ribbon","owner":"MachineLearningSystem","description":null,"archived":false,"fork":true,"pushed_at":"2022-05-06T20:41:25.000Z","size":1011,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-11-07T09:42:48.362Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"boringlee24/SC21_Ribbon","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MachineLearningSystem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-11-15T12:46:29.000Z","updated_at":"2022-09-15T02:09:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"f93399ea-1575-4594-9048-6bf567b5f125","html_url":"https://github.com/MachineLearningSystem/SC21_Ribbon","commit_stats":null,"previous_names":["machinelearningsystem/sc21_ribbon"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MachineLearningSystem%2FSC21_Ribbon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MachineLearningSystem%2FSC21_Ribbon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MachineLearningSystem%2FSC21_Ribbon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MachineLearningSystem%2FSC21_Ribbon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MachineLearningSystem","download_url":"https://codeload.github.com/MachineLearningSystem/SC21_Ribbon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248506901,"owners_count":21115503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T19:00:46.775Z","updated_at":"2025-04-12T02:30:45.796Z","avatar_url":"https://github.com/MachineLearningSystem.png","language":null,"readme":"# SC21 RIBBON: cost-effective and qos-aware deep learning model inference using a diverse pool of cloud computing instances \n\nRibbon 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](https://dl.acm.org/doi/10.1145/3458817.3476168)\n\n## Dependencies\n\nWith Python 3.7 ready, the other required packages can be installed with command\n```shell\npip install -r requirements.txt\n```\n\n## Bayesian Optimization Engine Setup\n\nRibbon uses a modified public open-source BO library from [fmfn](https://github.com/fmfn/BayesianOptimization)\n\nTo setup the BO backend, clone the repo, copy the source file over and build the library\n\n```shell\ncd /\u003cusr_git_dir\u003e # replace with custom path\ngit clone https://github.com/fmfn/BayesianOptimization.git\ncp Ribbon/bayesian_optimization.py BayesianOptimization/bayes_opt\ncp Ribbon/util.py BayesianOptimization/bayes_opt\ncd BayesianOptimization\npython setup.py build\nPYTHONPATH=\"$PYTHONPATH:/\u003cusr_gir_dir\u003e/BayesianOptimization/build/lib\" # make sure python sees this library\nexport PYTHONPATH\ncd /\u003cusr_git_dir\u003e/Ribbon\n```\n## Inference models\n\nThe 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```.\n\nHere are the links to each model implementation.\n\n1. CANDLE (cancer distributed learning environment) Combo model: [link](https://github.com/ECP-CANDLE/Benchmarks/tree/master/Pilot1/Combo)\n2. VGG model: [link](https://keras.io/api/applications/vgg/)\n3. ResNet model: [link](https://keras.io/api/applications/resnet/)\n4. MT-WND (multi-task wide and deep): [link](https://github.com/harvard-acc/DeepRecSys/blob/master/models/multi_task_wnd.py)\n5. DIEN (deep interest evolution network): [link](https://github.com/harvard-acc/DeepRecSys/blob/master/models/dien.py)\n\n## Start Ribbon\n\nThe characterization data is used to evaluate whether a certain configuration meets the target QoS. First extract the zipped file.\n\n```shell\ncd characterization\ntar -xf logs.tar.gz\ncd ../\n```\n\nNavigate to the BO directory, run Ribbon and all competing schemes\n\n```shell\ncd BO/\n./all_scheme.sh\n```\n\nTo visualize the comparison, run\n\n```shell\ncd visualize\npython num_of_samples.py\npython explore_cost.py\n```\n\nAfter 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.\n\nFor further inquries, please contact [li.baol@northeastern.edu](li.baol@northeastern.edu)\n","funding_links":[],"categories":["Paper-Code"],"sub_categories":["Serving-Inference"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMachineLearningSystem%2FSC21_Ribbon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMachineLearningSystem%2FSC21_Ribbon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMachineLearningSystem%2FSC21_Ribbon/lists"}