Skip to main content

Gradient Boosting Reinforcement Learning (GBRL)

GBRL is a Python-based Gradient Boosting Trees (GBT) library, similar to popular packages such as XGBoost, CatBoost, but specifically designed and optimized for reinforcement learning (RL). GBRL is implemented in C++/CUDA aimed to seamlessly integrate within popular RL libraries.

License PyPI version

Overview

GBRL 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:

GBRL Diagram

GBRL 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.

Key Features:

  • 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.
  • 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.
  • Hardware Acceleration: GBRL leverages CUDA for hardware-accelerated computation, ensuring efficiency and speed.
  • 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.

Performance

The following results, obtained using the GBRL_SB3 repository, demonstrate the performance of PPO with GBRL compared to neural-networks across various scenarios and environments:

PPO GBRL results in stable_baselines3

Getting started

Dependencies

  • Python 3.9 or higher

Installation

GBRL provides pre-compiled binaries for easy installation. Choose one of the following options:

CPU-only installation (default):
pip install gbrl

GPU-enabled installation (requires CUDA 12 runtime libraries):
pip install gbrl-gpu

For further installation details and dependencies see the documentation.

Usage Example

For a detailed usage example, see tutorial.ipynb

Current Supported Features

Tree Fitting

  • Greedy (Depth-wise) tree building - (CPU/GPU)
  • Oblivious (Symmetric) tree building - (CPU/GPU)
  • L2 split score - (CPU/GPU)
  • Cosine split score - (CPU/GPU)
  • Uniform based candidate generation - (CPU/GPU)
  • Quantile based candidate generation - (CPU/GPU)
  • Supervised learning fitting / Multi-iteration fitting - (CPU/GPU)
    • MultiRMSE loss (only)
  • Categorical inputs
  • Input feature weights - (CPU/GPU)
  • Monotonic constraints - (CPU/GPU, oblivious trees; the whole model must use SGD, Adam is not allowed on any output)

GBT Inference

  • SGD optimizer - (CPU/GPU)
  • ADAM optimizer - (CPU only)
  • Control Variates (gradient variance reduction technique) - (CPU only)
  • Shared Tree for policy and value function - (CPU/GPU)
  • Linear and constant learning rate scheduler - (CPU/GPU, linear scheduler GPU only for Oblivious trees)
  • Support for up to two different optimizers (e.g., policy/value) - (CPU/GPU if both are SGD)
  • SHAP value calculation (optimizer-aware; return_base=True gives values that reconstruct the prediction)

Documentation

For comprehensive documentation, visit the GBRL documentation.

Contributing

To contribute to GBRL, please review and sign the Contributor License Agreement (CLA) available at: https://github.com/NVlabs/gbrl/blob/master/CLA.md

Citation

@inproceedings{
fuhrer2025gradient,
title={Gradient Boosting Reinforcement Learning},
author={Benjamin Fuhrer and Chen Tessler and Gal Dalal},
booktitle={Forty-second International Conference on Machine Learning},
year={2025},
url={https://arxiv.org/abs/2407.08250}
}

Licenses

Copyright © 2024-2026, NVIDIA Corporation. All rights reserved.

This work is made available under the NVIDIA MIT License. Click here to view a copy of this license.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gbrl_gpu-1.1.9.tar.gz (272.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gbrl_gpu-1.1.9-cp312-cp312-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.12Windows x86-64

gbrl_gpu-1.1.9-cp312-cp312-manylinux_2_31_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

gbrl_gpu-1.1.9-cp311-cp311-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.11Windows x86-64

gbrl_gpu-1.1.9-cp311-cp311-manylinux_2_31_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

gbrl_gpu-1.1.9-cp310-cp310-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.10Windows x86-64

gbrl_gpu-1.1.9-cp310-cp310-manylinux_2_31_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ x86-64

gbrl_gpu-1.1.9-cp39-cp39-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.9Windows x86-64

gbrl_gpu-1.1.9-cp39-cp39-manylinux_2_31_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.31+ x86-64

File details

Details for the file gbrl_gpu-1.1.9.tar.gz.

File metadata

  • Download URL: gbrl_gpu-1.1.9.tar.gz
  • Upload date:
  • Size: 272.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.15

File hashes

Hashes for gbrl_gpu-1.1.9.tar.gz
Algorithm Hash digest
SHA256 7e6875af4b8e7489e4c9e3ef5c8ff80a67f3f6685860d88614a539303e94cb3e
MD5 2449dc0103aeeaa534973997b65e5ee5
BLAKE2b-256 6ce9679162a7daa9b58740d3328db8985acd45904468df77d6a668390e6bb80b

See more details on using hashes here.

File details

Details for the file gbrl_gpu-1.1.9-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: gbrl_gpu-1.1.9-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for gbrl_gpu-1.1.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0751f1e7c5ae492e5893ff471916cfa0b32a3aa0b6d0ce9e1045e2fa4bbd6c0e
MD5 50d84003cfca2ee759e4903b666c9c01
BLAKE2b-256 5ae5d8ec316f64c02aa0fbcdf3f6c195ce5ae04686296589506c657a583c95fe

See more details on using hashes here.

File details

Details for the file gbrl_gpu-1.1.9-cp312-cp312-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gbrl_gpu-1.1.9-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 9929046ff9a484b102e70dc79f95cb8783f6756bbfdbd1d022f04bf4dc467b5a
MD5 45fb762a1bc6308bf7294f9ae6c9dd84
BLAKE2b-256 772c3e9ada50e250d333cec1efcd8497ae35b2e17ef2b29a155a223f62f090d4

See more details on using hashes here.

File details

Details for the file gbrl_gpu-1.1.9-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: gbrl_gpu-1.1.9-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for gbrl_gpu-1.1.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e64be236e4f83d9eb0d8f7f1d76c4c5d6ac1befa6af7b6d32e8726c46d50fe7c
MD5 c95921ce431ca2c937367fa40a29c8ff
BLAKE2b-256 4a7be310090da47fc01b97d9e777b395a161b6c8bf5a60b4f69470ad16d397e4

See more details on using hashes here.

File details

Details for the file gbrl_gpu-1.1.9-cp311-cp311-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gbrl_gpu-1.1.9-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 213f285946b43aa3acad7efc1d79e749aad49a902828a6c22e981557f4a29c2e
MD5 d761c98b8578d12922c178c27e0ce97b
BLAKE2b-256 971c88b112c8979192918b4e6d278577644473bc6ea88b3d1137fbeb81c29d73

See more details on using hashes here.

File details

Details for the file gbrl_gpu-1.1.9-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: gbrl_gpu-1.1.9-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for gbrl_gpu-1.1.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 21c11c5a3f2aefaafaf0c0bb291718097e3c573d87d01c403a0e784b33e13604
MD5 d8dc92a93d1e9dd48358b46ae96032f4
BLAKE2b-256 4d7e04efdb1dfbd50faea1760a8c05f39089b7b40b573923e9a5e6d3e398e3e0

See more details on using hashes here.

File details

Details for the file gbrl_gpu-1.1.9-cp310-cp310-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gbrl_gpu-1.1.9-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 6f80a94a8b5e41ae76265d17896ad53d6fd21e9fe0e882a0d6c74329dfcc4950
MD5 7a97796e82524b2718721d30ae14d515
BLAKE2b-256 8774a795dd7f68865fb90b9ec838705e6f463d6d4a6e1009678a0eb758e888a4

See more details on using hashes here.

File details

Details for the file gbrl_gpu-1.1.9-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: gbrl_gpu-1.1.9-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for gbrl_gpu-1.1.9-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f197fc2bbe393a8501d5beb8e4796c37af8c068f515383df286fad2f46aee29c
MD5 b6d0ca5958bb59f5026471dce2cb9d2d
BLAKE2b-256 810fceb6d3d406beb0d4388bc4754355d1879246487abdcc1f6e34e7c5efb573

See more details on using hashes here.

File details

Details for the file gbrl_gpu-1.1.9-cp39-cp39-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for gbrl_gpu-1.1.9-cp39-cp39-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 0541d8bd7152aefb51668c6cc9c709389633015555cacd330535b5def1d25a4f
MD5 6e8ae7e5f97965fb7be25e308e60aede
BLAKE2b-256 65b3ddcfb96778ad490e9aca0dc4b39420b658c691f4d421990ba4d64cb1fc45

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.9 This release

9 files

1.1.8

9 files

1.1.7

9 files

1.1.6

9 files

1.1.5

9 files

1.1.4

9 files

1.1.3

9 files

1.1.1

9 files

1.1.0

9 files

1.0.12

13 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page