automl / neps

Neural Pipeline Search (NePS): Helps deep learning experts find the best neural pipeline.
https://automl.github.io/neps/
Apache License 2.0
39 stars 11 forks source link

Enhance flexibility of 'run_args' to allow mixed usage of direct and YAML-based arguments #67

Closed danrgll closed 4 weeks ago

danrgll commented 2 months ago

Currently, you can either define all arguments via the YAML setting 'run_args' or by providing the arguments directly to NePS.

A mixed approach would suit best. This would enable flexible usage, for example, if you don't want to provide run_pipeline via the YAML and instead want to provide it directly to neps.run(). It also might be beneficial for quick changes, as you would not have to look up the YAML again.

Problem: When quick changes are made to optional parameters that have a default value, it is unclear whether the default value was provided by the user or set by the function itself.

See example: neps.run(run_args="config.yaml", post_summary=False)

run_args: post_summary: True

Proposed Solution: Enable mixed usage solely for required parameters to prevent issues related to default values in optional parameters. Additionally, consider ignoring double references by introducing a hierarchy where 'run_args' takes precedence.

Alternative Solution: Construct a wrapper around neps.run. However, this approach would result in users losing access to the function descriptions of neps.run, which could impact usability.

See #61