KEP-3562: [OptimizationJob] Support Multi-Objective Optimization in API and Suggestion Engine
- Dominant language
- Go
- Stars
- 2.2k
- Forks
- 1.1k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 39
Description
### What you would like to be added?
Context:
Phase 1 of OptimizationJob in [KEP-3562](https://github.com/kubeflow/trainer/pull/3565) restricts Objectives to exactly 1 metric (MinItems=1, MaxItems=1).
Problem:
Real-world ML problems often require balancing trade-offs between competing objectives (e.g., maximizing accuracy while minimizing model latency or memory usage).
Future Goals:
- Update CEL validation on `OptimizationJobSpec.objectives` to allow multiple metrics.
- Extend `Optuna` gRPC adapter for multi-objective optimization.
- Update `OptimizationJobStatus` to track multi-metric optimal results.
Relates to KEP-3562 Master Tracking [Issue](https://github.com/kubeflow/trainer/issues/3562).
### Why is this needed?
Multi-objective support allows users to optimize production trade-offs (e.g., model size vs. throughput) directly within a single OptimizationJob.
### Love this feature?
Give it a 👍 We prioritize the features with most 👍
Contributor guide
Research direction
Start with KEP-3562 and its master tracking issue to understand the existing single-objective OptimizationJob design. Then trace the objectives CEL validation, the Optuna gRPC adapter, and OptimizationJobStatus. Done means accepting multiple metrics, supporting multi-objective optimization, and representing multi-metric optimal results.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, grpc, kubernetes, python
- Domain
- api, backend-api-design, machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100