{"adoption": {"forks": 685, "observed_at": "2026-08-28T04:08:55.658464+00:00", "stars": 4655}, "canonical_url": "https://ross.abutalabs.com/products/rlinf", "card": {"archived": false, "artifact_type": "framework", "description": "RLinf: Reinforcement Learning Infrastructure for Embodied and Agentic AI", "domain": ["reinforcement-learning", "machine-learning", "robotics", "artificial-intelligence", "gpu-computing"], "enriched": true, "function": ["reinforcement-learning", "llm-training", "machine-learning", "gpu-computing", "workflow-automation"], "health_score": 100, "homepage": "https://rlinf.readthedocs.io/en/latest/", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["RLinf/RLinf"], "name": "RLinf/RLinf", "platform": ["python"], "pushed_at": "2026-08-26T12:20:04+00:00", "repo": "RLinf/RLinf", "stars": 4655, "tags": ["rl-infrastructure", "embodied-ai", "agentic-ai", "vla-training", "grpo", "rlhf", "vision-language-action", "distributed-training", "robot-learning", "video-generation", "gpu", "linux", "docker"], "topics": ["reinforcement-learning", "agentic-ai", "rlinf", "vla-rl", "embodied-ai", "rl-infra"], "urls": [], "use_cases": ["train vision-language-action models with reinforcement learning", "run GRPO training for large language models", "RL training for robot manipulation policies on LIBERO", "reinforcement learning for video generation models", "train agentic AI models with RL post-training", "scalable distributed RL infrastructure for embodied AI research"], "what_it_is": "RLinf is an open-source, flexible and scalable reinforcement learning training infrastructure for embodied AI (vision-language-action models) and agentic AI. It supports distributed RL training workflows like GRPO across multiple GPU accelerators including NVIDIA, AMD ROCm, Huawei Ascend, and Moore Threads.", "when_to_avoid": ["you only need simple single-GPU RL experiments with lightweight libraries like Gym or Stable-Baselines3", "you need supervised fine-tuning only without reinforcement learning", "you work outside Python-based ML training pipelines"], "when_to_choose": ["you need a scalable RL training backbone for VLA or agentic models", "you want multi-vendor accelerator support (NVIDIA, AMD, Ascend, MUSA)", "you need GRPO-style post-training for LLMs or diffusion models", "you want an RL infrastructure officially integrated with Isaac Lab"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rlinf", "repo": "RLinf/RLinf", "role": "main", "score": 74}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:55.658464+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:19:28.661348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8fd0ca5ece5a1ac6e444a2e0a65e863f77d19566de8243da33161af0467bd639", "fetched_at": "2026-08-28T04:08:55.658464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RLinf/RLinf"}, {"content_hash": "a110ed57b24cfdd44d8dcec4526ce404ef4b17727ff53b9bff0a2783f0a72c9e", "fetched_at": "2026-08-29T09:04:31.137163+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rlinf/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:55.658464+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:19:28.661348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8fd0ca5ece5a1ac6e444a2e0a65e863f77d19566de8243da33161af0467bd639", "fetched_at": "2026-08-28T04:08:55.658464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RLinf/RLinf"}, {"content_hash": "a110ed57b24cfdd44d8dcec4526ce404ef4b17727ff53b9bff0a2783f0a72c9e", "fetched_at": "2026-08-29T09:04:31.137163+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rlinf/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:19:28.661348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8fd0ca5ece5a1ac6e444a2e0a65e863f77d19566de8243da33161af0467bd639", "fetched_at": "2026-08-28T04:08:55.658464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RLinf/RLinf"}, {"content_hash": "a110ed57b24cfdd44d8dcec4526ce404ef4b17727ff53b9bff0a2783f0a72c9e", "fetched_at": "2026-08-29T09:04:31.137163+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rlinf/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:08:55.658464+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:55.658464+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:55.658464+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:19:28.661348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8fd0ca5ece5a1ac6e444a2e0a65e863f77d19566de8243da33161af0467bd639", "fetched_at": "2026-08-28T04:08:55.658464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RLinf/RLinf"}, {"content_hash": "a110ed57b24cfdd44d8dcec4526ce404ef4b17727ff53b9bff0a2783f0a72c9e", "fetched_at": "2026-08-29T09:04:31.137163+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rlinf/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:55.658464+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:55.658464+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:19:28.661348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8fd0ca5ece5a1ac6e444a2e0a65e863f77d19566de8243da33161af0467bd639", "fetched_at": "2026-08-28T04:08:55.658464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RLinf/RLinf"}, {"content_hash": "a110ed57b24cfdd44d8dcec4526ce404ef4b17727ff53b9bff0a2783f0a72c9e", "fetched_at": "2026-08-29T09:04:31.137163+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rlinf/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:55.658464+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:55.658464+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:55.658464+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:19:28.661348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8fd0ca5ece5a1ac6e444a2e0a65e863f77d19566de8243da33161af0467bd639", "fetched_at": "2026-08-28T04:08:55.658464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RLinf/RLinf"}, {"content_hash": "a110ed57b24cfdd44d8dcec4526ce404ef4b17727ff53b9bff0a2783f0a72c9e", "fetched_at": "2026-08-29T09:04:31.137163+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rlinf/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:55.658464+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:55.658464+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:19:28.661348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8fd0ca5ece5a1ac6e444a2e0a65e863f77d19566de8243da33161af0467bd639", "fetched_at": "2026-08-28T04:08:55.658464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RLinf/RLinf"}, {"content_hash": "a110ed57b24cfdd44d8dcec4526ce404ef4b17727ff53b9bff0a2783f0a72c9e", "fetched_at": "2026-08-29T09:04:31.137163+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rlinf/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:19:28.661348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8fd0ca5ece5a1ac6e444a2e0a65e863f77d19566de8243da33161af0467bd639", "fetched_at": "2026-08-28T04:08:55.658464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RLinf/RLinf"}, {"content_hash": "a110ed57b24cfdd44d8dcec4526ce404ef4b17727ff53b9bff0a2783f0a72c9e", "fetched_at": "2026-08-29T09:04:31.137163+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rlinf/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:19:28.661348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8fd0ca5ece5a1ac6e444a2e0a65e863f77d19566de8243da33161af0467bd639", "fetched_at": "2026-08-28T04:08:55.658464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RLinf/RLinf"}, {"content_hash": "a110ed57b24cfdd44d8dcec4526ce404ef4b17727ff53b9bff0a2783f0a72c9e", "fetched_at": "2026-08-29T09:04:31.137163+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rlinf/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:19:28.661348+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8fd0ca5ece5a1ac6e444a2e0a65e863f77d19566de8243da33161af0467bd639", "fetched_at": "2026-08-28T04:08:55.658464+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RLinf/RLinf"}, {"content_hash": "a110ed57b24cfdd44d8dcec4526ce404ef4b17727ff53b9bff0a2783f0a72c9e", "fetched_at": "2026-08-29T09:04:31.137163+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/rlinf/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 27, "rhythm": 69}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 384, "days_push": 7, "days_rel": 49, "gap_med": 104.5, "n_releases_24m": 3}, "score": 74, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}