-
Notifications
You must be signed in to change notification settings - Fork 66
feat(optimizer): Add Container Backend for local hyperparameter optimization #156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
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 <[email protected]>
Signed-off-by: narayanasabari <[email protected]>
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 <[email protected]>
Signed-off-by: narayanasabari <[email protected]>
Signed-off-by: narayanasabari <[email protected]>
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