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-1.1.9.tar.gz (272.7 kB view details)

Uploaded Source

Built Distributions

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

gbrl-1.1.9-cp312-cp312-win_amd64.whl (819.1 kB view details)

Uploaded CPython 3.12Windows x86-64

gbrl-1.1.9-cp312-cp312-manylinux_2_31_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

gbrl-1.1.9-cp312-cp312-macosx_15_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

gbrl-1.1.9-cp312-cp312-macosx_11_0_x86_64.whl (538.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

gbrl-1.1.9-cp311-cp311-win_amd64.whl (821.2 kB view details)

Uploaded CPython 3.11Windows x86-64

gbrl-1.1.9-cp311-cp311-manylinux_2_31_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

gbrl-1.1.9-cp311-cp311-macosx_15_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

gbrl-1.1.9-cp311-cp311-macosx_11_0_x86_64.whl (539.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

gbrl-1.1.9-cp310-cp310-win_amd64.whl (820.2 kB view details)

Uploaded CPython 3.10Windows x86-64

gbrl-1.1.9-cp310-cp310-manylinux_2_31_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ x86-64

gbrl-1.1.9-cp310-cp310-macosx_15_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

gbrl-1.1.9-cp310-cp310-macosx_11_0_x86_64.whl (537.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

gbrl-1.1.9-cp39-cp39-win_amd64.whl (815.6 kB view details)

Uploaded CPython 3.9Windows x86-64

gbrl-1.1.9-cp39-cp39-manylinux_2_31_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.31+ x86-64

gbrl-1.1.9-cp39-cp39-macosx_15_0_arm64.whl (1.3 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

gbrl-1.1.9-cp39-cp39-macosx_11_0_x86_64.whl (537.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

File details

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

File metadata

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

File hashes

Hashes for gbrl-1.1.9.tar.gz
Algorithm Hash digest
SHA256 fddbd7f178be6b84b147b9c77b88ade03ff8a92d02607e01c2da019c5e60cc03
MD5 b477dd02897c6e8726f532820e95a4c1
BLAKE2b-256 24edfd00c89ee7263165f5a967252d279b52a29d72590663cfc034ef0c8d74a1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gbrl-1.1.9-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 819.1 kB
  • 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-1.1.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f5d220c3ff4f86b0cf448dc309f2c14c51a4fd44e3d5d1aad1fc8055368941e8
MD5 4ff555e6e0c88f3cceeba17b4a89dd25
BLAKE2b-256 090cfbbb1d3d499edfbbbd979aa591607cc4c82a5b0e9595c1b11208b663bf94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gbrl-1.1.9-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 e0930fba694a25372f4f320b1249600fcf64920f420b90d77318b73cdc6831e8
MD5 3b632c7f3b6d644f10f83337090f3a4c
BLAKE2b-256 af59d2d06172d533da4ed62701c68f9a98c88c8038c1e38f3465dbb330f3ab85

See more details on using hashes here.

File details

Details for the file gbrl-1.1.9-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gbrl-1.1.9-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0f381803a131b0f2c1b706688a4492d5aa4624278322fa474b451f71b18337c6
MD5 db9afe9b03dde561549cf4809166472c
BLAKE2b-256 adf1091ef944a1243185eb1549d22f0a104005bbb01d6229f68f24dcb0bd1bec

See more details on using hashes here.

File details

Details for the file gbrl-1.1.9-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for gbrl-1.1.9-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 c860063dc1a1b16f45540442cd2e83db29fd77b2a351ca6711ef536333ddc27a
MD5 c1a84aa73afd5684b147c713bb9f00fb
BLAKE2b-256 bc170a12081a13fc398921643680567fd4282bf9c40c70c1fe4d290b7f77aaa3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gbrl-1.1.9-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 821.2 kB
  • 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-1.1.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9fc064eb6855a62774a19ee01bb84f36db853459d3d3338918e0ddfe48b428f2
MD5 da312b953be240a86871d40df1329c2c
BLAKE2b-256 bf0b5cd84567f6361b203872b1ef9cbf2d4c696e7ade7237aef12cfb494ec211

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gbrl-1.1.9-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 881156176f408c2eb787f07f5f287c69f7964f67d470bbc04a699e596b78bc80
MD5 76370f0dbbd1464a8dfc342129bf2b42
BLAKE2b-256 e2776b09e15e4219f825440c5ea96dca4d56698f6b0add4e300221e1022c0a37

See more details on using hashes here.

File details

Details for the file gbrl-1.1.9-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gbrl-1.1.9-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 adebd3f8cc8ab8e5479f0c4112b67f4e2e93922ab71612f99adc85625e9adb5d
MD5 91cd42613d67b82e60de4eb1faaf9987
BLAKE2b-256 11330de9f655452a4080f4ae97809161bf6578dbee4fb0cac219a727565dab3d

See more details on using hashes here.

File details

Details for the file gbrl-1.1.9-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for gbrl-1.1.9-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 34d8cb02e380d18f8ff072219deaa229c78b1229fc4edf2ab6b847b782137825
MD5 bd23a42c008bcb228b9c183072cdfbd5
BLAKE2b-256 18dc7ab44f21eebef62ebacb824980805daf9c519ea0bcb9e3ce7a2cb6a6dd74

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gbrl-1.1.9-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 820.2 kB
  • 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-1.1.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 aeed15dfc2bc3bcc028d63a8df06f3c703aaf2f3ee1d3ca0e099ca1205e89b79
MD5 c57ff8336b2f6591d0994e360ccbb06c
BLAKE2b-256 789dfc818bc06d600fa90738fadd3b6792a265419e4265475bbbf731810c4f95

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gbrl-1.1.9-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 9c75e67e7a138b9cfe82ef5e9f34504afca1f932a99fff8ca642adf7160fba1a
MD5 8f88d073a372d73adf34a0c247c5bdc9
BLAKE2b-256 72ba50dc26640d5f649cd38bbb135b2aa222a9a55e9c9975c17388b9899123e9

See more details on using hashes here.

File details

Details for the file gbrl-1.1.9-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for gbrl-1.1.9-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c13b4e51de10263590bd6d1451a662c4a63cb360cd768786038c2e6b5369955e
MD5 67056a8bd706a9d773b001100799db71
BLAKE2b-256 2d1b3517acdaea8bfad2b0364ae3df0855f37b44cc97c032abf0cc30f8db8e98

See more details on using hashes here.

File details

Details for the file gbrl-1.1.9-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for gbrl-1.1.9-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 3311fc2d1cdcedd945bf7bd2d29a86782d2a71a2feb609174272ffd1284693a1
MD5 2788251993b8ff11b4e01c556c8c1db9
BLAKE2b-256 60abb25d5cc6fa0b34e82b95df85370d61e808a1a36f8a0c016c2dad518c1954

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gbrl-1.1.9-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 815.6 kB
  • 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-1.1.9-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d9b2e264d7004e2b4738b3207b980f8e09f326f59419f4a289941b81239305bf
MD5 d5a93900fa83947569d34adcdf035610
BLAKE2b-256 0d06656820d066ff1f29cf70beb759b349d0bc2c8941c3eb8cb75c84c80b7f2d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gbrl-1.1.9-cp39-cp39-manylinux_2_31_x86_64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.9, manylinux: glibc 2.31+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.13

File hashes

Hashes for gbrl-1.1.9-cp39-cp39-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 bb8849fb96f55eab4fd5c1d04caf6340cb5310fb23df78179ea597a32f7c53c3
MD5 b88d76f310dd4c72bb35a7482f24aae5
BLAKE2b-256 0b0a4addda539342595a18fbe73e1407e6bedc787402d423e67da1c0aa8303ca

See more details on using hashes here.

File details

Details for the file gbrl-1.1.9-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

  • Download URL: gbrl-1.1.9-cp39-cp39-macosx_15_0_arm64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.9, macOS 15.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for gbrl-1.1.9-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f4cc04c885c5bd2b112a50995070f96095532252f0adcc6284ee988b8a7f22b2
MD5 e8232622cffd5958dad20c8b374cd67b
BLAKE2b-256 729ceafd78bba2920446d5e6d5d9419d12cdcc6af01a768c512989d86493be50

See more details on using hashes here.

File details

Details for the file gbrl-1.1.9-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

  • Download URL: gbrl-1.1.9-cp39-cp39-macosx_11_0_x86_64.whl
  • Upload date:
  • Size: 537.6 kB
  • Tags: CPython 3.9, macOS 11.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for gbrl-1.1.9-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 6520664d64a055b7cc1b4a7930def10e042f6d255406e593955558ef925373db
MD5 dae1723e0834dfb1e45c9fbe8e624c37
BLAKE2b-256 b2b075c7308d91d2d24e0929eccfa8f35945bb6cf830a519e1d1f0543c7745d2

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.9 This release

17 files

1.1.8

17 files

1.1.7

17 files

1.1.6

17 files

1.1.5

17 files

1.1.4

17 files

1.1.3

13 files

1.1.2

8 files

1.1.1

17 files

1.1.0

17 files

1.0.12

21 files

1.0.11

1 file

1.0.10

1 file

1.0.9

1 file

1.0.8

1 file

1.0.7

1 file

1.0.6

1 file

1.0.5

1 file

1.0.4

1 file

1.0.3

1 file

1.0.2

1 file

1.0.1

1 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