Stay organized with collections Save and categorize content based on your preferences.
To prepare your ML pipelines for production, you need to do the following:
Provision compute resources for your pipelines
Implement logging, monitoring, and alerting
Provisioning compute resources
Running ML pipelines requires compute resources, like RAM, CPUs, and GPUs/TPUs. Without adequate compute, you can't run your pipelines. Therefore, make sure to get sufficient quota to provision the required resources your pipelines need to run in production.
Serving, training, and validation pipelines. These pipelines require TPUs, GPUs, or CPUs. Depending on your use case, you might train and serve on different hardware, or use the same hardware. For example, training might happen on CPUs but serving might use TPUs, or vice versa. In general, it's common to train on bigger hardware and then serve on smaller hardware.
When picking hardware, consider the following:
Can you train on less expensive hardware?
Would switching to different hardware boost performance?
What size is the model and which hardware will optimize its performance?
What hardware is ideal based on your model's architecture?
Data pipelines. Data pipelines require quota for RAM and CPU You'll need to estimate how much quota your pipeline needs to generate training and test datasets.
You might not allocate quota for each pipeline. Instead, you might allocate quota that pipelines share. In such cases, verify you have enough quota to run all your pipelines, and set up monitoring and altering to prevent a single, errant pipeline from consuming all the quota.
Estimating quota
To estimate the quota you'll need for the data and training pipelines, find similar projects to base your estimates on. To estimate serving quota, try to predict the service's queries per second. These methods provide a baseline. As you begin prototyping a solution during the experimentation phase, you'll begin to get a more precise quota estimate.
When estimating quota, remember to factor in quota not only for your production pipelines, but also for ongoing experiments.
Check Your Understanding
When choosing hardware to serve predictions, you should always choose more powerful hardware than was used to train the model.
False
Correct. Typically, training requires bigger hardware than serving.
True
Logging, monitoring, and alerting
Logging and monitoring a production model's behavior is critical. Robust monitoring infrastructure confirms your models are serving reliable, high-quality predictions.
Good logging and monitoring practices help proactively identify issues in ML pipelines and mitigate potential business impact. When issues do occur, alerts notify members of your team, and comprehensive logs facilitate diagnosing the problem's root cause.
You should implement logging and monitoring to detect the following issues with ML pipelines:
Pipeline
Monitor
Serving
Skews or drifts in the serving data compared to the training data
Skews or drifts in predictions
Data type issues, like missing or corrupted values
Quota usage
Model quality metrics
Data
Skews and drifts in feature values
Skews and drifts in label values
Data type issues, like missing or corrupted values
Quota usage rate
Quota limit about to be reached
Training
Training time
Training failures
Quota usage
Validation
Skew or drift in the test datasets
You'll also want logging, monitoring, alerting for the following:
Latency. How long does it take to deliver a prediction?
Outages. Has the model stopped delivering predictions?
Check Your Understanding
Which of the following is the main reason for logging and monitoring your ML pipelines?
Proactively detect issues before they impact users
Track quota and resource usage
Identify potential security problems
All of the above
Correct. Logging and monitoring your ML pipelines helps prevent and diagnose problems before they become serious.
Deploying a model
For model deployment, you'll want to document the following:
Approvals required to begin deployment and increase the roll out.
How to put a model into production.
Where the model gets deployed, for example, if there are staging or canary environments.
What to do if a deployment fails.
How to rollback a model already in production.
After automating model training, you'll want to automate validation and deployment. Automating deployments distributes responsibility and reduces the likelihood of a deployment being bottlenecked by a single person. It also reduces potential mistakes, increases efficiency and reliability, and enables on-call rotations and SRE support.
Typically you deploy new models to a subset of users to check that the model is behaving as expected. If it is, continue with the deployment. If it's not, you rollback the deployment and begin diagnosing and debugging the issues.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-07-18 UTC."],[[["\u003cp\u003eProduction ML pipelines require sufficient compute resources like RAM, CPUs, and GPUs/TPUs for serving, training, data processing, and validation.\u003c/p\u003e\n"],["\u003cp\u003eImplement robust logging, monitoring, and alerting to proactively detect data and model issues (e.g., data drift, prediction skews, quality degradation) across all pipeline stages.\u003c/p\u003e\n"],["\u003cp\u003eEstablish a clear model deployment strategy outlining approvals, procedures, environments, and rollback mechanisms, and aim for automated deployments for efficiency and reliability.\u003c/p\u003e\n"],["\u003cp\u003eEstimate quota needs based on similar projects and service predictions, and factor in resources for both production and ongoing experimentation.\u003c/p\u003e\n"]]],[],null,["To prepare your ML pipelines for production, you need to do the following:\n\n- Provision compute resources for your pipelines\n- Implement logging, monitoring, and alerting\n\nProvisioning compute resources\n\nRunning ML pipelines requires compute resources, like RAM, CPUs, and GPUs/TPUs.\nWithout adequate compute, you can't run your pipelines. Therefore, make sure\nto get sufficient quota to provision the required resources your pipelines\nneed to run in production.\n\n- **Serving, training, and validation pipelines**. These pipelines require\n TPUs, GPUs, or CPUs. Depending on your use case, you might train and serve\n on different hardware, or use the same hardware. For example, training might\n happen on CPUs but serving might use TPUs, or vice versa. In general, it's\n common to train on bigger hardware and then serve on smaller hardware.\n\n \u003cbr /\u003e\n\n When picking hardware, consider the following:\n - Can you train on less expensive hardware?\n - Would switching to different hardware boost performance?\n - What size is the model and which hardware will optimize its performance?\n - What hardware is ideal based on your model's architecture?\n\n | **Note:** When switching models between hardware, consider the time and effort to migrate the model. Switching hardware might make the model cheaper to run, but the engineering effort to do so might outweigh the savings---or engineering effort might be better prioritized on other work.\n- **Data pipelines**. Data pipelines require quota for RAM and CPU\n\n You'll need to estimate how\n much quota your pipeline needs to generate training and test datasets.\n\nYou might not allocate quota for each pipeline. Instead, you might\nallocate quota that pipelines share. In such cases, verify\nyou have enough quota to run all your pipelines, and set up monitoring and\naltering to prevent a single, errant pipeline from consuming all the quota.\n\nEstimating quota\n\nTo estimate the quota you'll need for the data and training pipelines, find\nsimilar projects to base your estimates on. To estimate serving quota, try to\npredict the service's queries per second. These methods provide a baseline. As\nyou begin prototyping a solution during the experimentation phase, you'll begin\nto get a more precise quota estimate.\n\nWhen estimating quota, remember to factor in quota not only for your production\npipelines, but also for ongoing experiments.\n\nCheck Your Understanding \nWhen choosing hardware to serve predictions, you should always choose more powerful hardware than was used to train the model. \nFalse \nCorrect. Typically, training requires bigger hardware than serving. \nTrue \n\nLogging, monitoring, and alerting\n\nLogging and monitoring a production model's behavior is critical. Robust\nmonitoring infrastructure confirms your models are serving reliable,\nhigh-quality predictions.\n\nGood logging and monitoring practices help proactively identify issues in ML\npipelines and mitigate potential business impact. When issues do occur, alerts\nnotify members of your team, and comprehensive logs facilitate diagnosing the\nproblem's root cause.\n\nYou should implement logging and monitoring to detect the following issues\nwith ML pipelines:\n\n| Pipeline | Monitor |\n|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Serving | - Skews or drifts in the serving data compared to the training data - Skews or drifts in predictions - Data type issues, like missing or corrupted values - Quota usage - Model quality metrics Calculating a production model's quality is different than calculating a model's quality during training. In production, you won't necessarily have access to the ground truth to compare predictions against. Instead, you'll need to write custom monitoring instrumentation to capture metrics that act as a proxy for model quality. For example, in a mail app, you won't know which mail is spam in real time. Instead, you can monitor the percentage of mail users move to spam. If the number jumps from 0.5% to 3%, that signals a potential issue with the model. | Note that comparing the changes in | the proxy metrics is more insightful than their raw numbers. |\n| Data | - Skews and drifts in feature values - Skews and drifts in label values - Data type issues, like missing or corrupted values - Quota usage rate - Quota limit about to be reached |\n| Training | - Training time - Training failures - Quota usage |\n| Validation | - Skew or drift in the test datasets |\n\nYou'll also want logging, monitoring, alerting for the following:\n\n- **Latency**. How long does it take to deliver a prediction?\n- **Outages**. Has the model stopped delivering predictions?\n\nCheck Your Understanding \nWhich of the following is the main reason for logging and monitoring your ML pipelines? \nProactively detect issues before they impact users \nTrack quota and resource usage \nIdentify potential security problems \nAll of the above \nCorrect. Logging and monitoring your ML pipelines helps prevent and diagnose problems before they become serious.\n\nDeploying a model\n\nFor model deployment, you'll want to document the following:\n\n- Approvals required to begin deployment and increase the roll out.\n- How to put a model into production.\n- Where the model gets deployed, for example, if there are staging or canary environments.\n- What to do if a deployment fails.\n- How to rollback a model already in production.\n\nAfter automating model training, you'll want to automate\nvalidation and deployment. Automating deployments distributes\nresponsibility and reduces the likelihood of a deployment being bottlenecked by\na single person. It also reduces potential mistakes, increases efficiency and\nreliability, and enables on-call rotations and SRE support.\n\nTypically you deploy new models to a subset of users to check that the model is\nbehaving as expected. If it is, continue with the deployment. If it's not,\nyou rollback the deployment and begin diagnosing and debugging the issues."]]