Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Automazione del Retraining del Modello | Sezione
Fondamenti di MLOps

bookAutomazione 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
Note
Nota

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.

question mark

Qual è il principale vantaggio dell'automazione del retraining dei modelli con Airflow?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 12

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

bookAutomazione 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
Note
Nota

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.

question mark

Qual è il principale vantaggio dell'automazione del retraining dei modelli con Airflow?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 12
some-alt