Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Automatizando o Re-Treinamento de Modelos | Seção
Practice
Projects
Quizzes & Challenges
Questionários
Challenges
/
Fundamentos de MLOps

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

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.

question mark

Qual é o principal benefício de automatizar o re-treinamento de modelos com o Airflow?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 12

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

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

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.

question mark

Qual é o principal benefício de automatizar o re-treinamento de modelos com o Airflow?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 12
some-alt