Automatisering 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
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.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Fantastiskt!
Completion betyg förbättrat till 6.67
Automatisering 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
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.
Tack för dina kommentarer!