{"adoption": {"forks": 968, "observed_at": "2026-08-28T04:09:27.580142+00:00", "stars": 5667}, "canonical_url": "https://ross.abutalabs.com/products/torchtitan", "card": {"archived": false, "artifact_type": "framework", "description": "A PyTorch native platform for training generative AI models", "domain": ["large-language-models", "deep-learning", "machine-learning", "gpu-computing", "developer-tools"], "enriched": true, "function": ["llm-training", "machine-learning", "deep-learning", "gpu-computing", "benchmarking"], "health_score": 97, "homepage": null, "language": "Python", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["pytorch/torchtitan"], "name": "pytorch/torchtitan", "platform": ["python", "cloud"], "pushed_at": "2026-08-26T23:25:56+00:00", "repo": "pytorch/torchtitan", "stars": 5667, "tags": ["pytorch", "distributed-training", "llm-pretraining", "parallelism", "reinforcement-learning", "generative-ai", "gpu", "linux", "docker"], "topics": [], "urls": [], "use_cases": ["pretrain large language models like Llama 3.1 on GPU clusters", "experiment with multi-dimensional parallelism in PyTorch", "train generative AI models at scale with minimal code changes", "run reinforcement learning training with vLLM generation", "benchmark PyTorch distributed training features", "extend a minimal training codebase with custom model architectures"], "what_it_is": "torchtitan is a PyTorch-native platform for large-scale training of generative AI models, offering a clean-room implementation of PyTorch's distributed scaling techniques such as multi-dimensional parallelism. It supports pretraining LLMs like Llama 3.1 and includes an experimental RL training stack (TitanRL) that integrates with vLLM.", "when_to_avoid": ["you need a turnkey fine-tuning product with a high-level API like Axolotl or LLaMA-Factory", "you require stable long-term support on older PyTorch releases", "you are not training on GPUs or lack multi-GPU infrastructure", "you need production serving or inference rather than training"], "when_to_choose": ["you want a clean, hackable PyTorch-native codebase for LLM pretraining", "you need to apply FSDP, tensor parallelism, or pipeline parallelism with minimal model code changes", "you are researching new model architectures or distributed training techniques", "you want to stay on the latest PyTorch features and nightlies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/torchtitan", "repo": "pytorch/torchtitan", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.580142+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:54:18.786675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f51cf888b2eeef72138c55f24b7a855d34076150fc9d2c24347d3a55c0eee2ab", "fetched_at": "2026-08-28T04:09:27.580142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pytorch/torchtitan"}, {"content_hash": "761f777cf7ff0a64826fd8e04b3a9008f437a9b573e302d1f5a280d524b98148", "fetched_at": "2026-08-29T08:49:30.746549+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchtitan/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.580142+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:54:18.786675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f51cf888b2eeef72138c55f24b7a855d34076150fc9d2c24347d3a55c0eee2ab", "fetched_at": "2026-08-28T04:09:27.580142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pytorch/torchtitan"}, {"content_hash": "761f777cf7ff0a64826fd8e04b3a9008f437a9b573e302d1f5a280d524b98148", "fetched_at": "2026-08-29T08:49:30.746549+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchtitan/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:54:18.786675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f51cf888b2eeef72138c55f24b7a855d34076150fc9d2c24347d3a55c0eee2ab", "fetched_at": "2026-08-28T04:09:27.580142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pytorch/torchtitan"}, {"content_hash": "761f777cf7ff0a64826fd8e04b3a9008f437a9b573e302d1f5a280d524b98148", "fetched_at": "2026-08-29T08:49:30.746549+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchtitan/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:09:27.580142+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.580142+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.580142+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:54:18.786675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f51cf888b2eeef72138c55f24b7a855d34076150fc9d2c24347d3a55c0eee2ab", "fetched_at": "2026-08-28T04:09:27.580142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pytorch/torchtitan"}, {"content_hash": "761f777cf7ff0a64826fd8e04b3a9008f437a9b573e302d1f5a280d524b98148", "fetched_at": "2026-08-29T08:49:30.746549+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchtitan/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.580142+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.580142+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:54:18.786675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f51cf888b2eeef72138c55f24b7a855d34076150fc9d2c24347d3a55c0eee2ab", "fetched_at": "2026-08-28T04:09:27.580142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pytorch/torchtitan"}, {"content_hash": "761f777cf7ff0a64826fd8e04b3a9008f437a9b573e302d1f5a280d524b98148", "fetched_at": "2026-08-29T08:49:30.746549+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchtitan/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.580142+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.580142+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.580142+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:54:18.786675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f51cf888b2eeef72138c55f24b7a855d34076150fc9d2c24347d3a55c0eee2ab", "fetched_at": "2026-08-28T04:09:27.580142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pytorch/torchtitan"}, {"content_hash": "761f777cf7ff0a64826fd8e04b3a9008f437a9b573e302d1f5a280d524b98148", "fetched_at": "2026-08-29T08:49:30.746549+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchtitan/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.580142+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:27.580142+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:54:18.786675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f51cf888b2eeef72138c55f24b7a855d34076150fc9d2c24347d3a55c0eee2ab", "fetched_at": "2026-08-28T04:09:27.580142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pytorch/torchtitan"}, {"content_hash": "761f777cf7ff0a64826fd8e04b3a9008f437a9b573e302d1f5a280d524b98148", "fetched_at": "2026-08-29T08:49:30.746549+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchtitan/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:54:18.786675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f51cf888b2eeef72138c55f24b7a855d34076150fc9d2c24347d3a55c0eee2ab", "fetched_at": "2026-08-28T04:09:27.580142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pytorch/torchtitan"}, {"content_hash": "761f777cf7ff0a64826fd8e04b3a9008f437a9b573e302d1f5a280d524b98148", "fetched_at": "2026-08-29T08:49:30.746549+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchtitan/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:54:18.786675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f51cf888b2eeef72138c55f24b7a855d34076150fc9d2c24347d3a55c0eee2ab", "fetched_at": "2026-08-28T04:09:27.580142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pytorch/torchtitan"}, {"content_hash": "761f777cf7ff0a64826fd8e04b3a9008f437a9b573e302d1f5a280d524b98148", "fetched_at": "2026-08-29T08:49:30.746549+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchtitan/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:54:18.786675+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f51cf888b2eeef72138c55f24b7a855d34076150fc9d2c24347d3a55c0eee2ab", "fetched_at": "2026-08-28T04:09:27.580142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pytorch/torchtitan"}, {"content_hash": "761f777cf7ff0a64826fd8e04b3a9008f437a9b573e302d1f5a280d524b98148", "fetched_at": "2026-08-29T08:49:30.746549+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/torchtitan/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 71, "rhythm": 59}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["prerelease_only"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 995, "days_push": 7, "days_rel": 194, "gap_med": 69, "n_releases_24m": 4}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}