allegroai / clearml

ClearML - Auto-Magical CI/CD to streamline your AI workload. Experiment Management, Data Management, Pipeline, Orchestration, Scheduling & Serving in one MLOps/LLMOps solution
https://clear.ml/docs
Apache License 2.0
5.72k stars 657 forks source link

Show all HPO parameters in the "Parallel Coordinates" plot (bug / feature request) #1060

Open Make42 opened 1 year ago

Make42 commented 1 year ago

I am using two HPOs on the same task:

first_optimizer = HyperParameterOptimizer(
    hyper_parameters=[
        DiscreteParameterRange('Args/method__training/regularization_parameter', values=[0.00001, 3, 100000]),
    ])

opt_task = first_optimizer._task

second_optimizer = HyperParameterOptimizer(
    base_task_id=first_optimizer_best[0].id,
    auto_connect_task=opt_task  # This is required, so we only have one optimization task
    hyper_parameters=[
        DiscreteParameterRange('Args/method__training/confidence_as_probability', values=[False, True]),
        DiscreteParameterRange('Args/method__training/hierarchical', values=['False', 'perLevel', 'perParentNode']),
    ])

This should not be too surprising, considering that auto_connect_task exists in the first place.

In the Web UI, in the plots for opt_task, I see all HPO instances, but only the hyperparameters for the second optimizer. I would appreciate it if you could ensure that the hyperparameters of the first optimization are included.

This is a mixture of a feature request and a bug report. The latter, because the experiments of the first HPO were considered - but only partially.

ainoam commented 1 year ago

@Make42 While you indeed can force multiple HPOs to make use of the same task object, ClearML is designed for controlling a single HPO per controller task.

Re-architecting ClearML HPO to support this use-case is not currently planned, but we can keep this open for referral in the future :)

Make42 commented 1 year ago

@ainoam : I see. Can you give an example with which use-case the auto_connect_task argument was introduced if not the one I presented?