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.61k stars 651 forks source link

Add support for recursive list, dict, and tuple ref parsing for pipeline controller.add step() parameter override #1099

Closed natephysics closed 1 year ago

natephysics commented 1 year ago

Related Issue \ discussion

https://github.com/allegroai/clearml/issues/1089

Patch Description

Adds support when using PipelineController.add_step(). Currently, it's impossible to parse anything besides strings with _parse_step_ref() in parameter_override. This patch allows list, dics, and tuples to be recursively parsed for step reference substitution. Since recursive features can add computational complexity the new feature is hidden behind a flag that can be passed when adding a step, which makes this a non-breaking change.

Testing Instructions

If recursively_parse_parameters=True in PipelineController.add_step(), recursively parse parameters from parameter_override in lists, dicts, or tuples. Examples: