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
- DART — dropout 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:
- Gradient Boosting: Friedman, J. H. (2001). Greedy Function Approximation: A Gradient Boosting Machine. Annals of Statistics.
- XGBoost: Chen, T., & Guestrin, C. (2016). XGBoost: A Scalable Tree Boosting System. KDD.
- LightGBM: Ke, G., et al. (2017). LightGBM: A Highly Efficient Gradient Boosting Decision Tree. NeurIPS.
- CatBoost: Prokhorenkova, L., et al. (2018). CatBoost: Unbiased Boosting with Categorical Features. NeurIPS.
- NGBoost: Duan, T., et al. (2020). NGBoost: Natural Gradient Boosting for Probabilistic Prediction. ICML.
- EBM: Nori, H., et al. (2019). InterpretML: A Unified Framework for Machine Learning Interpretability.
- DART: Rashmi, K. V., & Gilad-Bachrach, R. (2015). DART: Dropouts meet Multiple Additive Regression Trees. AISTATS.
License
Apache 2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
204bb22ab5b6c28e099ff929f9606bc41b98f8b5df2f72bedd586ad6a2dd7433
|
|
| MD5 |
04bc6b58cdcff9f7491eceb0f4d7000e
|
|
| BLAKE2b-256 |
7f9fd9656c6211328c34dd4ccc340a9013dc6835b67d0258927ca68b632e5d5c
|
Provenance
The following attestation bundles were made for openboost-1.0.0rc1.tar.gz:
Publisher:
publish.yml on jxucoder/openboost
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openboost-1.0.0rc1.tar.gz -
Subject digest:
204bb22ab5b6c28e099ff929f9606bc41b98f8b5df2f72bedd586ad6a2dd7433 - Sigstore transparency entry: 836505099
- Sigstore integration time:
-
Permalink:
jxucoder/openboost@5bcdea69f1cc9dc8c13a902ae4ac7c6066306dc5 -
Branch / Tag:
refs/tags/v1.0.0rc1 - Owner: https://github.com/jxucoder
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5bcdea69f1cc9dc8c13a902ae4ac7c6066306dc5 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34ea8937aa40c2f67373f7431188475c4e7db2253f98fffaa7f8860c8a8f4572
|
|
| MD5 |
dd6c0657ef7edce4b985006e6eb6839f
|
|
| BLAKE2b-256 |
1c6f3749c1309131615a9171b1f215a1d01aed1b6ee2f68e5c7cee3db5cc4000
|
Provenance
The following attestation bundles were made for openboost-1.0.0rc1-py3-none-any.whl:
Publisher:
publish.yml on jxucoder/openboost
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openboost-1.0.0rc1-py3-none-any.whl -
Subject digest:
34ea8937aa40c2f67373f7431188475c4e7db2253f98fffaa7f8860c8a8f4572 - Sigstore transparency entry: 836505103
- Sigstore integration time:
-
Permalink:
jxucoder/openboost@5bcdea69f1cc9dc8c13a902ae4ac7c6066306dc5 -
Branch / Tag:
refs/tags/v1.0.0rc1 - Owner: https://github.com/jxucoder
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5bcdea69f1cc9dc8c13a902ae4ac7c6066306dc5 -
Trigger Event:
release
-
Statement type: