sintel-dev / Zephyr

https://dtail.gitbook.io/zephyr/
MIT License
9 stars 2 forks source link

Design of Zephyr hyperparameters #6

Open sarahmish opened 1 year ago

sarahmish commented 1 year ago

Currently Supported Design

current approach to change hyperparameters is through a dictionary we pass to the zephyr api. This dictionary specifies the primitive and the hyperparameter of that primitive that the user wishes to modify.

An example code for an xgb pipeline

"hyperparameters = {
    "xgboost.XGBClassifier#1": {
        "n_estimators": 50
    }
}

zephyr = Zephyr('xgb', hyperparameters)

Ideal Design

the proposed design is that hyperparameters can be exposed at a pipeline level without the need of a dictionary.

An example code that should achieve the same changes in the previous example

zephyr = Zephyr('xgb', n_estimators=50)

under the hood, these hyperparameters should be mapped to the right primitive and altered.

Challenges

there are several cases that need to be resolved with this strategy: