Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Automatisering af Modelgenoptræning | Sektion
Practice
Projects
Quizzes & Challenges
Quizzer
Challenges
/
Mlops Grundlæggende

bookAutomatisering af Modelgenoptræning

Når nye data bliver tilgængelige, sikrer genoptræning af ML-modeller, at forudsigelser forbliver nøjagtige og relevante — et centralt skridt for at opretholde modelpræstation over tid. Med Apache Airflow kan denne genoptræning planlægges og orkestreres automatisk, hvilket eliminerer manuelle trin og sikrer fuld reproducerbarhed.

I denne opsætning definerer en Airflow DAG hvert trin i genoptræningen: indlæsning af data, forbehandling, træning, evaluering og logning. Airflow håndterer rækkefølge og planlægning, så modellen holdes opdateret med minimal indsats.

Eksempel: Automatiseret Genoptræ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
Bemærk

Automatisering af genoptræning hjælper med at afbøde modeldrift — den gradvise forringelse af præstation, når dataprofiler ændrer sig. Med Airflow kan genoptrænings-pipelines køre dagligt, ugentligt eller efter dataopdateringer, hvilket sikrer, at den implementerede model forbliver nøjagtig og pålidelig.

question mark

Hvad er den primære fordel ved at automatisere modelgenoptræning med Airflow?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 12

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

bookAutomatisering af Modelgenoptræning

Stryg for at vise menuen

Når nye data bliver tilgængelige, sikrer genoptræning af ML-modeller, at forudsigelser forbliver nøjagtige og relevante — et centralt skridt for at opretholde modelpræstation over tid. Med Apache Airflow kan denne genoptræning planlægges og orkestreres automatisk, hvilket eliminerer manuelle trin og sikrer fuld reproducerbarhed.

I denne opsætning definerer en Airflow DAG hvert trin i genoptræningen: indlæsning af data, forbehandling, træning, evaluering og logning. Airflow håndterer rækkefølge og planlægning, så modellen holdes opdateret med minimal indsats.

Eksempel: Automatiseret Genoptræ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
Bemærk

Automatisering af genoptræning hjælper med at afbøde modeldrift — den gradvise forringelse af præstation, når dataprofiler ændrer sig. Med Airflow kan genoptrænings-pipelines køre dagligt, ugentligt eller efter dataopdateringer, hvilket sikrer, at den implementerede model forbliver nøjagtig og pålidelig.

question mark

Hvad er den primære fordel ved at automatisere modelgenoptræning med Airflow?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 12
some-alt