Release Notes
The latest stable version of Snap ML is available at https://pypi.org/project/snapml/.
Snap ML v1.9.1 (May 31, 2022)
- New features:
New export_model method for RandomForest[Classifier/Regressor] and BoostingMachine[Classifier/Regressor].
- Bug fixes:
Support importing ensembles from PMML that were trained using sample weights.
Fix reference counting for PyNone.
Improved memory management for inference engine on z16 AI accelerator.
- API changes:
Expose import_model method in BoostingMachine[Classifier/Regressor].
Expose optimize_trees method in RandomForest[Classifier/Regressor] and BoostingMachine[Classifier/Regressor].
Snap ML v1.9.0 (Apr. 1, 2022)
New features:
New matrix-based algorithms for tree-ensemble inference using zDNN library (available for Z16 systems only).
Snap ML v1.8.4 (Feb. 24, 2022)
Bug-fixes:
Fix bug with string labels in BoostingMachine.
Fix bug with overflow in RBFSampler.
Fix bug related to compressed ensembles of variable depth.
Fix bug related to number of features-based optimization in compressed ensemble.
New features:
ExtraTrees support in inference engine.
New features for knowledge distillation.
Perf. improvements:
Training performance improvement for all tree-based models.
Snap ML v1.8.3 (Dec. 10, 2021)
API changes:
Added option to enable/disable optimized inference for MultiOutputCalibratedClassifier
Bug-fixes:
MultiOutputCalibratedClassifier now returns self
Snap ML v1.8.2 (Dec. 7, 2021)
Bug fixes:
Fix segfault for cross entropy loss and early stopping
Fix issue with class weights and BoostingMachineClassifier
Snap ML v1.8.1 (Dec. 2, 2021)
New Features:
Support for older machines that do not have AVX2 instructions.
New MultiOutputCalibratedClassifier estimator.
SVM: support for squared hinge loss and shrinkage.
Support np.memmap as input for GLMs.
API Changes:
Added fit function to BatchedTreeEnsemble classes.
Dependency Changes:
Compile against numpy==1.19.3, to support numpy>=1.18.5 at runtime.
Bug-fixes:
Correct class label predictions when importing RF/XGB models.
Fix issue when deepcopying estimators that were not yet fitted.
Fix documentation in BoostingMachineClassifier.
Snap ML v1.7.8 (Nov. 19, 2021)
Bug-fixes:
Support older machines that do not have AVX2 instructions.
Snap ML v1.8.0 (Nov. 11, 2021)
New Features:
Python 3.9 support (Python 3.6 is no longer supported).
Accelerated scoring of random forest models trained in scikit-learn via PMML or ONNX import.
Faster tree ensemble inference.
Support for multiclass classification in BoostingMachineClassifier.
Feature importance for boosting machines.
New estimators to support batched training of tree ensembles on very large datasets.
API Changes:
Setter functions are provided for all estimators to change parameters for training and inference.
Deprecated setting n_jobs at inference time as argument to predict.
Expose intercept attribute for GLMs.
Reorganization of Booster parameters.
Bug-fixes:
Enforce user-specific n_jobs for multiclass SVM.
Fixed PY_SSIZE_T_CLEAN warnings for newer versions of Python.
Fixed bug when serializing compressed trees in heterogeneous ensemble.
Fixed race condition for exact regression trees.
Fixed segfault when calling decision_function for multiclass SVM.
Fixed memory issue for boosting machines with subsample<1.
Snap ML v1.7.7 (Jul. 21, 2021)
Added support for A100 GPUs
Fixed unit-tests that were failing on POWER systems when using multiple GPUs
Snap ML v1.7.6 (Jun. 18, 2021)
Relaxed numpy dependency to be >= 1.18.5
Snap ML v1.7.5 (Jun. 17, 2021)
Relaxed numpy dependency to be >= 1.19.0
Added support for reading ONNX files generated on Z systems
Snap ML v1.7.4 (Jun. 11, 2021)
New and improved inference engine for tree-based ensembles
Removed predict_proba from DecisionTreeRegressor and RandomForestRegressor
Relaxed numpy dependency to be >= 1.19.2
Snap ML v1.7.3 (May 26, 2021)
Pinned numpy dependency to 1.19.2
Snap ML v1.7.2 (May 26, 2021)
Simplified the pre-trained model import API for Boosting Machines
Fixed support for string labels at training/inference time
Stop the train routine if the input dataset is empty by raising a ValueError
Fixed issues related to the Windows build
Fixed bug in single-record inference when fit_intercept=True (linear models)
Unified code inference path for tree ensembles
Added exception handling for OpenMP code
Snap ML v1.7.1 (May 17, 2021)
Added multi-class classification support (Decision Trees and Random Forests)
Fixed issue related to class weights and Logistic Regression
Fixed issue with pickled boosting machine models
Snap ML v1.7.0 (Feb. 22, 2021)
Added Windows, MacOS, Linux/x86, Linux/PPC support
Accelerated inference engine for tree ensembles
Added support for importing pre-trained tree ensembles from PMML, XGBoost, LightGBM and ONNX
Added a new ML algorithm: heterogeneous boosting machine model (for more details: https://proceedings.neurips.cc/paper/2020/file/7fd3b80fb1884e2927df46a7139bb8bf-Paper.pdf)
Integrated Snap ML into Lale
Added non-linear kernel support for linear models
Added predict_proba to LogisticRegression in the multi-class case
Added support for arbitrary class labels support for linear models
Added feature importance for tree-based models
Added support for cross_entropy loss for boosting machines
Various bug fixes
Version 1.7.0 included already all the following Machine Learning models and solvers:
Linear Regression: multi-threaded CPU, GPU, multi-GPU
Logistic Regression: multi-threaded CPU, GPU, multi-GPU
Support Vector Machine: multi-threaded CPU, GPU, multi-GPU
Decision Tree: multi-threaded CPU, GPU
Random Forest: multi-threaded CPU, GPU, multi-GPU
Boosting Machine: multi-threaded CPU, GPU