A duplet of a runtime engine and an execution provider: <[Runtime engine], [Execution provider]>
The repository is structured as follows:
- app | API, schemas - dataset | input dataset generation - experiments | Notebooks and scripts to process profilers datasets - manuals | Self-contained manuals related to the serving infrastructure - model_selection | This folder contains models selection scripts and metadata - scripts | Environment scripts and bash scripts for automated experiments - testing | Scripts to send request to server - requirements.txt: The dependencies of our implementation - runall_update.sh: Bash script to start server and run experiments - code_slm_selection.csv: Selection of used code SLM
dataset/*code_slm_selection.csvapp/testing/app/models_code_load.py: Model classes
testing/utils.py: experiment settings, python script
repeat.sh: repeat n experiments runs or just execute runall
runall_update.sh: experiment settings, bash script
nohup ./repeat.sh > repeat.out 2>&1 &
Or:
nohup ./runall.sh > results/runall.out 2>&1 &
results/*experiments/Files in experiments/
visualize_{profiler} - Visualization of raw data obtained from profilers.01_get_info_{profiler} - Preprocessing of raw data obtained from profilers (script).02_get_time_marks - Get time marks of inferences done during experiment (script)03_analysis_{execution_provider} - Process data for analysis (notebook).04_aggregation - Aggregated data (notebook).05_aggregated_plots - Box plots (notebook).06_tests - Obtaining statistical results of used statistical tests (script).07_tests_merge - Merge test results, organized by dependent variable (notebook).08_analysis - Notebook to analyze results (notebook).09_result_tables - Creation of paper table (notebook).Dataset: testing/inputs.txt
Run server:
uvicorn app.api_code:app --host 0.0.0.0 --port 8000 --reload --reload-dir app
Make inferences:
python3 testing/main.py -i torch -r 5 | tee -a results/out_torch.log
python3 testing/main.py -i onnx -r 5 | tee -a results/out_onnx.log
python3 testing/main.py -i ov -r 5 | tee -a results/out_ov.log
python3 testing/main.py -i torchscript -r 5 | tee -a results/out_torchscript.log
Results are saved in results/
Please use the following BibTex entry:
@article{duran2024serving,
title={Identifying architectural design decisions for achieving green ML serving},
author={Dur{\'a}n, Francisco and Martinez, Matias and Lago, Patricia and Mart{\'\i}nez-Fern{\'a}ndez, Silverio},
journal={arXiv preprint arXiv:},
year={2024}
}
and
@article{duran2024energy,
title={Energy consumption of code small language models serving with runtime engines and execution providers},
author={Dur{\'a}n, Francisco and Martinez, Matias and Lago, Patricia and Mart{\'\i}nez-Fern{\'a}ndez, Silverio},
journal={arXiv preprint arXiv:2412.15441},
year={2024}
}
129 commits
Jupyter Notebook
98.5%
Python
1.4%
A duplet of a runtime engine and an execution provider: <[Runtime engine], [Execution provider]>
The repository is structured as follows:
- app | API, schemas - dataset | input dataset generation - experiments | Notebooks and scripts to process profilers datasets - manuals | Self-contained manuals related to the serving infrastructure - model_selection | This folder contains models selection scripts and metadata - scripts | Environment scripts and bash scripts for automated experiments - testing | Scripts to send request to server - requirements.txt: The dependencies of our implementation - runall_update.sh: Bash script to start server and run experiments - code_slm_selection.csv: Selection of used code SLM
dataset/*code_slm_selection.csvapp/testing/app/models_code_load.py: Model classes
testing/utils.py: experiment settings, python script
repeat.sh: repeat n experiments runs or just execute runall
runall_update.sh: experiment settings, bash script
nohup ./repeat.sh > repeat.out 2>&1 &
Or:
nohup ./runall.sh > results/runall.out 2>&1 &
results/*experiments/Files in experiments/
visualize_{profiler} - Visualization of raw data obtained from profilers.01_get_info_{profiler} - Preprocessing of raw data obtained from profilers (script).02_get_time_marks - Get time marks of inferences done during experiment (script)03_analysis_{execution_provider} - Process data for analysis (notebook).04_aggregation - Aggregated data (notebook).05_aggregated_plots - Box plots (notebook).06_tests - Obtaining statistical results of used statistical tests (script).07_tests_merge - Merge test results, organized by dependent variable (notebook).08_analysis - Notebook to analyze results (notebook).09_result_tables - Creation of paper table (notebook).Dataset: testing/inputs.txt
Run server:
uvicorn app.api_code:app --host 0.0.0.0 --port 8000 --reload --reload-dir app
Make inferences:
python3 testing/main.py -i torch -r 5 | tee -a results/out_torch.log
python3 testing/main.py -i onnx -r 5 | tee -a results/out_onnx.log
python3 testing/main.py -i ov -r 5 | tee -a results/out_ov.log
python3 testing/main.py -i torchscript -r 5 | tee -a results/out_torchscript.log
Results are saved in results/
Please use the following BibTex entry:
@article{duran2024serving,
title={Identifying architectural design decisions for achieving green ML serving},
author={Dur{\'a}n, Francisco and Martinez, Matias and Lago, Patricia and Mart{\'\i}nez-Fern{\'a}ndez, Silverio},
journal={arXiv preprint arXiv:},
year={2024}
}
and
@article{duran2024energy,
title={Energy consumption of code small language models serving with runtime engines and execution providers},
author={Dur{\'a}n, Francisco and Martinez, Matias and Lago, Patricia and Mart{\'\i}nez-Fern{\'a}ndez, Silverio},
journal={arXiv preprint arXiv:2412.15441},
year={2024}
}
129 commits
Jupyter Notebook
98.5%
Python
1.4%