Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Trigger-based Retraining for ML Models
📖 Scenario: You work as a machine learning engineer. You want to keep your ML model fresh and accurate. To do this, you will create a simple program that decides when to retrain the model. Retraining can happen on a schedule, when data changes a lot (data drift), or when model performance drops.
🎯 Goal: Build a Python program that tracks model retraining triggers: a fixed schedule, data drift detection, and performance drop detection. The program will decide if retraining is needed based on these triggers.
📋 What You'll Learn
Create a dictionary with last retrain date and current date
Add threshold values for data drift and performance drop
Write logic to check if retraining is needed based on schedule, drift, or performance
Print the retraining decision
💡 Why This Matters
🌍 Real World
ML models can lose accuracy over time. This project shows how to decide when to retrain models based on time, data changes, or performance drops.
💼 Career
Understanding retraining triggers is key for ML engineers and MLOps specialists to keep models reliable and efficient in production.
Progress0 / 4 steps
1
Setup retraining dates
Create a dictionary called dates with keys 'last_retrain' and 'current_date'. Set 'last_retrain' to the string '2024-04-01' and 'current_date' to the string '2024-04-15'.
MLOps
Hint
Use a dictionary with exact keys and string dates as values.
2
Add retraining thresholds
Add two variables: drift_threshold set to 0.3 and performance_threshold set to 0.75.
MLOps
Hint
Use simple float variables for thresholds.
3
Check retraining triggers
Write code to check if retraining is needed. Create a variable needs_retrain that is true if any of these are true: 14 or more days have passed between dates['last_retrain'] and dates['current_date'], data_drift is greater than drift_threshold, or model_performance is less than performance_threshold. Use data_drift = 0.35 and model_performance = 0.8 in your code.
MLOps
Hint
Use datetime to calculate days passed. Combine conditions with or.
4
Print retraining decision
Write a print statement that outputs exactly "Retrain model: true" using the needs_retrain variable.
MLOps
Hint
Use an f-string to print the message with the variable.
Practice
(1/5)
1. What is the main purpose of trigger-based retraining in machine learning operations?
easy
A. Automatically update models when data or performance changes
Trigger-based retraining means models update automatically when certain conditions happen, like data changes or performance drops.
Step 2: Compare options to concept
Only Automatically update models when data or performance changes describes automatic updates based on triggers, matching the concept.
Final Answer:
Automatically update models when data or performance changes -> Option A
Quick Check:
Trigger-based retraining = automatic updates [OK]
Hint: Triggers mean automatic updates, not manual tasks [OK]
Common Mistakes:
Confusing manual retraining with trigger-based retraining
Thinking triggers only store data
Assuming triggers visualize data
2. Which SQL statement correctly creates a trigger to start retraining after new data is inserted into a table named training_data?
easy
A. CREATE retrain_trigger AFTER INSERT ON training_data CALL start_retraining();
B. INSERT TRIGGER retrain_trigger ON training_data AFTER EXEC start_retraining();"
C. TRIGGER CREATE retrain_trigger ON training_data AFTER INSERT EXEC start_retraining();
D. CREATE TRIGGER retrain_trigger AFTER INSERT ON training_data FOR EACH ROW EXECUTE PROCEDURE start_retraining();
Solution
Step 1: Recall correct SQL trigger syntax
Standard SQL triggers use CREATE TRIGGER, specify timing (AFTER), event (INSERT), table, and procedure to execute.
Step 2: Match syntax to options
CREATE TRIGGER retrain_trigger AFTER INSERT ON training_data FOR EACH ROW EXECUTE PROCEDURE start_retraining(); matches correct syntax: CREATE TRIGGER retrain_trigger AFTER INSERT ON training_data FOR EACH ROW EXECUTE PROCEDURE start_retraining();
Final Answer:
CREATE TRIGGER retrain_trigger AFTER INSERT ON training_data FOR EACH ROW EXECUTE PROCEDURE start_retraining(); -> Option D
Quick Check:
Correct trigger syntax = CREATE TRIGGER retrain_trigger AFTER INSERT ON training_data FOR EACH ROW EXECUTE PROCEDURE start_retraining(); [OK]
Hint: Look for 'CREATE TRIGGER ... EXECUTE PROCEDURE' pattern [OK]
Common Mistakes:
Using CALL instead of EXECUTE PROCEDURE
Wrong order of keywords
Missing FOR EACH ROW clause
3. Given this trigger function in PostgreSQL:
CREATE OR REPLACE FUNCTION check_drift() RETURNS trigger AS $$
BEGIN
IF NEW.error_rate > 0.1 THEN
PERFORM start_retraining();
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
What happens when a new row with error_rate = 0.15 is inserted?
medium
A. The retraining procedure is called because error_rate > 0.1
B. Nothing happens because triggers don't run on INSERT
C. An error occurs due to syntax mistake
D. The row is rejected and not inserted
Solution
Step 1: Analyze trigger function logic
The function checks if NEW.error_rate > 0.1; if true, it calls start_retraining().
Step 2: Apply condition to given data
Since error_rate is 0.15, which is greater than 0.1, the retraining procedure is called.
Final Answer:
The retraining procedure is called because error_rate > 0.1 -> Option A
Quick Check:
error_rate 0.15 > 0.1 triggers retraining [OK]
Hint: Check condition in trigger function with inserted data [OK]
Common Mistakes:
Thinking triggers don't run on INSERT
Assuming syntax error without checking code
Believing row insertion fails
4. You wrote this trigger to start retraining on performance drop:
CREATE TRIGGER retrain_on_drop
AFTER UPDATE ON model_metrics
FOR EACH ROW
WHEN (NEW.accuracy < OLD.accuracy)
EXECUTE PROCEDURE start_retraining();
But retraining never starts. What is the likely problem?
medium
A. Triggers cannot run AFTER UPDATE events
B. The WHEN clause is not supported in all SQL dialects
C. start_retraining() must be a procedure, not a function
D. The trigger name is invalid
Solution
Step 1: Understand WHEN clause support
Not all SQL databases support the WHEN clause in triggers; some require condition checks inside the function.
Step 2: Identify why retraining doesn't start
If the database ignores the WHEN clause, the condition is never checked, so retraining never triggers.
Final Answer:
The WHEN clause is not supported in all SQL dialects -> Option B
Quick Check:
WHEN clause support varies by SQL dialect [OK]
Hint: Check if your SQL dialect supports WHEN in triggers [OK]
Common Mistakes:
Assuming triggers can't run AFTER UPDATE
Confusing functions and procedures
Thinking trigger names cause failure
5. You want to design a trigger-based retraining system that retrains a model only if both the data drift exceeds threshold and model accuracy drops below 90%. Which approach is best?
hard
A. Manually retrain the model when you notice performance issues
B. Create two separate triggers: one for drift and one for accuracy, each retraining independently
C. Create a trigger that calls a procedure checking both drift and accuracy before retraining
D. Schedule retraining daily regardless of drift or accuracy
Solution
Step 1: Understand combined condition requirement
The retraining should happen only if both drift and accuracy conditions are met together.
Step 2: Evaluate options for combined logic
Create a trigger that calls a procedure checking both drift and accuracy before retraining uses a single trigger calling a procedure that checks both conditions before retraining, ensuring both must be true.
Step 3: Why other options fail
Create two separate triggers: one for drift and one for accuracy, each retraining independently retrains independently on each condition, not requiring both. Schedule retraining daily regardless of drift or accuracy ignores conditions. Manually retrain the model when you notice performance issues is manual, not trigger-based.
Final Answer:
Create a trigger that calls a procedure checking both drift and accuracy before retraining -> Option C
Quick Check:
Combined condition needs single trigger with logic [OK]
Hint: Use one trigger with combined condition check procedure [OK]
Common Mistakes:
Using separate triggers causing unnecessary retraining