layout: true class: typo, typo-selection --- name: inverse class: center, middle, inverse # MLOps: a simplified workflow for machine learning experiments using MLFlow and S3 buckets .font-xl[AI DevTalks -- The 22th mars 2022] .font-m[ .orange[Mauricio DIAZ, Ghislain VAILLANT] ] <!-- .abs-layout.top-70.left-5.width-95.center[ ![Banner](imgs/AI_Community_small.png)] --> ??? Comments --- class: center name: motivation # Common problems when running ML experiments - Manual tracking of repeated training - Manual aggregation of training results - Loss of information about experiments - Time consuming --- class: middle, center name: what_is_mlops # Solution: MLOps? > .blockquote.font-xxl[.ri-double-quotes-l.icon-inline[] It can be seen as an extension of DevOps methodologies, optimized for the lifecycle of ML applications.ri-double-quotes-r.icon-inline[] ] --- class: middle .block-middle.width-90[![](imgs/ml_based_apps.jpg)] .center[Image credit: [ml-ops.org](https://ml-ops.org/)] ??? Classical ML pipeline, three entities to manage instead of one in classical software engineering projects. --- class: middle .block-middle.width-90[![](imgs/ml_ops.jpg)] .center[Image credit: [ml-ops.org](https://ml-ops.org/)] --- class: middle name: rediscovering ## Rediscovering ML experiments as Software Engineering! .card[ .block-middle.width-90[![](imgs/reproductibility.png)] ] .center[Image credit: [Joel Grus, Allen Institute, ICLR 2019](https://docs.google.com/presentation/d/1yHLPvPhUs2KGI5ZWo0sU-PKU3GimAk3iTsI38Z-B5Gw/edit#slide=id.p)] --- name: ecosystem # Concepts and Ecosystem: --- template: ecosystem - Loggers/Monitoring: - [MLFlow](https://mlflow.org/) - [Weights & Biases](https://wandb.ai) - [Comet](https://www.comet.ml/) - [NeptuneAI](https://neptune.ai/) --- template: ecosystem - Configuration and training: - [Hydra](https://hydra.cc/) - [ONNX](https://www.onnxruntime.ai/) --- template: ecosystem - Dataset storage: - [S3 Buckets](https://aws.amazon.com/fr/s3/) - [Minio](https://min.io/) - Dataset versionning: - [DVC](https://dvc.org/) - [Datalad](https://www.datalad.org/) --- template: ecosystem - Model storage: - [MLFlow](https://mlflow.org/) - [Weights & Biases](https://wandb.ai/) - [ONNX](https://www.onnxruntime.ai/) - Model serving: - [MLFlow](https://mlflow.org/) -- as a Docker image - [TensorFlow Serving](https://www.tensorflow.org/tfx/guide/serving/) - [TorchServe](https://pytorch.org/serve/) - [ONNX](https://www.onnxruntime.ai/) --- template: ecosystem - CI/CD: - [CML](https://cml.dev/) - Cloud-based PaaS solutions --- name: pipeline # MLOps example - S3 as model and dataset storage backend - DVC for versionning training datasets - [MLFlow server](https://mlflows.paris.inria.fr/icm/aramisclinica) for experiment tracking - GitLab CI/CD for automated retraining Code: https://gitlab.inria.fr/mdiazmel/dl-example-project --- name: inverse class: center, middle, inverse # Thanks! ---