From a8802194b9e4987e81c19195495b7c3b8dfa5e0f Mon Sep 17 00:00:00 2001 From: pollfly <75068813+pollfly@users.noreply.github.com> Date: Sun, 25 Jul 2021 11:49:58 +0300 Subject: [PATCH] Add hyperparam optimization diagram + minor corrections (#22) * add hpo diagram * edit around hpo diagram * small edits hpo, put tutorial under own heading * fix incorrect wording --- docs/fundamentals/hpo.md | 67 +++++++++++++++++++-------------------- docs/img/hpo_diagram.png | Bin 0 -> 58198 bytes sidebars.js | 2 +- 3 files changed, 33 insertions(+), 36 deletions(-) create mode 100644 docs/img/hpo_diagram.png diff --git a/docs/fundamentals/hpo.md b/docs/fundamentals/hpo.md index 673e0d73..402403fd 100644 --- a/docs/fundamentals/hpo.md +++ b/docs/fundamentals/hpo.md @@ -6,26 +6,39 @@ title: Hyperparameter Optimization Hyperparameters are variables that directly control the behaviors of training algorithms, and have a significant effect on the performance of the resulting machine learning models. Finding the hyperparameter values that yield the best performing models can be complicated. Manually adjusting hyperparameters over the course of many training trials can be -slow and tedious. Luckily, **hyperparameter optimization** can be automated and boosted using **ClearML**'s -`HyperParameterOptimizer` class. +slow and tedious. Luckily, hyperparameter optimization can be automated and boosted using ClearML's +**`HyperParameterOptimizer`** class. ## ClearML's HyperParameter Optimization -ClearML provides the `HyperParameterOptimizer` class which takes care of the entire optimization process for users in -with a simple interface. +ClearML provides the `HyperParameterOptimizer` class, which takes care of the entire optimization process for users in +with a simple interface. -The `HyperParameterOptimizer` class does the following: -* Clones a base experiment that needs to be optimized. -* Changes arguments based on the specified optimizer strategy. -* Tries to minimize / maximize defined objectives. +ClearML's approach to hyperparameter optimization is scalable, easy to set up and to manage, and it makes it easy to +compare results. +### Workflow + +![Hyperparameter optimization diagram](../img/hpo_diagram.png) + +The diagram above demonstrates the typical flow of hyperparameter optimization where the parameters of a base task are optimized: + +1. Configure an Optimization Task with a base task whose parameters will be optimized, and a set of parameter values to + test +1. Clone the base task. Each clone's parameter is overridden with a value from the optimization task +1. Enqueue each clone for execution by a ClearML Agent +1. The Optimization Task records and monitors the cloned tasks' configuration and execution details, and returns a + summary of the optimization results + + +![Optimization results summary chart](../img/fundamentals_hpo_summary.png) + +### Supported Optimizers The `HyperParameterOptimizer` class contains **ClearML**’s hyperparameter optimization modules. Its modular design enables using different optimizers, including existing software frameworks, enabling simple, accurate, and fast hyperparameter optimization. -### Supported Optimizers - * **Optuna** - `automation.optuna.optuna.OptimizerOptuna`. Optuna is the default optimizer in ClearML. It makes use of different samplers such as grid search, random, bayesian, and evolutionary algorithms. For more information, see the [Optuna](https://optuna.readthedocs.io/en/latest/) @@ -34,29 +47,10 @@ optimization. at scale by combining the speed of Hyperband searches with the guidance and guarantees of convergence of Bayesian Optimization. For more information about HpBandSter BOHB, see the [HpBandSter](https://automl.github.io/HpBandSter/build/html/index.html) documentation. -* **Random** uniform sampling of hyperparameters - `automation.optimization.RandomSearch` +* **Random** uniform sampling of hyperparameters - `automation.optimization.RandomSearch`. * **Full grid** sampling strategy of every hyperparameter combination - `Grid search automation.optimization.GridSearch`. -* **Custom** - `automation.optimization.SearchStrategy`. - Use a custom class and inherit from the ClearML automation base strategy class +* **Custom** - `automation.optimization.SearchStrategy` - Use a custom class and inherit from the ClearML automation base strategy class -## How Does it Work? - -**ClearML**'s approach to hyperparameter optimization is scalable, easy to set up and to manage, and it makes it easy to -compare results. - -### Workflow - -Make use of **ClearML**'s hyperparameter optimization capabilities by: -* Initializing an Optimizer Task, which will record and monitor arguments, execution details, results, and more. -* Instantiating a `HyperParameterOptimizer`, where the following is specified: - * Task to optimize - * Hyperparameters to optimize - * Metric to optimize - * Optimizer class (optimization strategy) where the optimization configuration and resources budget are defined - * And more. -* Enqueuing the Task to be executed by a ClearML Agent (or multiple agents) in a remote machine. -* Monitoring the optimization process and viewing the summarized results in the **ClearML web UI** - -![image](../img/fundamentals_hpo_summary.png) ## Defining a hyperparameter optimization search example @@ -68,7 +62,7 @@ Make use of **ClearML**'s hyperparameter optimization capabilities by: from clearml.automation.optuna import OptimizerOptuna ``` 1. Initialize the Task, which will be stored in ClearML Server when the code runs. After the code runs at least once, - it can be reproduced and tuned: + it can be reproduced, and the parameters can be tuned: ```python from clearml import Task @@ -82,7 +76,7 @@ Make use of **ClearML**'s hyperparameter optimization capabilities by: 1. Define the optimization configuration and resources budget: ```python optimizer = HyperParameterOptimizer( - # specifying the Task to be optimized, Task must be in system already so it can be cloned + # specifying the task to be optimized, task must be in system already so it can be cloned base_task_id=TEMPLATE_TASK_ID, # setting the hyper-parameters to optimize hyper_parameters=[ @@ -111,6 +105,9 @@ Make use of **ClearML**'s hyperparameter optimization capabilities by: ```

-Check out the [Hyperparameter Optimization](../guides/optimization/hyper-parameter-optimization) tutorial for a step by step guide. +For more information about `HyperParameterOptimizer` and supported optimization modules, see the [HyperParameterOptimizer class reference](../references/sdk/hpo_optimization_hyperparameteroptimizer.md). + +## Tutorial + +Check out the [Hyperparameter Optimization](../guides/optimization/hyper-parameter-optimization/examples_hyperparam_opt.md) tutorial for a step-by-step guide. - For further information about the `HyperParameterOptimizer` arguments, see the [Automation module reference](../references/sdk/hpo_optimization_hyperparameteroptimizer.md). \ No newline at end of file diff --git a/docs/img/hpo_diagram.png b/docs/img/hpo_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..04314ef18c72ed1d0f4d678fba6efded130d32d2 GIT binary patch literal 58198 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 Tup+__w91f^y^Gy#TO$2mQCHht literal 0 HcmV?d00001 diff --git a/sidebars.js b/sidebars.js index a6fea892..32da76eb 100644 --- a/sidebars.js +++ b/sidebars.js @@ -14,7 +14,7 @@ module.exports = { {'MLOps': ['getting_started/mlops/mlops_first_steps','getting_started/mlops/mlops_second_steps','getting_started/mlops/mlops_best_practices']}] }, 'getting_started/architecture']}, {'ClearML Fundamentals': ['fundamentals/task', 'fundamentals/hyperparameters', 'fundamentals/artifacts', 'fundamentals/logger', 'fundamentals/agents_and_queues', - 'fundamentals/pipelines']}, + 'fundamentals/hpo', 'fundamentals/pipelines']}, 'clearml_sdk', 'clearml_agent', 'clearml_data',