Automatizació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
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.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Genial!
Completion tasa mejorada a 6.67
Automatizació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
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.
¡Gracias por tus comentarios!