hummingbird

Hummingbird compiles trained ML models into tensor computation for faster inference.

MIT License

Downloads
7K
Stars
3.3K
Committers
39

Bot releases are visible (Hide)

hummingbird - Hummingbird v0.4.11 Latest Release

Published by ksaur 8 months ago

What's Changed

Breaking API change for model save/load

  • In https://github.com/microsoft/hummingbird/pull/761 users are now required to add an additional flag if they wish to unzip without the checksum hashes. Ex: model.load(location, override_flag=True) . This is to prevent any potential exploit of the underlying pickle module, so that users can verify the output checksum for model integrity, or set the override_flag if the model is from a trusted source.

TODOs

  • We are aware that documentation is not being generated correctly (#762) due to a permissions change.
  • We are continuing to investigate how to support xgb==2.0.

New Contributors

Special thanks

Thank you to our newest contributor @giriprasad51 for his 3 PRs, and thank you to @mshr-h for all of the effort on apache-tvm to v0.15.0 and the ongoing support!

Full Changelog: https://github.com/microsoft/hummingbird/compare/v0.4.10...v0.4.11

hummingbird - Hummingbird v0.4.10

Published by ksaur 10 months ago

What's Changed

This maintenance release updates to Python 3.11 (for all but TVM), adds support for the current versions (as of Jan 2024) of LGBM and ONNX related libraries.

We are still working on XGB==2.0 support and TVM==0.12.

Thanks to @mshr-h for the ongoing support!

Full Changelog: https://github.com/microsoft/hummingbird/compare/v0.4.9...v0.4.10

hummingbird - Hummingbird v0.4.9

Published by ksaur over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/microsoft/hummingbird/compare/v0.4.8...v0.4.9

hummingbird - Hummingbird v0.4.8

Published by ksaur over 1 year ago

What's Changed

New support

Bug fixes

Maintenance

Acks

Full Changelog: https://github.com/microsoft/hummingbird/compare/v0.4.7...v0.4.8

hummingbird - Hummingbird v0.4.7

Published by ksaur almost 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/microsoft/hummingbird/compare/v0.4.6...v0.4.7

hummingbird - Hummingbird v0.4.6

Published by ksaur almost 2 years ago

What's Changed

Features

Maintenance and fixes

New Contributors

Special Thanks

  • Thank you to @mshr-h for the continued support!!

Full Changelog: https://github.com/microsoft/hummingbird/compare/v0.4.5...v0.4.6

hummingbird - Hummingbird v0.4.5

Published by ksaur about 2 years ago

What's Changed

New Contributors

Special thanks

Extra special thanks to @mshr-h for the work maintaining our version dependencies and pipeline!

Full Changelog: https://github.com/microsoft/hummingbird/compare/v0.4.4...v0.4.5

hummingbird - Hummingbird v0.4.4

Published by ksaur over 2 years ago

This minor release includes bug fixes for performance and external dependency updates.

What's Changed

Full Changelog: https://github.com/microsoft/hummingbird/compare/v0.4.3...v0.4.4

New Contributors

  • Thanks to @carolinemckee for the bug report on KPCA #574
hummingbird - Hummingbird v0.4.3

Published by ksaur over 2 years ago

This minor release includes bug fixes and external dependency updates.

What's Changed

New Contributors

Full Changelog: https://github.com/microsoft/hummingbird/compare/v0.4.2...v0.4.3

hummingbird - Hummingbird v0.4.2

Published by ksaur almost 3 years ago

This minor release includes a new operator, some improvements, and some fixes due to external dependency updates.

New Operator:

  • Added support for PLSRegressor (#549)

Improvements:

  • Better delete (with location) for saved models (#558)
  • Doc updates: Installation instructions for Fedora-based distros (#543) and readme update (#550)

External dependency management:

  • Hummingbird now works with scikit-learn==1.0.x (#545) and the current version of scipy (scipy==1.7.x) (#552)
  • Note that there is currently an open issue (#556) with Onnxruntime and torch==1.10.x on Linux/Mac that causes the tests to hang (for static length dimensions) and fail (for dynamic dimensions). This will be fixed in a subsequent release.

Credits:

Thanks to @akshjain83 and @bibhabasumohapatra for their contributions!

hummingbird - Hummingbird v0.4.1

Published by ksaur about 3 years ago

This patch release includes a new operator and some documentation fixes.

New Operator:

  • Added support for lightgbm booster (#540)

Documentation Improvements:

  • Added TorchServe support to documentation (#537)
  • Updated sklearn_year_with_train.ipynb (#532)

Credits:

Thanks to @marsupialtail, @ananiask8, and @parulnith for their contributions!

hummingbird - Hummingbird v0.4.0

Published by ksaur over 3 years ago

This release includes integration with Prophet, bug/usability fixes, and versioning fixes.

We are excited to announce trend prediction support for Prophet! See our notebook for examples.

New features:

  • Prophet integration (trend prediction) (#519)

Bug fixes/Usability fixes:

  • Fix several numerical precision issues in tree-based models (#511)
  • Better assertions and error messages (#514/#521)

Versioning fixes:

  • Remove constraint on dependencies version (#523)

Special thanks:

  • Extra special thanks to @xadupre for helping us resolve library dependency issues
  • Thanks to @pnhathuy07 for helping us clean up our asserts
  • Thanks to @scnakandala for the ongoing contributions
hummingbird - Hummingbird v0.3.1

Published by ksaur over 3 years ago

This patch release includes several improvements related to load/store of a model:

Improvements:

  • Better error messages on load/save problems (#499)
  • Auto-clean temp directory on load/save (#502)
  • Using pickle instead of dill for model load/save to enable the use of Spark broadcast to share the model (#498)

Other Notes:

It seems the most recent release of libomp broke the pipeline for MacOS python3.6 and 3.7. We fixed this by pinning to an older version of libomp (#500). While not directly related to Hummingbird, this information may be useful to MacOS users with older versions of python wanting to use the lightgbm Hummingbird converters.

Credits:

Thanks to @dbanda for the feedback and testing on our load/store.

hummingbird - Hummingbird v0.3.0

Published by ksaur over 3 years ago

This release includes many new operators, version upgrades, and minor bug fixes.

New Features:

  • ONNXML imputer (#459)
  • SKL Bagging Classifier/Regressor (#490)
  • SKL GridSearchCV and RandomizedGridSearchCV (#476)
  • SKL KMeans (#472)
  • SKL MeanShift (#473)
  • SKL Stack Classifier and Regressor (#471)
  • SKL RidgeCV and LinearSVR (#470)
  • New example notebooks (#462) (#461)

Versioning changes:

  • Bumped numpy from 1.19.4 to <=1.20.*
  • Bumped torch to 1.8.1

Notable bug fixes:

  • Fixed error when pandas is passed as input to predict but no test_input provided (#487)

Credits:

Thanks to our first-time contributor @rathijit for fixes to the README.

hummingbird - Hummingbird v0.2.2

Published by ksaur over 3 years ago

This release includes several bug fixes, version upgrades, and minor feature upgrades.

Versioning changes:

  • Upgrading to Torch 1.8.0
  • Deprecating Python 3.5

Notable bug fixes:

  • Fix save to pytorch for onnx models with trees (#425)
  • Fix bug with degenerate trees (#426)
  • Fix bloated models when saving (#429)

Also included are fixes to test flakiness and error messages.

Feature upgrades:

  • Add support for modified huber loss in SGD (#415)
  • Simplify the discretizer logic (#448)

Credits:

Thanks to our first-time contributors @qin-xiong and @sleepy-owl

hummingbird - Hummingbird v0.2.1

Published by ksaur almost 4 years ago

Patch release

Version bump:

  • upgrading from torch 1.7.0 to torch 1.7.1

Also included:

  • Refactoring of '_container' structure
  • TVM loading
  • TVM padding
hummingbird - Hummingbird v0.2.0

Published by ksaur almost 4 years ago

Announcing: TVM Support

  • This release adds support for TVM (#236), giving us our fastest speeds yet!

New Features

  • Adding save/load features for models (#399)
  • BatchContainer for batch by batch prediction use case (#377)
  • Native support for string features (#396)
  • Add batch_benchmark option to do benchmark on a single batch (#369)

New Operators

  • Binarizer for ONNX-ML (#353)
  • Feature Vectorizer for ONNX-ML (#385)
  • Label Encoder for ONNX-ML and SKL (#374)

Credits

Thank you to @scnakandala and @masahi for their ongoing contributions!

hummingbird - Hummingbird v0.1.0

Published by ksaur almost 4 years ago

Announcing: Integration with PySpark.ML (pyspark)

In this release, we added PySpark.ML support, which will open new doors for collaboration in the Spark space! (#310)

So far, we support Bucketizer, VectorAssembler, and LogisticRegressionModel. We look forward to adding more operators soon!

Announcing: Pandas Dataframes Support

This release also adds support for Pandas Dataframes both at conversion time and inference time (#300).

New Features

  • We added benchmarks (#328, #330, #331) from our OSDI paper
  • We also have a variety of features and improvements to the user experience:
    • Added the capability of setting number of threads to the model container (#319)
    • Removed the need for requirements on providing input schemas for ONNX models (#334)
    • Added support for ONNX models with multiple inputs (#339)
    • Added batching to output containers (#323)

New Operators

  • scikit-learn KNeighbors Classifier (#296) and Regressor (#303)

Credits

Thank you to @scnakandala for SparkML and the additional scikit-learn operators!
Thank you to @vumichien for contributing the README diagrams.

hummingbird - Hummingbird v0.0.6

Published by ksaur about 4 years ago

This release adds a huge batch of new operators to scikit-learn, including pipeline support! It also includes bug fixes.

New Features

  • Basic support for scikit-learn Pipeline's including FeatureUnion and ColumnTransformer (#251)

New Operators - scikit-learn

  • Binarizer (#258)
  • KBinsDiscretizer (#285)
  • Matrix Decomposition Operators (#277)
    • FastICA
    • KernelPCA
    • PCA
    • TruncatedSVD
  • MissingIndicator (#268)
  • MLPClassifer (#260)
  • MLPRegressor (#288)
  • Other Classifiers: (#260)
    • BernoulliNB
    • GaussianNB
    • MultinomialNB
  • SelectKBest chi2 support (#262)
  • SelectPercentile (#263)
  • SimpleImputer (#267)
  • PolynomialFeatures (#269)

Other updates:

  • We now support xgboost>=0.90 (#253)
  • Added optimized_execution to torchscript backend (#276)
  • We now allow older version of scikit-learn for compatibility reasons (#274)

Bug fixes:

  • Logistic Regression with the lbfgs option (#261)
  • Empty trees and multiclass (#265)
  • Fix isolation forest for sklearn <= 0.21 (#290)

Credits

A big thank you to our contributors: @scnakandala, @zhanjiezhu
Extra big thanks to @scnakandala for all of the scikit-learn converters!

hummingbird - Hummingbird v0.0.5

Published by ksaur about 4 years ago

This release adds TorchScript as a backend, removes the problematic auto-installation of pytorch, improves syntax for the ONNX converter, adds notebook enhancements, and adds 3rd party library version upgrades. Hummingbird now provides the same Sklearn API across backends for executing inference.

Announcing: Integration with TorchScript

This release adds TorchScript as a backend (#225).

Users can convert models with:

hummingbird.ml.convert(model, "torchscript", X)

Installation changes:

After several reports from users across multiple platforms (in terms of both OS and underlying hardware), we changed the Hummingbird installer to require users to first install pytorch before installing Hummingbird (#246). This allows users to select the right pytorch version for a specific platform and should simplify the installation process and remove issues caused by having the wrong pytorch version installed.

ONNX API

For ONNX, we changed the API to have a more seamless experience, allowing users to interact with ONNX models in a consistent way with other models in Hummingbird (#231).

Instead of the user having to instanciate the ONNX runtime session:

-        session = ort.InferenceSession(onnx_model.SerializeToString())
-        onnx_pred = session.run(output_names, inputs)

The user can now just call predict, predict_proba, transform, etc. as with other Hummingbird conversions.

+        onnx_pred = onnx_model.predict(X)

New Operators

  • OneHotEncoder - integers (#197)
  • Support for Tweedie distribution in LGBM (#242)

Miscellaneous

  • The target opset for ONNX is now 11 (#214)
  • The target pytorch version is now 1.6.0, except for with Python 3.5 it remains at 1.5.1 for compatibility reasons (#213)
  • Docs are now auto-generated (#223)

Credits

Thanks to @KranthiGV for the updated LGBM ONNX notebook example

Package Rankings
Top 25.51% on Conda-forge.org
Top 5.6% on Proxy.golang.org
Top 2.37% on Pypi.org
Badges
Extracted from project README
PyPI version coverage Gitter Downloads Gitter