{"adoption": {"forks": 217, "observed_at": "2026-08-28T04:05:21.516065+00:00", "stars": 1680}, "canonical_url": "https://ross.abutalabs.com/products/dlrover", "card": {"archived": false, "artifact_type": "framework", "description": "DLRover: An Automatic Distributed Deep Learning System", "domain": ["deep-learning", "machine-learning", "large-language-models", "microservices"], "enriched": true, "function": ["llm-training", "deep-learning", "machine-learning", "container-orchestration", "monitoring", "scheduling"], "health_score": 97, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["intelligent-machine-learning/dlrover"], "name": "intelligent-machine-learning/dlrover", "platform": ["python", "cloud"], "pushed_at": "2026-08-26T01:27:14+00:00", "repo": "intelligent-machine-learning/dlrover", "stars": 1680, "tags": ["distributed-training", "fault-tolerance", "auto-scaling", "pytorch", "tensorflow", "ray", "k8s-operator", "checkpointing", "devops", "containers", "kubernetes", "docker", "gpu"], "topics": ["distributed-training", "k8s", "llm-training", "hacktoberfest"], "urls": [], "use_cases": ["train large language models on a kubernetes cluster", "automatically scale distributed training resources up and down", "recover distributed training jobs from node failures", "run fault-tolerant pytorch distributed training", "speed up llm training with automatic operations", "manage deep learning training jobs on ray", "recover training from in-memory checkpoints in seconds"], "what_it_is": "DLRover is an automatic distributed deep learning system that manages training of large AI models on Kubernetes and Ray clusters. It provides fault tolerance, auto-scaling of resources, and fast in-memory checkpoint recovery so developers can train models without handling distributed engineering themselves.", "when_to_avoid": ["you only train small single-node models", "you need a lightweight trainer without cluster orchestration", "you use a framework other than pytorch or tensorflow"], "when_to_choose": ["you train large deep learning or LLM models on k8s or ray and want automated fault tolerance and scaling", "you want training jobs to survive hardware failures without manual restarts", "you want to focus on model architecture rather than distributed systems engineering"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dlrover", "repo": "intelligent-machine-learning/dlrover", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:41:28.062223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42cbd20298b6002143e10201a0e5c9f9d03dc5b6cb2c244bc61da283b8033e1a", "fetched_at": "2026-08-28T04:05:21.516065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intelligent-machine-learning/dlrover"}, {"content_hash": "d785604eb18d9b432d3b783ec4cebdb6853cd40d9bc2f4fd934ab8944392292b", "fetched_at": "2026-08-29T11:14:36.346837+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/dlrover/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:41:28.062223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42cbd20298b6002143e10201a0e5c9f9d03dc5b6cb2c244bc61da283b8033e1a", "fetched_at": "2026-08-28T04:05:21.516065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intelligent-machine-learning/dlrover"}, {"content_hash": "d785604eb18d9b432d3b783ec4cebdb6853cd40d9bc2f4fd934ab8944392292b", "fetched_at": "2026-08-29T11:14:36.346837+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/dlrover/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:41:28.062223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42cbd20298b6002143e10201a0e5c9f9d03dc5b6cb2c244bc61da283b8033e1a", "fetched_at": "2026-08-28T04:05:21.516065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intelligent-machine-learning/dlrover"}, {"content_hash": "d785604eb18d9b432d3b783ec4cebdb6853cd40d9bc2f4fd934ab8944392292b", "fetched_at": "2026-08-29T11:14:36.346837+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/dlrover/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:41:28.062223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42cbd20298b6002143e10201a0e5c9f9d03dc5b6cb2c244bc61da283b8033e1a", "fetched_at": "2026-08-28T04:05:21.516065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intelligent-machine-learning/dlrover"}, {"content_hash": "d785604eb18d9b432d3b783ec4cebdb6853cd40d9bc2f4fd934ab8944392292b", "fetched_at": "2026-08-29T11:14:36.346837+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/dlrover/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:41:28.062223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42cbd20298b6002143e10201a0e5c9f9d03dc5b6cb2c244bc61da283b8033e1a", "fetched_at": "2026-08-28T04:05:21.516065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intelligent-machine-learning/dlrover"}, {"content_hash": "d785604eb18d9b432d3b783ec4cebdb6853cd40d9bc2f4fd934ab8944392292b", "fetched_at": "2026-08-29T11:14:36.346837+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/dlrover/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:41:28.062223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42cbd20298b6002143e10201a0e5c9f9d03dc5b6cb2c244bc61da283b8033e1a", "fetched_at": "2026-08-28T04:05:21.516065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intelligent-machine-learning/dlrover"}, {"content_hash": "d785604eb18d9b432d3b783ec4cebdb6853cd40d9bc2f4fd934ab8944392292b", "fetched_at": "2026-08-29T11:14:36.346837+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/dlrover/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:21.516065+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:41:28.062223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42cbd20298b6002143e10201a0e5c9f9d03dc5b6cb2c244bc61da283b8033e1a", "fetched_at": "2026-08-28T04:05:21.516065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intelligent-machine-learning/dlrover"}, {"content_hash": "d785604eb18d9b432d3b783ec4cebdb6853cd40d9bc2f4fd934ab8944392292b", "fetched_at": "2026-08-29T11:14:36.346837+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/dlrover/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:41:28.062223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42cbd20298b6002143e10201a0e5c9f9d03dc5b6cb2c244bc61da283b8033e1a", "fetched_at": "2026-08-28T04:05:21.516065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intelligent-machine-learning/dlrover"}, {"content_hash": "d785604eb18d9b432d3b783ec4cebdb6853cd40d9bc2f4fd934ab8944392292b", "fetched_at": "2026-08-29T11:14:36.346837+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/dlrover/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:41:28.062223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42cbd20298b6002143e10201a0e5c9f9d03dc5b6cb2c244bc61da283b8033e1a", "fetched_at": "2026-08-28T04:05:21.516065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intelligent-machine-learning/dlrover"}, {"content_hash": "d785604eb18d9b432d3b783ec4cebdb6853cd40d9bc2f4fd934ab8944392292b", "fetched_at": "2026-08-29T11:14:36.346837+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/dlrover/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:41:28.062223+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "42cbd20298b6002143e10201a0e5c9f9d03dc5b6cb2c244bc61da283b8033e1a", "fetched_at": "2026-08-28T04:05:21.516065+00:00", "kind": "readme", "missing": false, "url": "https://github.com/intelligent-machine-learning/dlrover"}, {"content_hash": "d785604eb18d9b432d3b783ec4cebdb6853cd40d9bc2f4fd934ab8944392292b", "fetched_at": "2026-08-29T11:14:36.346837+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/dlrover/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 41}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1531, "days_push": 8, "days_rel": 239, "gap_med": 113, "n_releases_24m": 6}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}