modelstore 0.0.82 (February 2026)
🆕 New functionality
- Added support for statsmodels #293
- Added support for Backblaze B2 storage backend via
ModelStore.from_backblaze()#289, (thanks jeronimodeleon)
🐛 Bug fixes & general updates
- Updated AWS and Backblaze storage backends #292
- Removed deprecated
pkg_resourcesfrom the project dependencies #288, (thanks divineod) - Fixed
pkg_resourcesmigration issues:PackageNotFoundErrorimport and platform-specificnp.float96removal #291 - Migrated from
pyenvtouvfor Python environment management #290 - Stopped supporting Python versions that are past their EOL
modelstore 0.0.81 (May 2024)
🆕 New functionality
🐛 Bug fixes & general updates
- Removed support for mxnet, which has now been retired #283 (thanks imfaruqi)
modelstore 0.0.80 (October 2023)
🆕 New functionality
With thanks to Tom in the MLOps Community for the feedback:
- List all the states that have been set for a specific model with
get_model_states(self, domain: str, model_id: str)#255. - Delete model states that are unused with
delete_model_state(self, state_name: str, skip_prompt: bool = False)#251.
🐛 Bug fixes & general updates
With thanks to Tom in the MLOps Community for the feedback:
- Model store cleans up temporary files that it generates, even if downloads or uploads are cancelled mid flight #258.
And thanks to Michael in the MLOps Community for the feedback:
- Model store no longer creates its
artifacts.tar.gzin theos.getcwd(), which was preventing modelstore from being used for parallel uploads #266.
modelstore 0.0.79 (June 2023)
🆕 New functionality
Added support for any HDFS storage that you can access via pydoop: ModelStore.from_hdfs() #241, thanks @sayandigital.
Updated the transformers manager: it no longer requires a tokenizer argument, so it can now be used to (for example) save/load SAM models #238 or DPT models #239. Thank you, Cate in the MLOps Community
🐛 Bug fixes & general updates
Fixed issues with saving & loading GPT-2 models in #234, thank you @sayandigital.
modelstore 0.0.78 (March 2023)
🆕 New functionality
Added support for Python 3.9, and an example where a yolov5 model is loaded from the torch hub, saved to modelstore, and then loaded back from the model store #225, thanks to @h4mmer in the MLOps Community.
🐛 Bug fixes & general updates
You can now use modelstore with a local MinIO server that doesn't have SSL enabled #223, thanks to @sspillard.
modelstore will now raise an exception if the user is attempting to upload a file from their current working directory that is called artifacts.tar.gz -- because that's the file that modelstore wants to create (#222).
modelstore 0.0.77 (December 2022)
🆕 New functionality
Added support for any s3-compatible object storage that you can access via MinIO: ModelStore.from_minio().
Added support for Spark ML Lib models.
You can move model stores that you created in one file system directory to another one (e.g., making it a mounted volume in a container) and modelstore will continue to work (#209, thanks @hauks96).
🐛 Bug fixes & general updates
Fixes an issue where model archives would be overwritten if models are uploaded too quickly (#208, thanks @shsnyder).
modelstore 0.0.76 (October 2022)
🐛 Bug fixes & general updates
A workaround for a security issue in the Python tarfile library was added (#203, thanks @TrellixVulnTeam).
A security upgrade to the protobuf was merged (#202, thanks dependabot) - this impacts developers of this library only.
modelstore 0.0.75 (September 2022)
🆕 New functionality
modelstore will issue a warning if you load() a model with a different version of Python than the version that was used to train the model (#192).
You can now add any extra metadata to your model when uploading it, using upload(domain, model, extra_metadata={ ... }) (#185); if you want to upload extra files with your model, then you should now use extra_files= instead of extras= (#187).
🐛 Bug fixes & general updates
Fixed a bug when creating a GCP model store instance that reads from a public bucket (#176).
Added support for storing xgboost Booster models (#170, #177).
Refactored the library to use data classes for all model meta data (#178)
modelstore 0.0.74 (April 2022)
🆕 New functionality
get_domain() returns key meta data about a domain (#141)
delete_model() delete models from modelstore. If the user attempts to query for a model after it has been deleted, modelstore will raise a ModelDeletedException (#137)
list_model_states() lists all of the existing model states (#131)
You can optionally set a model_id value when uploading a model (#147, #165), thanks @cdknorow.
🆕 Storage improvements
The file system storage can now be configured to create its root directory if it doesn't already exist (#143, thanks @cdknorow)
Public, read-only Google Cloud Storage containers can now be read from using modelstore (#142, thanks @ionicsolutions)
Previously, any extra files you wanted to upload were uploaded separately to the model archive. Now, they are added into the archive in a subdirectory called "extras" so that you can easily download them back (#139). I've also added an example of uploading a model with some additional files (#138).
🐛 Bug fixes & general updates
Fixed a regression: keras models saved with an older version of modelstore couldn't be loaded (#145).
Updated the names of the environment variables that are checked for setting the modelstore storage root (prefixes). Previously, this was using the same variable name and this would cause issues if you were creating more than one type of modelstore.
The list_versions() function is deprecated and has been replaced with list_models() (#132)
Python 3.6 has passed its end-of-life, so this library is now tested with Python 3.7 and above.
modelstore 0.0.73 (February 2022)
🆕 New functionality
You can upload multiple models to the same archive, if they don't share any keywords. For example modelstore.upload(domain, model=sklearn_model, explainer=shap_explainer) can be used to upload and download models and explainers together.
You can now set the root prefix of your model registry storage (thank you, @cdknorow!).
Added to the CLI functionality! You can now python -m modelstore upload <domain> <model-file> to upload a model. This requires you to set environment variables.
Added support for uploading skorch models.
🐛 Bug fixes
Merged the model managers for keras and tensorflow into one.
modelstore 0.0.72 (November 2021)
🆕 New functionality
Added support for uploading unsetting model states (#82 - hat tip to @erosenthal-square who opened an issue about this).
Added support for uploading shap explainers.
Added CLI functionality! You can now python -m modelstore download <domain> <model-id> <directory> to download a model. This requires you to set environment variables.
Added Prophet support.
Need to upload additional files alongside your model? You can now use the extras= kwarg in modelstore.upload() to point modelstore to a file (or list of files) to upload as well.
🐛 Bug fixes
Saving complex sklearn pipelines was raising a TypeError. This is because the get_params() function, which modelstore uses to save meta data about the model, returns a lot of things that are not JSON serializable. For now, I've patched this by not returning metadata for sklearn.pipeline.Pipeline models.
Colab is currently running fastai==1.0.61, while modelstore was designed for fastai>2, so things would break in Colab Notebooks due to the different import paths in the two versions of fastai: the import paths are now version-dependent..
Updated the library so that PyTorch models can be uploaded without an optimizer. This is useful for uploading pretrained embedding models!
Fixed a logging bug when trying to download the latest model in a domain - hat tip to @erosenthal-square who found the issue.
Fixed an ImportError bug when trying to use modelstore on an instance that does not have git installed.
modelstore 0.0.71 (September 2021)
🆕 New functionality
Load models straight into memory! Model Store previously had modelstore.download() to download an artifact archive to a local path, it now also has modelstore.load() to load a model straight into memory.
Upload models from frameworks that are not (yet) supported by modelstore! The modelstore.upload() function now works if you give it a model= kwarg that is a path to a file.
Read a specific model's metadata with modelstore.get_model_info()
Added Annoy, ONNX, and MXNet (hybrid models) support.
🆕 New functionality
Added model states, and updated listing models to listing by state.
Created a unified upload function. You can now use modelstore.upload() for all ML frameworks.
Added Gensim support.
Added Azure blob storage support.
🐛 Bug fixes
Minor fixes to how modelstore uses env variables for the hosted storage, bug fixes for local file system storage.
Downgraded requests due to a version conflict with the version in Google Colab.
modelstore 0.0.6 (March 2021)
🆕 New functionality
Added FastAI support.
Add support for scikit-learn pipelines.
modelstore 0.0.52 (February 2021)
🆕 New functionality
Added PyTorch Lightning and LightGBM support.
[Update - this has been removed] Added a new type of storage: ModelStore.from_api_key(). If you're reading this and do not want to manage your own storage, get in touch with me for an API key.
Added skeleton functions for summary stats about training data; implemented feature importances for sklearn models.
🐛 Bug fixes
Fixed bugs related to listing domains and the models inside of a domain.
modelstore 0.0.4 (December 2020)
🆕 New functionality
Clean up how meta-data is generated
Add interactive authentication when using Google Colab
Added auto-extraction of model params and model info into the meta-data
🐛 Bug fixes
Upgraded dependencies to deal with an issue using modelstore in Colab
modelstore 0.0.3 (November 2020)
🆕 New functionality
Simplied the API to just requiring upload() (no more create_archive()).
modelstore 0.0.2 (September 2020)
🆕 New functionality
Added models: transformers, tensorflow
Storage: downloading models via download()
Extended support to Python 3.6, 3.7, 3.8
Repo: added Github actions
🆕 First release!
Supports (and tested on) Python 3.7 only. ☢️
Storage: GCP buckets, AWS S3 buckets, file systems. Upload only!
Initial models: catboost, keras, torch, sklearn, xgboost
Meta-data: Python runtime, user, dependency versions, git hash