MLOps Python Client MVP
## Architecture
The initial plan is to simply wrap the existing MLflow library.
### Client
A central object to manage interactions with experiments and models, including:
```python
client = gitlab_mlops.Client()
client.create_experiment()
client.add_metric()
client.load_model()
```
The client should take care of injecting the necessary environment variables to the underlying methods.
### Project Home
https://gitlab.com/gitlab-org/modelops/mlops/gitlab-mlops
### Must-have
#### [Client](https://gitlab.com/gitlab-org/gitlab/-/issues/508694)
- [x] Create a client object
- [x] Automatically handle necessary environment variables for authentication and setup
- [x] Start and manage MLflow runs
#### [Experiments](https://gitlab.com/gitlab-org/gitlab/-/issues/508692)
- [x] Create experiment
- [x] Log metrics
- [x] Log parameters
- [x] Log artifacts
- [x] Log text
#### [Model Versioning](https://gitlab.com/gitlab-org/gitlab/-/issues/508695)
- [x] Create model versions
- [x] Log metrics
- [x] Log parameters
- [x] Log artifacts
- [x] Log text
#### Infrastructure
- [x] [Include a comprehensive README file](https://gitlab.com/gitlab-org/gitlab/-/issues/508696)
- [x] Provide basic docstrings for all main classes and functions
- [x] Implement unit tests to ensure code reliability
- [x] [Add some end-to-end tests to verify workflows](https://gitlab.com/gitlab-org/gitlab/-/issues/508699)
- [x] [Set up an automated testing pipeline](https://gitlab.com/gitlab-org/gitlab/-/issues/508703)
### Nice to have
#### Model Versioning
- [ ] Auto-detect the model type (e.g., TensorFlow, PyTorch) during logging
- [ ] Load models ready for inference with minimal setup
#### Infrastructure
- [x] [Add an automated deployment pipeline for the library](https://gitlab.com/gitlab-org/gitlab/-/issues/508915)
- [x] Achieve end-to-end test coverage for most functionalities
epic