Machine Learning Operation Specialization
Introduction to machine learning in Production (DeepLearning.AI)
Key Concepts:
- What makes deployments hard?
- A statistical issues
- Software Engine Issues.
Concept Drift and Data Drift:
Speech Recognition Example Pipeline: Audo is connected to VAD (Voice Activity Detection) looks at long stream of audio and clips only the part that has speech and forwards it to speech recognition module in cloud which in turn generates transcript.
MLOPs fundamentals from Google Cloud (Coursera)
Some of the things we hear from data scientists are:
- keeping track of the many models we have trained is difficult.
- They want to keep track of the different versions of the code,
- the values they chose for the different hyperparameters, and
- the metrics they’re evaluating. They have trouble keeping track of which ideas had been tried,
- which ones worked, and which ones did not.
- They cannot pinpoint the best model, which is possibly trained two weeks previously, reproduce it, and run it on full production data.
- Reproducibility is a major concern because there are scientists who want to be able to re-run the best model with a more thorough parameter sweep.
- Putting a model in production is difficult unless it can be reproduced, because many companies have that as a policy or requirement.
Introduction to Kubernetes and containers:
Containers are isolated user spaces for running application code. Containers are lightweight because they don’t carry a full operating system, they can be scheduled or packed tightly onto the underlying system, which is very efficient. They can be created and shut down very quickly because you’re just starting and stopping the processes that make up the application and not booting up an entire VM and initializing an operating system for each application.
The container allows you to execute your final code on VMs without worrying about software dependencies like application run times, system tools, system libraries, and other settings. You package your code with all the dependencies it needs, and the engine that executes your container, is responsible for making them available at runtime.
containers make it easier to build applications that use the microservices design pattern. That is, loosely coupled, fine-grained components. This modular design pattern allows the operating system to scale and also upgrade components of an application without affecting the application as a whole.