Skip to main content

GPU-accelerated gradient boosting, written in Python

Project description

OpenBoost

A GPU-native, all-Python platform for tree-based machine learning.

Why OpenBoost?

For standard GBDT, use XGBoost/LightGBM—they're highly optimized C++.

For GBDT variants (probabilistic predictions, interpretable GAMs, custom algorithms), OpenBoost brings GPU acceleration to methods that were previously CPU-only and slow:

  • NaturalBoost: 1.3-2x faster than NGBoost
  • OpenBoostGAM: 10-40x faster than InterpretML EBM

Plus: ~20K lines of readable Python. Modify, extend, and build on—no C++ required.

XGBoost / LightGBM OpenBoost
Code 200K+ lines of C++ ~20K lines of Python
GPU Added later Native from day one
Customize Modify C++, recompile Modify Python, reload

What You Can Build

OpenBoost provides primitives (histograms, binning, tree fitting) that you combine into algorithms:

  • Standard GBDT — drop-in gradient boosting with multiple growth strategies
  • Distributional GBDT — predict full probability distributions with NGBoost-style natural gradient boosting
  • Interpretable GAMs — explainable feature effects inspired by EBM
  • DARTdropout regularization for reduced overfitting
  • Linear-leaf models — linear models in tree leaves for better extrapolation
  • Your own algorithms — custom losses, distributions, or entirely new methods

All run on GPU with the same Python code.

Quick Start

High-level API:

import openboost as ob

model = ob.GradientBoosting(n_trees=100, max_depth=6)
model.fit(X_train, y_train)
predictions = model.predict(X_test)

Low-level API (full control over the training loop):

import openboost as ob

X_binned = ob.array(X_train)
pred = np.zeros(len(y_train), dtype=np.float32)

for round in range(100):
    grad = 2 * (pred - y_train)  # your gradients
    hess = np.ones_like(grad) * 2
    tree = ob.fit_tree(X_binned, grad, hess, max_depth=6)
    pred += 0.1 * tree(X_binned)

Installation

pip install openboost

# With GPU support
pip install openboost[cuda]

Documentation

Full docs, tutorials, and API reference: jxucoder.github.io/openboost

Roadmap

Train-many optimization: Industry workloads often train many models (hyperparameter tuning, CV, per-segment models). XGBoost optimizes for one model fast. OpenBoost plans to enable native optimization for training many models efficiently.

References

OpenBoost implements and builds on ideas from these papers:

License

Apache 2.0

Project details


Download files

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

Source Distribution

openboost-1.0.0rc1.tar.gz (150.1 kB view details)

Uploaded Source

Built Distribution

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

openboost-1.0.0rc1-py3-none-any.whl (175.1 kB view details)

Uploaded Python 3

File details

Details for the file openboost-1.0.0rc1.tar.gz.

File metadata

  • Download URL: openboost-1.0.0rc1.tar.gz
  • Upload date:
  • Size: 150.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openboost-1.0.0rc1.tar.gz
Algorithm Hash digest
SHA256 204bb22ab5b6c28e099ff929f9606bc41b98f8b5df2f72bedd586ad6a2dd7433
MD5 04bc6b58cdcff9f7491eceb0f4d7000e
BLAKE2b-256 7f9fd9656c6211328c34dd4ccc340a9013dc6835b67d0258927ca68b632e5d5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for openboost-1.0.0rc1.tar.gz:

Publisher: publish.yml on jxucoder/openboost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openboost-1.0.0rc1-py3-none-any.whl.

File metadata

  • Download URL: openboost-1.0.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 175.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openboost-1.0.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 34ea8937aa40c2f67373f7431188475c4e7db2253f98fffaa7f8860c8a8f4572
MD5 dd6c0657ef7edce4b985006e6eb6839f
BLAKE2b-256 1c6f3749c1309131615a9171b1f215a1d01aed1b6ee2f68e5c7cee3db5cc4000

See more details on using hashes here.

Provenance

The following attestation bundles were made for openboost-1.0.0rc1-py3-none-any.whl:

Publisher: publish.yml on jxucoder/openboost

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page