Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Automatisering av Modellomträning | Sektion
Mlops-Grunder

bookAutomatisering av Modellomträning

När ny data blir tillgänglig säkerställer omträning av dina ML-modeller att förutsägelser förblir korrekta och relevanta — ett centralt steg för att upprätthålla modellens prestanda över tid. Med Apache Airflow kan du schemalägga och orkestrera denna omträning automatiskt, vilket eliminerar manuella steg och säkerställer full reproducerbarhet.

I denna konfiguration definierar en Airflow DAG varje steg i omträningsprocessen: inläsning av data, förbehandling, träning, utvärdering och loggning. Airflow hanterar ordning och schemaläggning, så att din modell hålls uppdaterad med minimalt arbete.

Exempel: Automatiserad omtränings-DAG

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
Notering

Automatisering av omträning hjälper till att motverka modelldrift — den gradvisa försämringen av prestanda när datamönster förändras. Med Airflow kan omträningspipelines köras dagligen, veckovis eller efter datauppdateringar, vilket säkerställer att din distribuerade modell förblir korrekt och tillförlitlig.

question mark

Vad är den främsta fördelen med att automatisera modellomträning med Airflow?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 12

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

bookAutomatisering av Modellomträning

Svep för att visa menyn

När ny data blir tillgänglig säkerställer omträning av dina ML-modeller att förutsägelser förblir korrekta och relevanta — ett centralt steg för att upprätthålla modellens prestanda över tid. Med Apache Airflow kan du schemalägga och orkestrera denna omträning automatiskt, vilket eliminerar manuella steg och säkerställer full reproducerbarhet.

I denna konfiguration definierar en Airflow DAG varje steg i omträningsprocessen: inläsning av data, förbehandling, träning, utvärdering och loggning. Airflow hanterar ordning och schemaläggning, så att din modell hålls uppdaterad med minimalt arbete.

Exempel: Automatiserad omtränings-DAG

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
Notering

Automatisering av omträning hjälper till att motverka modelldrift — den gradvisa försämringen av prestanda när datamönster förändras. Med Airflow kan omträningspipelines köras dagligen, veckovis eller efter datauppdateringar, vilket säkerställer att din distribuerade modell förblir korrekt och tillförlitlig.

question mark

Vad är den främsta fördelen med att automatisera modellomträning med Airflow?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 12
some-alt