Automatisering 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
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.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Fantastisk!
Completion rate forbedret til 6.67
Automatisering 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
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.
Takk for tilbakemeldingene dine!