# Keep a versioned model repository

In some cases you will want the ability to know why a decision was made, for example, if there is an unexpected output or someone challenges a recommendation. Indeed, in most regulated environments it is essential to be able to show how a given decision or recommendation was reached, so you know which version of your machine learning model was live when a  specific decision was made. To meet this need you will need a store or repository of the models that  you can query to find the version of the model in use at a given date and time.&#x20;

**In the past we have used a variety of ways to version our models:**

* S3 buckets with versioning enabled&#x20;
* S3 buckets with database to to store model metadata&#x20;
* MLflow model registry&#x20;
* DVC to version both the model and the data used to create that model&#x20;
* Cloud provider model registries (AWS Sagemaker, Google Vertex AI , Azure MLOps)&#x20;
* Some models can have their coefficients stored as text, which is versioned in Git
