Automatizando o Re-Treinamento de Modelos
À medida que novos dados se tornam disponíveis, o re-treinamento dos modelos de ML garante que as previsões permaneçam precisas e relevantes — etapa fundamental para manter o desempenho do modelo ao longo do tempo. Com o Apache Airflow, é possível agendar e orquestrar esse re-treinamento automaticamente, eliminando etapas manuais e assegurando total reprodutibilidade.
Nesta configuração, um DAG do Airflow define cada etapa do re-treinamento: carregamento de dados, pré-processamento, treinamento, avaliação e registro. O Airflow gerencia a ordem e o agendamento, mantendo seu modelo atualizado com o mínimo de esforço.
Exemplo: DAG de Re-treinamento 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
A automação do re-treinamento ajuda a mitigar o model drift — o declínio gradual do desempenho à medida que os padrões dos dados mudam. Com o Airflow, pipelines de re-treinamento podem ser executados diariamente, semanalmente ou após atualizações de dados, garantindo que o modelo implantado permaneça preciso e confiável.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Incrível!
Completion taxa melhorada para 6.67
Automatizando o Re-Treinamento de Modelos
Deslize para mostrar o menu
À medida que novos dados se tornam disponíveis, o re-treinamento dos modelos de ML garante que as previsões permaneçam precisas e relevantes — etapa fundamental para manter o desempenho do modelo ao longo do tempo. Com o Apache Airflow, é possível agendar e orquestrar esse re-treinamento automaticamente, eliminando etapas manuais e assegurando total reprodutibilidade.
Nesta configuração, um DAG do Airflow define cada etapa do re-treinamento: carregamento de dados, pré-processamento, treinamento, avaliação e registro. O Airflow gerencia a ordem e o agendamento, mantendo seu modelo atualizado com o mínimo de esforço.
Exemplo: DAG de Re-treinamento 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
A automação do re-treinamento ajuda a mitigar o model drift — o declínio gradual do desempenho à medida que os padrões dos dados mudam. Com o Airflow, pipelines de re-treinamento podem ser executados diariamente, semanalmente ou após atualizações de dados, garantindo que o modelo implantado permaneça preciso e confiável.
Obrigado pelo seu feedback!