Modelforge is a foundation for sharing trained machine learning models. It is a set of command line tools and a Python library. Modelforge maintains model files in a third-party remote storage service ("cloud") using the backend mechanism. Model metadata (download links, names, descriptions, versions, etc.) resides in a Git repository called the "Index", and documentation is automatically generated there. Modelforge does no assumptions about the models: they can be of any origin, such as TensorFlow, scikit-learn, or your custom. The underlying model storage format - Advanced Scientific Data Format - can wrap any data easily and efficiently, but it's the developer's responsibility to convert.
Learn more about:
- Why? - what problem Modelforge tries to solve.
- Modelforge model - what is a model in Modelforge context.
- Model storage format - low-level serialization details.
- Backends - extension system to upload and download models from clouds.
- Git Index - how documentation about the models is generated from the structured metadata.
- Command line tools - how to perform typical operations.
- API - Modelforge API for developers.
- source{d}, in src-d/ml and src-d/lookout-sdk-ml; the public index is src-d/models.
You can run Modelforge through Docker:
docker run -it --rm srcd/modelforge --help
or install it using the Python package manager:
pip3 install modelforge
The project exposes two interfaces: command line and API.
Contributions are pretty much welcome! Please follow the contributions guide and the code of conduct.
If you wish to make your MLonCode model available in src-d/models,
please fork that repository and run modelforge publish
to upload your model on your fork. Then
create a pull request. You should provide read access to the model file for everybody. If you
consider using our Google Cloud Storage bucket, feel free to contact us through GitHub issues.