Inspiration
Machine Learning algorithms tend to be very energy-consuming when training them as they require long training hours using a high CPU and even GPU consumption. Given the current energy crisis which will probably be exacerbated in the future, reducing energy will not only be beneficial for the companies but could considerably reduce their carbon footprint. As this results in increased power consumption and cost, it would be good to provide the tools to estimate the energy necessary for training.
What it does
Our project implements a pipeline for dataset generation of hardware features and ML models as predictors and power consumption as output. This pipeline can be used by labs in order to contribute to an open-source project which could then be used to train ML models for energy consumption prediction. The python pipeline also allows scalability by automatically extracting the dataset. The snippets of code can be added before and after the usual training and would not result in a considerable increase in training time or energy consumption.
How we built it
We used different python libraries which allowed us to extract the PC features such as GPU, CPU, and a number of cores as well as the data size, and model features. We are then able to train a supervised learning model such as Linear Regressor which will allow us to estimate the power consumption using these features.
Challenges we ran into
Finding the correct GitHub repositories or libraries allowing us to extract the energy consumption of the different computer components was especially tricky as most of them were not properly maintained and produced path errors during execution. Currently, our project is limited to models available in scikit-learn but could be scaled to other libraries.
Accomplishments that we're proud of
We are proud of having been able to create a working pipeline under 24h and managing to work with different libraries which were not always compatible
What we learned
What's next for SnakeCharmers
Several steps lay ahead among which using the pipeline for estimating the energy consumption of PyTorch or TensorFlow models. The Julia snippet can be completed in order to implement this pipeline for another programming language
Log in or sign up for Devpost to join the conversation.