Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Automatisering av Modell-omtrening | Seksjon
Practice
Projects
Quizzes & Challenges
Quizer
Challenges
/
MLOps-Grunnleggende

bookAutomatisering av Modell-omtrening

Etter hvert som nye data blir tilgjengelige, sikrer retrening av ML-modeller at prediksjonene forblir nøyaktige og relevante — et sentralt steg for å opprettholde modellens ytelse over tid. Med Apache Airflow kan du planlegge og orkestrere denne retreningen automatisk, noe som fjerner manuelle steg og sikrer full reproduserbarhet.

I denne løsningen definerer en Airflow DAG hvert retreningssteg: lasting av data, forhåndsprosessering, trening, evaluering og logging. Airflow håndterer rekkefølge og planlegging, slik at modellen din holdes oppdatert med minimal innsats.

Eksempel: Automatisert retrenings-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
Merk

Automatisering av retrening bidrar til å redusere modelldrift — den gradvise nedgangen i ytelse når dataprofiler endres. Med Airflow kan retreningspipelines kjøres daglig, ukentlig eller etter dataoppdateringer, slik at den distribuerte modellen forblir nøyaktig og pålitelig.

question mark

Hva er hovedfordelen med å automatisere modelltrening med Airflow?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 12

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

bookAutomatisering av Modell-omtrening

Sveip for å vise menyen

Etter hvert som nye data blir tilgjengelige, sikrer retrening av ML-modeller at prediksjonene forblir nøyaktige og relevante — et sentralt steg for å opprettholde modellens ytelse over tid. Med Apache Airflow kan du planlegge og orkestrere denne retreningen automatisk, noe som fjerner manuelle steg og sikrer full reproduserbarhet.

I denne løsningen definerer en Airflow DAG hvert retreningssteg: lasting av data, forhåndsprosessering, trening, evaluering og logging. Airflow håndterer rekkefølge og planlegging, slik at modellen din holdes oppdatert med minimal innsats.

Eksempel: Automatisert retrenings-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
Merk

Automatisering av retrening bidrar til å redusere modelldrift — den gradvise nedgangen i ytelse når dataprofiler endres. Med Airflow kan retreningspipelines kjøres daglig, ukentlig eller etter dataoppdateringer, slik at den distribuerte modellen forblir nøyaktig og pålitelig.

question mark

Hva er hovedfordelen med å automatisere modelltrening med Airflow?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 12
some-alt