We built skeights to decompose a fitted estimator into two files. A JSON file for hyperparameters and structure, and a safetensors file for the numeric arrays. The JSON is human-readable and diffable, and safetensors is a well-established safe format from Hugging Face.
This allows you to trade models as config. The JSON is just data you can inspect, diff, and version alongside the rest of your config, rather than a binary artefact on the side.
It supports most common sklearn estimators (linear models, trees, random forests, gradient boosting, MLPs, pipelines), plus LightGBM and XGBoost. MIT licensed.
Blog post with a worked example: https://alxhslm.github.io/projects/skeights/
Repo: https://github.com/carbon-re/skeights
`pip install skeights`