{"id":38945266,"url":"https://github.com/NVlabs/gbrl","last_synced_at":"2026-01-25T16:01:28.452Z","repository":{"id":247906455,"uuid":"809416663","full_name":"NVlabs/gbrl","owner":"NVlabs","description":"Gradient Boosting Reinforcement Learning (GBRL)","archived":false,"fork":false,"pushed_at":"2025-11-09T18:38:22.000Z","size":8538,"stargazers_count":133,"open_issues_count":0,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-01-14T12:18:48.669Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://nvlabs.github.io/gbrl/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NVlabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":"CLA.md"}},"created_at":"2024-06-02T16:20:40.000Z","updated_at":"2026-01-14T01:40:09.000Z","dependencies_parsed_at":"2024-08-14T12:21:39.798Z","dependency_job_id":"efb30fa8-3589-473a-81fc-767c02a3b661","html_url":"https://github.com/NVlabs/gbrl","commit_stats":null,"previous_names":["nvlabs/gbrl"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/NVlabs/gbrl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVlabs%2Fgbrl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVlabs%2Fgbrl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVlabs%2Fgbrl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVlabs%2Fgbrl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NVlabs","download_url":"https://codeload.github.com/NVlabs/gbrl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NVlabs%2Fgbrl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28755045,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T13:59:49.818Z","status":"ssl_error","status_checked_at":"2026-01-25T13:59:33.728Z","response_time":113,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-17T16:00:28.839Z","updated_at":"2026-01-25T16:01:28.443Z","avatar_url":"https://github.com/NVlabs.png","language":"C++","readme":"# Gradient Boosting Reinforcement Learning (GBRL)\r\nGBRL is a Python-based Gradient Boosting Trees (GBT) library, similar to popular packages such as [XGBoost](https://xgboost.readthedocs.io/en/stable/), [CatBoost](https://catboost.ai/), but specifically designed and optimized for reinforcement learning (RL). GBRL is implemented in C++/CUDA aimed to seamlessly integrate within popular RL libraries. \r\n\r\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/NVlabs/gbrl/blob/master/LICENSE)\r\n[![PyPI version](https://badge.fury.io/py/gbrl.svg)](https://badge.fury.io/py/gbrl)\r\n\r\n## Overview\r\n\r\nGBRL adapts the power of Gradient Boosting Trees to the unique challenges of RL environments, including non-stationarity and the absence of predefined targets. The following diagram illustrates how GBRL uses gradient boosting trees in RL:\r\n\r\n![GBRL Diagram](https://github.com/NVlabs/gbrl/raw/master/docs/images/gbrl_diagram.png)\r\n\r\nGBRL features a shared tree-based structure for policy and value functions, significantly reducing memory and computational overhead, enabling it to tackle complex, high-dimensional RL problems.\r\n\r\n## Key Features: \r\n- GBT Tailored for RL: GBRL adapts the power of Gradient Boosting Trees to the unique challenges of RL environments, including non-stationarity and the absence of predefined targets.\r\n- Optimized Actor-Critic Architecture: GBRL features a shared tree-based structure for policy and value functions. This significantly reduces memory and computational overhead, enabling it to tackle complex, high-dimensional RL problems.\r\n- Hardware Acceleration: GBRL leverages CUDA for hardware-accelerated computation, ensuring efficiency and speed.\r\n- Seamless Integration: GBRL is designed for easy integration with popular RL libraries. We implemented GBT-based actor-critic algorithm implementations (A2C, PPO, and AWR) in stable_baselines3 [GBRL_SB3](https://github.com/NVlabs/gbrl_sb3). \r\n\r\n## Performance\r\n\r\nThe following results, obtained using the `GBRL_SB3` repository, demonstrate the performance of PPO with GBRL compared to neural-networks across various scenarios and environments:\r\n\r\n![PPO GBRL results in stable_baselines3](https://github.com/NVlabs/gbrl/raw/master/docs/images/relative_ppo_performance.png)\r\n\r\n## Getting started\r\n### Dependencies\r\n- Python 3.9 or higher\r\n\r\n### Installation\r\nGBRL provides pre-compiled binaries for easy installation. Choose **one** of the following options:\r\n\r\n**CPU-only installation** (default):  \r\n```pip install gbrl```\r\n\r\n**GPU-enabled installation** (requires CUDA 12 runtime libraries):  \r\n```pip install gbrl-gpu```\r\n\r\nFor further installation details and dependencies see the documentation. \r\n\r\n### Usage Example\r\nFor a detailed usage example, see `tutorial.ipynb`\r\n\r\n## Current Supported Features\r\n### Tree Fitting\r\n- Greedy (Depth-wise) tree building - (CPU/GPU)  \r\n- Oblivious (Symmetric) tree building - (CPU/GPU)  \r\n- L2 split score - (CPU/GPU)  \r\n- Cosine split score - (CPU/GPU) \r\n- Uniform based candidate generation - (CPU/GPU)\r\n- Quantile based candidate generation - (CPU/GPU)\r\n- Supervised learning fitting / Multi-iteration fitting - (CPU/GPU)\r\n    - MultiRMSE loss (only)\r\n- Categorical inputs\r\n- Input feature weights - (CPU/GPU)\r\n### GBT Inference\r\n- SGD optimizer - (CPU/GPU)\r\n- ADAM optimizer - (CPU only)\r\n- Control Variates (gradient variance reduction technique) - (CPU only)\r\n- Shared Tree for policy and value function - (CPU/GPU)\r\n- Linear and constant learning rate scheduler - (CPU/GPU only constant)\r\n- Support for up to two different optimizers (e.g, policy/value) - **(CPU/GPU if both are SGD)\r\n- SHAP value calculation\r\n\r\n# Documentation \r\nFor comprehensive documentation, visit the [GBRL documentation](https://nvlabs.github.io/gbrl/).\r\n\r\n# Contributing\r\nTo contribute to GBRL, please review and sign the Contributor License Agreement (CLA) available at: [https://github.com/NVlabs/gbrl/blob/master/CLA.md](https://github.com/NVlabs/gbrl/blob/master/CLA.md)\r\n\r\n# Citation\r\n``` \r\n@inproceedings{\r\nfuhrer2025gradient,\r\ntitle={Gradient Boosting Reinforcement Learning},\r\nauthor={Benjamin Fuhrer and Chen Tessler and Gal Dalal},\r\nbooktitle={Forty-second International Conference on Machine Learning},\r\nyear={2025},\r\nurl={https://arxiv.org/abs/2407.08250}\r\n}\r\n```\r\n# Licenses\r\nCopyright © 2024-2025, NVIDIA Corporation. All rights reserved.\r\n\r\nThis work is made available under the NVIDIA The MIT License. Click [here](https://github.com/NVlabs/gbrl/blob/master/LICENSE). to view a copy of this license.\r\n\r\n","funding_links":[],"categories":["2025"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNVlabs%2Fgbrl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNVlabs%2Fgbrl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNVlabs%2Fgbrl/lists"}