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.

Metadata

Release files for gbrl 1.1.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gbrl 1.1.9
File Size Uploaded
gbrl-1.1.9.tar.gz 272.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for gbrl 1.1.9
File
gbrl-1.1.9-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
gbrl-1.1.9-cp312-cp312-manylinux_2_31_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.31+ x86-64 Details
gbrl-1.1.9-cp312-cp312-macosx_15_0_arm64.whl CPython 3.12 CPython 3.12 macOS 15.0+ ARM64 Details
gbrl-1.1.9-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details
gbrl-1.1.9-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
gbrl-1.1.9-cp311-cp311-manylinux_2_31_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.31+ x86-64 Details
gbrl-1.1.9-cp311-cp311-macosx_15_0_arm64.whl CPython 3.11 CPython 3.11 macOS 15.0+ ARM64 Details
gbrl-1.1.9-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details
gbrl-1.1.9-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
gbrl-1.1.9-cp310-cp310-manylinux_2_31_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.31+ x86-64 Details
gbrl-1.1.9-cp310-cp310-macosx_15_0_arm64.whl CPython 3.10 CPython 3.10 macOS 15.0+ ARM64 Details
gbrl-1.1.9-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details
gbrl-1.1.9-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
gbrl-1.1.9-cp39-cp39-manylinux_2_31_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.31+ x86-64 Details
gbrl-1.1.9-cp39-cp39-macosx_15_0_arm64.whl CPython 3.9 CPython 3.9 macOS 15.0+ ARM64 Details
gbrl-1.1.9-cp39-cp39-macosx_11_0_x86_64.whl CPython 3.9 CPython 3.9 macOS 11.0+ x86-64 Details

Total release size: 15.0 MB

Release files / gbrl-1.1.9.tar.gz

Download URL gbrl-1.1.9.tar.gz
Size 272.7 kB
Tags Source
SHA-256 checksum
How to use checksums
fddbd7f178be6b84b147b9c77b88ade03ff8a92d02607e01c2da019c5e60cc03
BLAKE2b-256 checksum
How to use checksums
24edfd00c89ee7263165f5a967252d279b52a29d72590663cfc034ef0c8d74a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.15

Release files / gbrl-1.1.9-cp312-cp312-win_amd64.whl

Download URL gbrl-1.1.9-cp312-cp312-win_amd64.whl
Size 819.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
f5d220c3ff4f86b0cf448dc309f2c14c51a4fd44e3d5d1aad1fc8055368941e8
BLAKE2b-256 checksum
How to use checksums
090cfbbb1d3d499edfbbbd979aa591607cc4c82a5b0e9595c1b11208b663bf94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.13

Release files / gbrl-1.1.9-cp312-cp312-manylinux_2_31_x86_64.whl

Download URL gbrl-1.1.9-cp312-cp312-manylinux_2_31_x86_64.whl
Size 1.1 MB
Tags CPython 3.12 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
e0930fba694a25372f4f320b1249600fcf64920f420b90d77318b73cdc6831e8
BLAKE2b-256 checksum
How to use checksums
af59d2d06172d533da4ed62701c68f9a98c88c8038c1e38f3465dbb330f3ab85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.13

Release files / gbrl-1.1.9-cp312-cp312-macosx_15_0_arm64.whl

Download URL gbrl-1.1.9-cp312-cp312-macosx_15_0_arm64.whl
Size 1.3 MB
Tags CPython 3.12 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
0f381803a131b0f2c1b706688a4492d5aa4624278322fa474b451f71b18337c6
BLAKE2b-256 checksum
How to use checksums
adf1091ef944a1243185eb1549d22f0a104005bbb01d6229f68f24dcb0bd1bec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / gbrl-1.1.9-cp312-cp312-macosx_11_0_x86_64.whl

Download URL gbrl-1.1.9-cp312-cp312-macosx_11_0_x86_64.whl
Size 538.6 kB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
c860063dc1a1b16f45540442cd2e83db29fd77b2a351ca6711ef536333ddc27a
BLAKE2b-256 checksum
How to use checksums
bc170a12081a13fc398921643680567fd4282bf9c40c70c1fe4d290b7f77aaa3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / gbrl-1.1.9-cp311-cp311-win_amd64.whl

Download URL gbrl-1.1.9-cp311-cp311-win_amd64.whl
Size 821.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
9fc064eb6855a62774a19ee01bb84f36db853459d3d3338918e0ddfe48b428f2
BLAKE2b-256 checksum
How to use checksums
bf0b5cd84567f6361b203872b1ef9cbf2d4c696e7ade7237aef12cfb494ec211
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.13

Release files / gbrl-1.1.9-cp311-cp311-manylinux_2_31_x86_64.whl

Download URL gbrl-1.1.9-cp311-cp311-manylinux_2_31_x86_64.whl
Size 1.1 MB
Tags CPython 3.11 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
881156176f408c2eb787f07f5f287c69f7964f67d470bbc04a699e596b78bc80
BLAKE2b-256 checksum
How to use checksums
e2776b09e15e4219f825440c5ea96dca4d56698f6b0add4e300221e1022c0a37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.13

Release files / gbrl-1.1.9-cp311-cp311-macosx_15_0_arm64.whl

Download URL gbrl-1.1.9-cp311-cp311-macosx_15_0_arm64.whl
Size 1.3 MB
Tags CPython 3.11 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
adebd3f8cc8ab8e5479f0c4112b67f4e2e93922ab71612f99adc85625e9adb5d
BLAKE2b-256 checksum
How to use checksums
11330de9f655452a4080f4ae97809161bf6578dbee4fb0cac219a727565dab3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / gbrl-1.1.9-cp311-cp311-macosx_11_0_x86_64.whl

Download URL gbrl-1.1.9-cp311-cp311-macosx_11_0_x86_64.whl
Size 539.1 kB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
34d8cb02e380d18f8ff072219deaa229c78b1229fc4edf2ab6b847b782137825
BLAKE2b-256 checksum
How to use checksums
18dc7ab44f21eebef62ebacb824980805daf9c519ea0bcb9e3ce7a2cb6a6dd74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / gbrl-1.1.9-cp310-cp310-win_amd64.whl

Download URL gbrl-1.1.9-cp310-cp310-win_amd64.whl
Size 820.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
aeed15dfc2bc3bcc028d63a8df06f3c703aaf2f3ee1d3ca0e099ca1205e89b79
BLAKE2b-256 checksum
How to use checksums
789dfc818bc06d600fa90738fadd3b6792a265419e4265475bbbf731810c4f95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.13

Release files / gbrl-1.1.9-cp310-cp310-manylinux_2_31_x86_64.whl

Download URL gbrl-1.1.9-cp310-cp310-manylinux_2_31_x86_64.whl
Size 1.0 MB
Tags CPython 3.10 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
9c75e67e7a138b9cfe82ef5e9f34504afca1f932a99fff8ca642adf7160fba1a
BLAKE2b-256 checksum
How to use checksums
72ba50dc26640d5f649cd38bbb135b2aa222a9a55e9c9975c17388b9899123e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.13

Release files / gbrl-1.1.9-cp310-cp310-macosx_15_0_arm64.whl

Download URL gbrl-1.1.9-cp310-cp310-macosx_15_0_arm64.whl
Size 1.3 MB
Tags CPython 3.10 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
c13b4e51de10263590bd6d1451a662c4a63cb360cd768786038c2e6b5369955e
BLAKE2b-256 checksum
How to use checksums
2d1b3517acdaea8bfad2b0364ae3df0855f37b44cc97c032abf0cc30f8db8e98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / gbrl-1.1.9-cp310-cp310-macosx_11_0_x86_64.whl

Download URL gbrl-1.1.9-cp310-cp310-macosx_11_0_x86_64.whl
Size 537.7 kB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
3311fc2d1cdcedd945bf7bd2d29a86782d2a71a2feb609174272ffd1284693a1
BLAKE2b-256 checksum
How to use checksums
60abb25d5cc6fa0b34e82b95df85370d61e808a1a36f8a0c016c2dad518c1954
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / gbrl-1.1.9-cp39-cp39-win_amd64.whl

Download URL gbrl-1.1.9-cp39-cp39-win_amd64.whl
Size 815.6 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
d9b2e264d7004e2b4738b3207b980f8e09f326f59419f4a289941b81239305bf
BLAKE2b-256 checksum
How to use checksums
0d06656820d066ff1f29cf70beb759b349d0bc2c8941c3eb8cb75c84c80b7f2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.13

Release files / gbrl-1.1.9-cp39-cp39-manylinux_2_31_x86_64.whl

Download URL gbrl-1.1.9-cp39-cp39-manylinux_2_31_x86_64.whl
Size 1.0 MB
Tags CPython 3.9 Linux glibc 2.31+ x86-64
SHA-256 checksum
How to use checksums
bb8849fb96f55eab4fd5c1d04caf6340cb5310fb23df78179ea597a32f7c53c3
BLAKE2b-256 checksum
How to use checksums
0b0a4addda539342595a18fbe73e1407e6bedc787402d423e67da1c0aa8303ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.13

Release files / gbrl-1.1.9-cp39-cp39-macosx_15_0_arm64.whl

Download URL gbrl-1.1.9-cp39-cp39-macosx_15_0_arm64.whl
Size 1.3 MB
Tags CPython 3.9 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
f4cc04c885c5bd2b112a50995070f96095532252f0adcc6284ee988b8a7f22b2
BLAKE2b-256 checksum
How to use checksums
729ceafd78bba2920446d5e6d5d9419d12cdcc6af01a768c512989d86493be50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release files / gbrl-1.1.9-cp39-cp39-macosx_11_0_x86_64.whl

Download URL gbrl-1.1.9-cp39-cp39-macosx_11_0_x86_64.whl
Size 537.6 kB
Tags CPython 3.9 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
6520664d64a055b7cc1b4a7930def10e042f6d255406e593955558ef925373db
BLAKE2b-256 checksum
How to use checksums
b2b075c7308d91d2d24e0929eccfa8f35945bb6cf830a519e1d1f0543c7745d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release history Release notifications | RSS feed

This release

1.1.9 This release

17 release files

1.1.8

17 release files

1.1.2

8 release files

1.1.1

17 release files

1.1.0

17 release files

1.0.11

1 release file

1.0.10

1 release file

1.0.9

1 release file

1.0.8

1 release file

1.0.7

1 release file

1.0.6

1 release file

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.1

1 release file

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