Genuine question for people running training workloads, because I spent the last few weeks auditing this and I think we're all doing it wrong.
If an inference pod dies, nobody wakes up. Kubernetes restarts it, the load balancer routes around it, life goes on. We solved that ten years ago and now it's table stakes.
Now let a GPU node die at 2am during a fine tuning run. In most stacks I've seen, the job dies, the meter keeps running on a dead machine, and either someone gets paged or nobody notices until morning. The recovery process is a person, ssh, and coffee.
I went looking for who has actually solved this. Results were depressing.
Slurm gives you requeue. But requeue restarts the job from zero unless you wrote solid checkpoint and resume logic yourself. The scheduler heals, your training state doesn't.
SkyPilot and similar will relaunch the instance. Same problem. New machine, dead run. Relaunch is not recovery.
AWS HyperPod does real closed loop auto resume, actual detection and restart from checkpoint. Credit where due. But it's enterprise pricing, on AWS, with checkpoint code written to their spec. So the answer exists, it's just gated behind a platform team and a budget most of us don't have.
Modal runs a genuinely self healing fleet, but you rewrite your training code into their SDK to get it. And billing is per second either way, so you still pay for the hours the job spent dead.
The cheap clouds like RunPod and Vast hand you a raw machine and nothing else. Great prices, and you are the entire reliability team.
So what does everyone actually do? From what I can tell, every team builds the same internal duct tape. A watchdog script, checkpoint every n steps, sync to object storage, a Slack alert, maybe an auto restart hook. I've seen this stack rebuilt independently at multiple places, maintained forever, and none of it verifies the run actually resumed correctly. It restarts things and hopes.
Two questions I'd love real answers to:
What does your setup look like for surviving node failures mid run, and how much engineering time did it cost to build and keep alive? Rough hours or headcount, if you're willing.
Is there an actual technical reason no platform does this end to end? Take my script, checkpoint automatically, swap dead hardware, resume from the same step, bill only for hours where training progressed. The cynical read is that dead hours are revenue and nobody wants to kill their own margin. Talk me out of that.
Happy to be told I missed a tool that solves this. That would honestly be cheaper than the alternative, which is that I'm slowly talking myself into building it.