feat(optimizer): Add Container Backend for local hyperparameter optimization#156
feat(optimizer): Add Container Backend for local hyperparameter optimization#156NarayanaSabari wants to merge 5 commits intokubeflow:mainfrom
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
dce137b to
def51a3
Compare
Signed-off-by: narayanasabari <sabarinarayanakg@proton.me>
Signed-off-by: narayanasabari <sabarinarayanakg@proton.me>
def51a3 to
6aa02dd
Compare
|
/ok-to-test |
|
/assign @kubeflow/kubeflow-sdk-team |
|
@astefanutti thanks for running the unit test, i will fix all the unit test error by the end of next week. |
Signed-off-by: narayanasabari <sabarinarayanakg@proton.me>
Signed-off-by: narayanasabari <sabarinarayanakg@proton.me>
Signed-off-by: narayanasabari <sabarinarayanakg@proton.me>
Pull Request Test Coverage Report for Build 19736393425Warning: This coverage report may be inaccurate.This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.
Details
💛 - Coveralls |
Fixes #153
Summary
Implements Container Backend for OptimizerClient to enable local hyperparameter optimization without Kubernetes. Uses Optuna TPE for adaptive sampling and Docker/Podman for trial execution.
Implementation
Core Files
kubeflow/optimizer/backends/container/backend.py(~500 lines)OptimizerBackendinterfaceTrainerClientContainer Backend for trial executionThreadPoolExecutorkubeflow/optimizer/backends/container/storage.py(~200 lines){storage_path}/{job_name}/experiment.json+trials/*.jsonkubeflow/optimizer/backends/container/types.py(~100 lines)ContainerBackendConfigwith validationstorage_path,max_parallel_trials,pull_policy,container_runtimeAPI Changes
kubeflow/optimizer/__init__.pyContainerBackendConfigExamples & Documentation
examples/optimizer/simple-local-example.py- Working example (3 trials, tested)examples/optimizer/LOCAL_OPTIMIZATION_GUIDE.md- Technical guidekubeflow/optimizer/backends/container/README.md- Implementation detailsUsage
Key Design Decisions
Testing
metric_name: valuepattern)Dependencies
optuna>=3.0.0(new, for hyperparameter optimization)docker>=6.0.0(existing, via[docker]extras)Breaking Changes
None. New backend addition only.
Removal Files