Inspiration and Function
Machine learning has the capacity to fundamentally improve the world for the better, however, the biggest models consume nearly as much power as five cars over their lifetimes. Waste in the context of deep learning is a massive problem, thus in this hack, we hope to allow developers and teams to actively recognize the emissions and environmental impacts of their models. EcoTorch provides the user with an easy-to-use chrome extension for seamless integration with tools such as Google Colab and generates an informative infographic, giving users the power to create the most ecologically friendly model possible. A key driving force for our team is that research and development in Machine Learning should be both: Sustainable and Accessible.
How we built it
We built this project using a chrome extension and the related development techniques for the front end, on the backend we used a Flask API combined with python/pytorch to do the business logic and used CodeCarbon to estimate a model's carbon footprint. To ensure that the user's data which is private and often sensitive is maintained, we construct a proxy dataset. This dataset is then used to train a model and estimate its ecological impact. Further the user does not have re-write their code, but we create a minimal training harness from their model definition.
We then used static HTML and JS for the report.
Challenges we ran into
Although each individual part came together quite smoothly, connecting the individual elements ended up being more of a pain point than any of us expected. With all of our teammates coming from different timezones, we had to take turns to nap to complete the project within the stipulated time duration. Getting the Flask API integrated with the PyTorch business logic, and the chrome extension integrated with the Flask API endpoints were both notable obstacles.
Accomplishments that we're proud of
The core functionality of a chrome extension that provides live analysis for real models is novel and extremely useful feature. In addition, we are able to assemble a training script based on a model definition provided by the user similar to how combine LEGO blocks. This ensures that there is no cognitive overhead on the user to change any part of their program to suit our system thus making sustainable methods more accessible.
What we learned
We learned a lot about integration of applications that utilize multiple frameworks. Additionally, we had the opportunity to learn more about Extension development and Pytorch. Definitely learned a lot about the extent of our energy consumption by training and subsequent deployment of deep learning models.
What's next for EcoTorch
The applications of this project are diverse. In the future, we hope to add additional model support. The next target would be XGboost analysis and improvement it in the future. We would also aim to add a method to directly offset the carbon footprint of each training/inference run and simultaneously support awareness on efficient model building techniques.
GitHub Repo for the App:
https://github.com/gclausen0272/EcoTorch
GitHub Repo for the Extension:

Log in or sign up for Devpost to join the conversation.