perpetual-ml / perpetual

A self-generalizing gradient boosting machine which doesn't need hyperparameter optimization
https://perpetual-ml.com/
GNU Affero General Public License v3.0
278 stars 10 forks source link

ONNX support #1

Open ogencoglu opened 3 months ago

ogencoglu commented 3 months ago

Does it support ONNX conversion for example through skl2onnx if it has scikit-learn compatibility?

deadsoul44 commented 3 months ago

Hello, the API follows a sklearn style API with predict, fit, etc. methods. But, we should implement PerpetualRegressor and PerpetualClassifier, by inheriting respective base sklearn classes.

From skl2onnx docs: Any external converter can be registered to convert scikit-learn pipeline including models or transformers coming from external libraries.

Even if we do this, skl2onnx might not work because under the hood, we have a Rust based estimator.

Probably the best way to support this is to implement our own onnx converter instead of relying on skl2onnx.

For people who are using Perpetual as part of a sklearn pipeline, we should provide an external converter.

ogencoglu commented 3 months ago

Thanks for the swift reply!