Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Automatización del Reentrenamiento de Modelos | Sección
Fundamentos de MLOps

bookAutomatización del Reentrenamiento de Modelos

A medida que se dispone de nuevos datos, el reentrenamiento de los modelos de ML garantiza que las predicciones sigan siendo precisas y relevantes, un paso clave para mantener el rendimiento del modelo a lo largo del tiempo. Con Apache Airflow, es posible programar y orquestar este reentrenamiento de forma automática, eliminando pasos manuales y asegurando la total reproducibilidad.

En esta configuración, un DAG de Airflow define cada paso del reentrenamiento: carga de datos, preprocesamiento, entrenamiento, evaluación y registro. Airflow gestiona el orden y la programación, por lo que el modelo se mantiene actualizado con un esfuerzo mínimo.

Ejemplo: DAG de Reentrenamiento Automatizado

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

La automatización del reentrenamiento ayuda a mitigar el model drift — el descenso gradual del rendimiento a medida que cambian los patrones de los datos. Con Airflow, los pipelines de reentrenamiento pueden ejecutarse diariamente, semanalmente o tras actualizaciones de datos, asegurando que el modelo desplegado se mantenga preciso y confiable.

question mark

¿Cuál es el principal beneficio de automatizar el reentrenamiento de modelos con Airflow?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 12

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

bookAutomatización del Reentrenamiento de Modelos

Desliza para mostrar el menú

A medida que se dispone de nuevos datos, el reentrenamiento de los modelos de ML garantiza que las predicciones sigan siendo precisas y relevantes, un paso clave para mantener el rendimiento del modelo a lo largo del tiempo. Con Apache Airflow, es posible programar y orquestar este reentrenamiento de forma automática, eliminando pasos manuales y asegurando la total reproducibilidad.

En esta configuración, un DAG de Airflow define cada paso del reentrenamiento: carga de datos, preprocesamiento, entrenamiento, evaluación y registro. Airflow gestiona el orden y la programación, por lo que el modelo se mantiene actualizado con un esfuerzo mínimo.

Ejemplo: DAG de Reentrenamiento Automatizado

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

La automatización del reentrenamiento ayuda a mitigar el model drift — el descenso gradual del rendimiento a medida que cambian los patrones de los datos. Con Airflow, los pipelines de reentrenamiento pueden ejecutarse diariamente, semanalmente o tras actualizaciones de datos, asegurando que el modelo desplegado se mantenga preciso y confiable.

question mark

¿Cuál es el principal beneficio de automatizar el reentrenamiento de modelos con Airflow?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 12
some-alt