Skip to content

sustainable-computing-io/kepler-model-server

Repository files navigation

Kepler Power Model

Get started with Kepler Model Server.

This repository contains source code related to Kepler power model. The modules in this repository connects to core Kepler project and kepler-model-db as below.

Diagram

For more details, check the component diagram.

Model server and estimator deployment

Using Kepler Operator

apiVersion: kepler.system.sustainable.computing.io/v1alpha1
kind: KeplerInternal
metadata:
  name: kepler
spec:
..
  modelServer:
    enabled: <true|false>
  estimator:
    node:
      components:
        sidecar: <true|false>
        initUrl: <static model URL>
      total:
        sidecar: <true|false>
        initUrl: <static model URL>

Using manifests with setup script

Deploy with estimator sidecar

OPTS="ESTIMATOR" make deploy

Deploy with estimator sidecar and model server

OPTS="ESTIMATOR SERVER" make deploy

Model Training

Local test

Via docker

  1. Build image for testing, run

    make build-test
  2. Run the test

    Test case Command
    Training pipeline make test-pipeline
    Model server make test-model-server
    Estimator make test-estimator
    Offline Trainer make test-offline-trainer

    For more test information, check here.

With native python environment

Compatible version: python 3.10

  1. Install hatch

  2. Prepare environment

    hatch shell
  3. Run the test

Test case Command
Training pipeline python -u ./tests/pipeline_test.py
Model server Terminal 1: export MODEL_PATH=$(pwd)/tests/models;python src/server/model_server.py Terminal 2: python -u tests/estimator_model_request_test.py
Estimator Terminal 1: python src/estimate/estimator.py Terminal 2: python -u tests/estimator_power_request_test.py
Estimator with Model Server Terminal 1: export MODEL_PATH=$(pwd)/tests/models;python src/server/model_server.py Terminal 2: export MODEL_SERVER_URL=http://localhost:8100;export MODEL_SERVER_ENABLE=true;python -u src/estimate/estimator.py Terminal 3: python -u tests/estimator_power_request_test.py
Offline Trainer Terminal 1: python src/train/offline_trainer.py Terminal 2: python -u tests/offline_trainer_test.py

For more test information, check here.

Contributing

Please check the roadmap and guidelines to join us here.