We are struggling to move our models from Jupyter notebooks to a stable production environment. How do we set up an MLOps pipeline that includes automated testing, versioning for both code and data, and seamless deployment? Is DVC the standard for data versioning now?
3 answers
Transitioning from notebooks to production requires a mindset shift toward software engineering. DVC (Data Version Control) is indeed a strong choice for tracking datasets without bloating your Git repo. For the CI/CD part, I recommend using GitHub Actions or GitLab CI to trigger retraining jobs. Your pipeline should include 'Data Validation' steps using libraries like Great Expectations to catch schema changes early. Once the model passes performance benchmarks, use a tool like MLflow to registry the model and containerize it with Docker for consistent deployment across environments.
What specific cloud provider are you using for your infrastructure, and does your team have experience with Kubernetes? The tooling can change significantly if you are using AWS SageMaker versus a custom-built solution on GKE or Azure DevOps.
Always prioritize "Model Monitoring" after deployment. A CI/CD pipeline isn't complete until you have a feedback loop to detect data drift and trigger automatic retraining.
Samantha is right. Without monitoring for drift, your production model will eventually become obsolete as real-world data distributions change over time.
We are currently locked into AWS, but we prefer to keep our pipeline as cloud-agnostic as possible to avoid vendor lock-in. We have some Kubernetes experience but would prefer a managed service if it doesn't sacrifice the flexibility of our custom Python training scripts.