Model or dataset
intelligent-machine-learning/dlrover avatar
intelligent-machine-learning/dlrover

DLRover for Kubernetes and Ray distributed training

DLRover: An Automatic Distributed Deep Learning System

1,694 stars220 forksPythonNOASSERTION

At a glance

What is it?
DLRover is a Python system for automating distributed deep learning jobs on Kubernetes and Ray. It focuses on failure recovery, resource scaling, and checkpoint handling for large model training, while requiring teams to manage the underlying cluster and model code.
Who is it for?
DLRover is appropriate for teams already operating Kubernetes or Ray clusters that need distributed-training automation, failure recovery, and checkpoint integration. It is less suitable for a single-node experiment or teams without cluster administration support.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 17 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 7, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • intelligent-machine-learning/dlrover1,694 ★ · +5
Star history
Repository2026-10-162026-11-07
intelligent-machine-learning/dlrover1.7k1.7k

5 Stars in the last 22 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

DLRover's Kubernetes and Ray responsibility boundary

DLRover addresses the operational work that appears after a deep learning model has been implemented. The README says model developers can focus on model architecture while DLRover handles hardware acceleration and distributed execution concerns. The intended users are therefore developers and platform teams running large distributed training jobs, not only people looking for a Python training script.

The README identifies Kubernetes and Ray as its operating environments. Its examples are divided into `examples/pytorch/`, `examples/tensorflow/`, and `examples/unified/`, which indicates that framework-specific and shared examples are both part of the project layout. The PyTorch and TensorFlow extension libraries named in the README, ATorch and TFPlus, are separate open-source projects rather than modules that DLRover automatically installs with every deployment.

DLRover is an orchestration and training support system rather than a replacement for the framework that owns the model code. That distinction matters when choosing it. A team already using PyTorch or TensorFlow still needs the training program, framework configuration, data pipeline, and cluster resources. DLRover supplies distributed control and recovery mechanisms around that work. It does not remove the need to define the model, prepare data, or allocate accelerators.

Failure recovery process and restart decisions

The README describes a recovery path that first diagnoses a failure. Depending on the reason, DLRover restarts the process rather than the node for software errors, while hardware errors cause the failed node to restart. This is a concrete policy rather than a general promise that a job will survive every fault.

For TensorFlow parameter-server training, the documented recovery actions are more specific. DLRover can launch a Pod with more memory to recover an out-of-memory node, reassign the data belonging to a failed worker to other workers, and scale parameter servers to fit the model size. Those mechanisms address different failure layers: memory pressure, worker membership, and model capacity.

The README reports a change in goodput for GLM-65B training on thousands of GPUs from 69% to 95%. This is a result reported in project documentation, not an independent measurement. The number explains the intended value of recovery: reducing time lost to failures can improve the proportion of the job spent computing useful training steps. The README does not provide a complete compatibility matrix or a list of every failure that the diagnostic logic can classify. It also does not explain whether all restart decisions are identical across Kubernetes, Ray, PyTorch, and TensorFlow deployments.

Flash Checkpoint data flow and supported APIs

Flash Checkpoint is DLRover's storage and recovery layer for shortening the rollback after a training failure. The README states that it can asynchronously persist checkpoints to storage, persist a checkpoint when the training process fails, and load the checkpoint from host memory after the process restarts.

The documented flow keeps a recent checkpoint close to the training process while also writing it to persistent storage. A restarted process can read from host memory instead of waiting for the normal file-reading path from SSD or NAS. The README describes recovery in the order of seconds for its checkpoint example, but the exact time depends on the model, storage, memory, and framework configuration. The project does not give a universal timing guarantee.

The README lists APIs for DDP, FSDP, DeepSpeed, and Megatron-LM. It also describes asynchronous persistence for Hugging Face `transformers.Trainer` in its project news. These integrations indicate that Flash Checkpoint is not only a generic file-copy utility. Its usefulness still depends on whether the training program uses one of the documented APIs and whether the cluster provides host memory and storage with the expected availability. The README does not document checkpoint size limits, storage credentials, or behavior when both host memory and persistent storage are unavailable.

Automatic scaling across Kubernetes and Ray

Auto-scaling is one of DLRover's stated major features. The README says distributed training can scale resources up or down to improve stability, throughput, and resource utilization. The repository's `setup.py` includes separate optional dependency groups for `k8s`, `ray`, `tensorflow`, `torch`, `nv`, `dashboard`, and `brain`, showing that the project's capabilities are packaged as integrations rather than one undifferentiated runtime.

The README news links to a DLRover architecture release for Ray. It does not document a complete Ray command sequence, cluster configuration schema, or production sizing method. For Kubernetes, the repository includes a `helm_install/` directory and a `docker/` directory, but the README does not give their exact installation commands or values. A deployment team therefore needs the repository's specific installation documentation and cluster conventions rather than a universal launcher described in the overview.

Scaling is a cluster-policy feature, not an automatic promise that every workload can safely reduce its resource allocation. The README describes automatic node and parameter-server changes, but it does not state which workload phases permit downscaling, how checkpoint costs are included in decisions, or how application-specific throughput limits are configured. Those details should be checked in the relevant documentation before assuming that autoscaling will improve a particular job. The practical question is whether DLRover can make resource decisions without violating the training framework's collective communication requirements.

PyTorch, TensorFlow, and XPU integration choices

DLRover's usefulness depends on the framework and accelerator path chosen by the application. The README says it provides extension libraries for PyTorch and TensorFlow, while `setup.py` makes `torch` and `tensorflow` optional dependencies. A Python installation can therefore exist without either framework being installed automatically.

The XPU Timer integration is listed as a separate capability that provides runtime diagnostics and fault-tolerance support. Its separate `xpu_timer/` top-level directory is consistent with the README treating it as a distinct component. The README does not show how to install that component, which hardware it requires, or whether every distributed-training path uses it.

For model developers, the practical distinction is between a training API and a runtime integration. DLRover exposes APIs for several PyTorch distributed approaches and supports TensorFlow parameter-server recovery, but the README does not claim that every API behaves identically. It also does not provide a single compatibility table covering framework versions, accelerator types, checkpoint formats, or Kubernetes and Ray versions. That missing table is a meaningful adoption constraint, particularly for large language model training where changing the runtime can affect collective communication and memory behavior.

PyPI packaging and the first documented example

The README identifies PyPI as a distribution channel through its PyPI status badge, and the repository is located at `https://github.com/intelligent-machine-learning/dlrover`.

The package metadata confirms that `setup.py` declares the package name `dlrover`, requires Python `>=3.8`, and lists core dependencies including `psutil`, `deprecated`, `requests`, and `packaging`. Optional dependency groups are declared for Kubernetes, Ray, TensorFlow, PyTorch, NVIDIA monitoring, dashboard, and brain services. The package version in `setup.py` is `0.7.0.dev0`.

For a first use, begin with the matching example directory rather than a generic launch command. The repository contains `examples/pytorch/`, `examples/tensorflow/`, and `examples/unified/`. The README does not include the contents of those directories, so it cannot confirm the exact working directory, configuration file, or launch entry point. The documented first-use procedure is limited to locating the relevant example and using that example's own documentation for the command. This is an important boundary for adoption: the package metadata establishes Python and dependency requirements, but it does not establish a turnkey command that can be copied without checking the selected example.

Maintenance status and licence review

The repository is not archived, and its last push was on 2026-10-15. The listed releases include v0.6.1 dated 2026-01-06, v0.6.0 dated 2025-12-29, and v0.5.1 dated 2025-07-31. The repository also contains a development version, `0.7.0.dev0`, in `setup.py`, which means the package metadata and the release list describe different stages of the project.

The repository classification reports the licence as Other, with a note to inspect the `LICENSE` file. Source headers in `setup.py` include Apache License, Version 2.0 text, but that does not by itself establish the complete licensing terms for every repository component or external dependency. Teams using the code in a commercial or distributed environment should review the actual `LICENSE` file and the separate extension libraries named by the README.

The combination of Kubernetes or Ray deployment, optional framework dependencies, checkpoint storage, and framework-specific APIs creates operational upgrade work. The README does not define a migration procedure, compatibility policy, or rollback process. It also does not state how changes between `0.7.0.dev0` and the listed releases affect extension APIs or saved checkpoints. Teams should therefore treat the development version as something to inspect rather than assume that it is the same packaging state as v0.6.1.

Editorial conclusion

DLRover is appropriate for teams already operating Kubernetes or Ray clusters that need distributed-training automation, failure recovery, and checkpoint integration. It is less suitable for a single-node experiment or teams without cluster administration support. Review `LICENSE` and verify the documented integration path for the intended framework before adoption, especially because `setup.py` reports version `0.7.0.dev0` while the listed releases stop at v0.6.1.

Frequently asked questions

What is DLRover used for?

DLRover is used to automate distributed deep learning training on Kubernetes and Ray. Its stated functions include fault tolerance, automatic resource scaling, and checkpoint recovery.

Does DLRover support PyTorch and TensorFlow?

Yes. The README describes DLRover extensions for PyTorch and TensorFlow, and `setup.py` provides optional `torch` and `tensorflow` dependency groups.

How does DLRover recover from a training failure?

The README states that DLRover diagnoses the failure, restarts the process for software errors, and restarts failed nodes for hardware errors. Flash Checkpoint can also load a recent checkpoint from host memory after the process restarts.

Official sources

  1. intelligent-machine-learning/dlrover on GitHub
  2. Issues
  3. README
  4. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/intelligent-machine-learning-dlrover.svg)](https://hysenlabs.com/projects/intelligent-machine-learning-dlrover)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/intelligent-machine-learning-dlrover.svg)](https://hysenlabs.com/projects/intelligent-machine-learning-dlrover)

Was this useful?