{"adoption": {"forks": 202, "observed_at": "2026-08-28T04:06:34.800574+00:00", "stars": 2289}, "canonical_url": "https://ross.abutalabs.com/products/picotron", "card": {"archived": false, "artifact_type": "framework", "description": "Minimalistic 4D-parallelism distributed training framework for education purpose", "domain": ["large-language-models", "deep-learning", "machine-learning", "education"], "enriched": true, "function": ["llm-training", "machine-learning", "deep-learning"], "health_score": 43, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["huggingface/picotron"], "name": "huggingface/picotron", "platform": ["python"], "pushed_at": "2025-08-26T13:47:24+00:00", "repo": "huggingface/picotron", "stars": 2289, "tags": ["distributed-training", "4d-parallelism", "llm-pretraining", "educational", "pytorch", "tensor-parallelism", "pipeline-parallelism", "data-parallelism", "context-parallelism", "nanogpt-inspired", "gpu", "linux", "docker"], "topics": [], "urls": [], "use_cases": ["learn how distributed LLM training works", "pre-train a Llama-style model with data, tensor, and pipeline parallelism", "understand 4D parallelism with a small readable codebase", "experiment with distributed training techniques on a multi-GPU cluster", "follow a tutorial to build a distributed training framework from scratch", "run 3D parallelism training on Slurm"], "what_it_is": "Picotron is a minimalist, hackable distributed training framework for pre-training Llama-like large language models using 4D parallelism (data, tensor, pipeline, and context parallel). Built by Hugging Face in the spirit of NanoGPT, it prioritizes readability and education over performance, with each core file kept under 300 lines of code.", "when_to_avoid": ["you need maximum training throughput or production-grade performance", "you want a battle-tested framework for large-scale production pre-training", "you need broad model architecture support beyond Llama-like models", "you require extensive documentation and enterprise support"], "when_to_choose": ["you want to learn or teach distributed LLM training concepts", "you need a small, hackable codebase to modify for research experiments", "you want a simpler alternative to Megatron-LM or Nanotron for study", "you are pre-training small-to-medium Llama-like models on a few GPUs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/picotron", "repo": "huggingface/picotron", "role": "main", "score": 40}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.800574+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:40:49.504832+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45cece186da9eb77f9192e3652edf57b9bce38dbb3025b6e9d62e90c0e002617", "fetched_at": "2026-08-28T04:06:34.800574+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huggingface/picotron"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.800574+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:40:49.504832+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45cece186da9eb77f9192e3652edf57b9bce38dbb3025b6e9d62e90c0e002617", "fetched_at": "2026-08-28T04:06:34.800574+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huggingface/picotron"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:40:49.504832+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45cece186da9eb77f9192e3652edf57b9bce38dbb3025b6e9d62e90c0e002617", "fetched_at": "2026-08-28T04:06:34.800574+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huggingface/picotron"}], "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:06:34.800574+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.800574+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.800574+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:40:49.504832+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45cece186da9eb77f9192e3652edf57b9bce38dbb3025b6e9d62e90c0e002617", "fetched_at": "2026-08-28T04:06:34.800574+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huggingface/picotron"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.800574+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.800574+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:40:49.504832+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45cece186da9eb77f9192e3652edf57b9bce38dbb3025b6e9d62e90c0e002617", "fetched_at": "2026-08-28T04:06:34.800574+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huggingface/picotron"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.800574+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.800574+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.800574+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:40:49.504832+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45cece186da9eb77f9192e3652edf57b9bce38dbb3025b6e9d62e90c0e002617", "fetched_at": "2026-08-28T04:06:34.800574+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huggingface/picotron"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.800574+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:34.800574+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:40:49.504832+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45cece186da9eb77f9192e3652edf57b9bce38dbb3025b6e9d62e90c0e002617", "fetched_at": "2026-08-28T04:06:34.800574+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huggingface/picotron"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:40:49.504832+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45cece186da9eb77f9192e3652edf57b9bce38dbb3025b6e9d62e90c0e002617", "fetched_at": "2026-08-28T04:06:34.800574+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huggingface/picotron"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:40:49.504832+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45cece186da9eb77f9192e3652edf57b9bce38dbb3025b6e9d62e90c0e002617", "fetched_at": "2026-08-28T04:06:34.800574+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huggingface/picotron"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:40:49.504832+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "45cece186da9eb77f9192e3652edf57b9bce38dbb3025b6e9d62e90c0e002617", "fetched_at": "2026-08-28T04:06:34.800574+00:00", "kind": "readme", "missing": false, "url": "https://github.com/huggingface/picotron"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 38, "longevity": 51, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 714, "days_push": 372, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 40, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}