kubeflow / kubeflow/trainer

KEP-3562: Handle TrainJob failures and invalid search space tracking

Open
#3,743 4 comments 0 reactions 1 assignee Claimed by @saivedant169 View on GitHub
area/hpo kind/feature kind/plan-kep
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:**
During the initial implementation of [KEP-3562](https://github.com/kubeflow/trainer/pull/3565), we [discussed](https://github.com/kubeflow/trainer/pull/3565#discussion_r3579995629) how to handle individual `TrainJob` failures without failing the entire `OptimizationJob`.

**Problem:**
It is difficult to distinguish between failures caused by invalid hyperparameters (e.g., CUDA OOM) and transient infrastructure issues (e.g., node network failures). Currently, failed trials do not pass penalty information back to the optimizer.

**Future Goals (Phase 2):**
* Ensure the `OptimizationJob` continues running even if individual `TrainJobs` fail.
* Investigate passing `inf` values or using `constraints_func` to tell the Optimizer to avoid suggesting invalid parameters.
* Explore mechanisms (e.g., `PodFailurePolicies` or user-code signaling) to differentiate infrastructure errors from configuration errors.

*Relates to KEP-3562 Master Tracking [Issue](https://github.com/kubeflow/trainer/issues/3562).*

### Why is this needed?

To prevent a single bad hyperparameter trial from crashing the entire experiment, and to teach the optimizer to avoid bad configurations by explicitly penalizing them instead of confusing them with random infrastructure glitches.

### Love this feature?

Give it a 👍 We prioritize the features with most 👍

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.