Model Registry Beta

A machine learning model registry is a database that stores and manages machine learning models. It typically allows users to easily keep track of different versions of a model, as well as any related metadata, such as the model's performance on different datasets or the input and output formats that the model expects. Model registries can be useful for a variety of purposes, such as allowing data scientists to easily share and collaborate on models, or allowing organizations to manage and deploy large numbers of models in a production environment.
## Roadmap
~"Model Registry::Beta" - %"16.10"
| Task | Status |
| ------ | ------ |
| [(UI) Model list: delete models](https://gitlab.com/gitlab-org/gitlab/-/issues/428909) | 🔵 |
| [(UI) Model detail: search version candidates of a model](https://gitlab.com/gitlab-org/gitlab/-/issues/428904) | 🔵 |
| [(UI) Model list: see latest version of a model based on SemVer?](https://gitlab.com/gitlab-org/gitlab/-/issues/428644) | 🔵 |
| [(MLflow) Implement remaining endpoints for models ](https://gitlab.com/gitlab-org/gitlab/-/issues/427454) | 🔵 |
| [(MLflow) Implement remaining endpoints for model versions](https://gitlab.com/gitlab-org/gitlab/-/issues/427454) | 🔵 |
| [(UI) Promote model candidate to model version](https://gitlab.com/gitlab-org/gitlab/-/issues/441119) | 🔴 |
| [(UI) Model detail: upload a model version](https://gitlab.com/gitlab-org/gitlab/-/issues/387580)| ✅ |
| [(UI) Model detail: delete model](https://gitlab.com/gitlab-org/gitlab/-/issues/428910) | ✅ |
| [(UI) Model detail: delete model versions](https://gitlab.com/gitlab-org/gitlab/-/issues/428911) | ✅ |
| [(UI) Model detail: markdown description](https://gitlab.com/gitlab-org/gitlab/-/issues/387600) | ✅ |
| [(UI) Model Version Detail: delete model version](https://gitlab.com/gitlab-org/gitlab/-/issues/428908) | ✅ |
| [Packaging: Support directory structure](https://gitlab.com/gitlab-org/gitlab/-/issues/417437) | ✅ |
| [(UI) Model detail: search all versions of a model](https://gitlab.com/gitlab-org/gitlab/-/issues/428902) | ✅ |
| [(UI) Model list: create model](https://gitlab.com/gitlab-org/gitlab/-/issues/387580)| ✅ |
- Improved feature set, better user experience, control over user access, API
- [Issues](https://gitlab.com/groups/gitlab-org/-/issues/?label_name%5B%5D=Model%20Registry%3A%3ABeta)
## Functionality NOT As part of Beta but for later iteration
1. Moving model through different stages and storage for various stages
2. Granular Metadata and dashboard
3. Increase in Model Storage Size
4. [Other issues not labeled](https://gitlab.com/groups/gitlab-org/-/issues/?sort=created_date&state=opened&label_name%5B%5D=Model%20Registry¬%5Blabel_name%5D%5B%5D=Model%20Registry%3A%3AAlpha¬%5Blabel_name%5D%5B%5D=Model%20Registry%3A%3ABeta&first_page_size=20) as ~"Model Registry" but not ~"Model Registry::Experimental" or ~"Model Registry::Beta"
## References
Many of the capabilities within a Model Registry include feature that exist within our package registry including:
- [Version management](https://docs.gitlab.com/ee/user/packages/package_registry/reduce_package_registry_storage.html)
- [File hosting](https://docs.gitlab.com/ee/user/packages/generic_packages/#publish-a-package-file)
- [CRUD API](https://docs.gitlab.com/ee/user/packages/generic_packages/#publish-a-package-file)
- [CI/CD Support](https://docs.gitlab.com/ee/user/packages/generic_packages/#publish-a-generic-package-by-using-cicd)
- [Basic Management UI](https://docs.gitlab.com/ee/user/packages/package_registry/#view-packages)
- [Authentication](https://docs.gitlab.com/ee/user/packages/package_registry/#authenticate-with-the-registry)
- [Centralization](https://docs.gitlab.com/ee/user/packages/workflows/project_registry.html)
GitLab support a [variety of package types](https://docs.gitlab.com/ee/user/packages/package_registry/#supported-package-managers), including a Genric package. The [generic package registry](https://docs.gitlab.com/ee/user/packages/generic_packages/) can be used today as a basic model registry ([demo](https://gitlab.com/gitlab-org/modelops/demos/handwritten-digit-recognition/-/merge_requests/7/diffs "Upload model as package"))
You can compare GitLab Generic Registry to other ML specific package registries including [MLFlow](https://www.mlflow.org/docs/latest/model-registry.html), [SageMaker](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html)
The main thing we need to add support for is Model Metadata
### Features at experimental level
~"Model Registry::Experimental" - %"16.8"
- A working version of Model registry, with limited features, aimed for user feedback
~"Model Registry::Experimental"
| Task | Status |
| ------ | ------ |
| [(Api) upload a model version](https://gitlab.com/gitlab-org/gitlab/-/issues/385043) | ✅ |
| [(Api) download a model version](https://gitlab.com/gitlab-org/gitlab/-/issues/385043) | ✅ |
| [(UI) Model list: list models for a project](https://gitlab.com/gitlab-org/gitlab/-/issues/385061) | ✅ |
| [(UI) Menu navigation item](https://gitlab.com/gitlab-org/gitlab/-/issues/385061) | ✅ |
| [(UI) Model list: search through project models](https://gitlab.com/gitlab-org/gitlab/-/issues/385061) | ✅ |
| [(UI) Model detail: give the model a description](https://gitlab.com/gitlab-org/gitlab/-/issues/387600) | ✅ |
| [(UI) Model detail: list all versions of a model](https://gitlab.com/gitlab-org/gitlab/-/issues/428900) | ✅ |
| [(UI) Model detail: list version candidates of a model](https://gitlab.com/gitlab-org/gitlab/-/issues/428903) | ✅ |
| [(UI) Model Version Detail: see details about a model version](https://gitlab.com/gitlab-org/gitlab/-/issues/428905) | ✅ |
| [(UI) Model Version Detail: view package for a model version](https://gitlab.com/gitlab-org/gitlab/-/issues/428906) | ✅ |
| [(UI) Model Version Detail: download package for a model version](https://gitlab.com/gitlab-org/gitlab/-/issues/428907) | ✅ |
| [(MLflow) log candidates to a model]() | ✅ |
| [(MLflow) create and get models](https://gitlab.com/gitlab-org/gitlab/-/issues/427454) | ✅ |
| [(MLflow) create and get model versions](https://gitlab.com/gitlab-org/gitlab/-/issues/427454) | ✅ |
| [(chore) add documentation](https://gitlab.com/gitlab-org/gitlab/-/issues/385046) | ✅ |
### Links
- https://docs.gitlab.com/ee/development/packages/new_format_development.html
epic