Skip to content

Latest commit

 

History

History
92 lines (65 loc) · 5.54 KB

File metadata and controls

92 lines (65 loc) · 5.54 KB

SustainML


Download   •   Docs   •   News   •   Twitter   •   Contact Us



License Robotics Releases SustainML Ubuntu CI Issues Forks Stars Documentation Status



SustainML is a framework and an associated toolkit that will foster energy efficiency throughout the whole life-cycle of ML applications: from the design and exploration phase that includes exploratory iterations of training, testing and optimizing different system versions through the final training of the production systems (which often involves huge amounts of data, computation and epochs) and (where appropriate) continuous online re-training during deployment for the inference process. The framework will optimize the ML solutions based on the application tasks, across levels from hardware to model architecture. It will also collect both previously scattered efficiency-oriented research, as well as novel Green-AI methods.

AI developers from all experience levels can make use of the framework through its emphasis on human-centric interactive transparent design and functional knowledge cores, instead of the common blackbox and fully automated optimization approaches in AutoML.


Project status

This project is a work in progress and the following features presented here will be extended, updated, and improved in future versions.

Project Architecture

The SustainML Framework is composed of different Software Modules, each one related to a specific task, which are specialized in solving the different parts of the machine learning problem architecture definition, starting from the user’s problem description. Each of these modules forms a Node. The main processing steps are:

  1. Encode the problem and constraints defined by the user
  2. Suggest a machine learning model
  3. Propose an optimized hardware for running the suggested model
  4. Warn about the estimated carbon footprint of training the model on the proposed hardware

All the Nodes shall import their corresponding Python library, so that each Node can be abstracted from the DDS communications.

Library

This library repository contains all the modules definitions. This repository is not intended to be used or installed independently. It is consumed internally by the SustainML Framework. The Framework uses the library API to deploy different SustainML modules. Information exchanged between modules is transmitted over DDS.

Framework

The Framework includes a Graphical User Interface (GUI) through which the user interacts with the framework and defines the ML problem. That GUI implements also the Orchestrator node, a key node that feeds the remaining modules with the information provided by the user, retrieves all the results, and display them to the user through this GUI.

This process can be iterative. So, based on a previous solution and the user's feedback, the framework provides new ML solutions.


Repository Architecture

This repository is divided in sub-packages with different targets:

  • sustainml_cpp: Main definition and implementation of the project logic library. C++ API provided.
  • sustainml_docs: ReadTheDocs documentation project (available here)
  • sustainml_modules: Set of pipeline modules that use the Python API.
  • sustainml_py: Wrapper of the project logic library. Python API.
  • sustainml_swig: Bindings from the C++ API sustainml_cpp to the sustainml_py Python API.

Getting Help

If you need support you can reach us by mail at sustainml@eprosima.com or by phone at +34 91 804 34 48.


This project has received funding from the European Union’s Horizon Europe research and innovation programme (HORIZON-CL4-2021-HUMAN-01) under grant agreement No 101070408.