Automazione del Retraining del Modello
Man mano che nuovi dati diventano disponibili, il retraining dei modelli ML garantisce che le previsioni rimangano accurate e pertinenti — un passaggio fondamentale per mantenere le prestazioni del modello nel tempo. Con Apache Airflow, è possibile pianificare e orchestrare automaticamente questo retraining, eliminando le fasi manuali e assicurando la completa riproducibilità.
In questa configurazione, un DAG di Airflow definisce ogni fase del retraining: caricamento dei dati, preprocessamento, addestramento, valutazione e logging. Airflow gestisce ordine e pianificazione, mantenendo il modello aggiornato con il minimo sforzo.
Esempio: DAG di Retraining Automatico
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.python import PythonOperator
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
import logging
def load_data():
iris = load_iris(as_frame=True)
df = iris.frame
df.to_csv('/tmp/iris.csv', index=False)
def train_and_evaluate():
df = pd.read_csv('/tmp/iris.csv')
X = df.drop('target', axis=1)
y = df['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
pipeline = Pipeline([
('scaler', StandardScaler()),
('clf', RandomForestClassifier(n_estimators=50, random_state=42))
])
pipeline.fit(X_train, y_train)
y_pred = pipeline.predict(X_test)
acc = accuracy_score(y_test, y_pred)
logging.info(f"Retrained model accuracy: {acc:.4f}")
default_args = {
'owner': 'airflow',
'start_date': datetime(2024, 1, 1),
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG(
'retrain_ml_model',
default_args=default_args,
schedule_interval='@daily',
catchup=False,
tags=['ml', 'retraining'],
)
load_data_task = PythonOperator(
task_id='load_data',
python_callable=load_data,
dag=dag,
)
train_and_evaluate_task = PythonOperator(
task_id='train_and_evaluate',
python_callable=train_and_evaluate,
dag=dag,
)
load_data_task >> train_and_evaluate_task
L'automazione del retraining aiuta a mitigare il model drift — il graduale calo delle prestazioni dovuto al cambiamento dei pattern nei dati. Con Airflow, le pipeline di retraining possono essere eseguite giornalmente, settimanalmente o dopo aggiornamenti dei dati, garantendo che il modello in produzione rimanga accurato e affidabile.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Fantastico!
Completion tasso migliorato a 6.67
Automazione del Retraining del Modello
Scorri per mostrare il menu
Man mano che nuovi dati diventano disponibili, il retraining dei modelli ML garantisce che le previsioni rimangano accurate e pertinenti — un passaggio fondamentale per mantenere le prestazioni del modello nel tempo. Con Apache Airflow, è possibile pianificare e orchestrare automaticamente questo retraining, eliminando le fasi manuali e assicurando la completa riproducibilità.
In questa configurazione, un DAG di Airflow definisce ogni fase del retraining: caricamento dei dati, preprocessamento, addestramento, valutazione e logging. Airflow gestisce ordine e pianificazione, mantenendo il modello aggiornato con il minimo sforzo.
Esempio: DAG di Retraining Automatico
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.python import PythonOperator
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
import logging
def load_data():
iris = load_iris(as_frame=True)
df = iris.frame
df.to_csv('/tmp/iris.csv', index=False)
def train_and_evaluate():
df = pd.read_csv('/tmp/iris.csv')
X = df.drop('target', axis=1)
y = df['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
pipeline = Pipeline([
('scaler', StandardScaler()),
('clf', RandomForestClassifier(n_estimators=50, random_state=42))
])
pipeline.fit(X_train, y_train)
y_pred = pipeline.predict(X_test)
acc = accuracy_score(y_test, y_pred)
logging.info(f"Retrained model accuracy: {acc:.4f}")
default_args = {
'owner': 'airflow',
'start_date': datetime(2024, 1, 1),
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG(
'retrain_ml_model',
default_args=default_args,
schedule_interval='@daily',
catchup=False,
tags=['ml', 'retraining'],
)
load_data_task = PythonOperator(
task_id='load_data',
python_callable=load_data,
dag=dag,
)
train_and_evaluate_task = PythonOperator(
task_id='train_and_evaluate',
python_callable=train_and_evaluate,
dag=dag,
)
load_data_task >> train_and_evaluate_task
L'automazione del retraining aiuta a mitigare il model drift — il graduale calo delle prestazioni dovuto al cambiamento dei pattern nei dati. Con Airflow, le pipeline di retraining possono essere eseguite giornalmente, settimanalmente o dopo aggiornamenti dei dati, garantendo che il modello in produzione rimanga accurato e affidabile.
Grazie per i tuoi commenti!