Автоматизація Повторного Навчання Моделей
Свайпніть щоб показати меню
Коли з'являються нові дані, перенавчання моделей машинного навчання забезпечує збереження точності та актуальності прогнозів — це ключовий етап підтримки продуктивності моделі з часом. За допомогою Apache Airflow можна автоматизувати планування та оркестрацію перенавчання, усуваючи ручні дії та забезпечуючи повну відтворюваність.
У цій конфігурації DAG Airflow визначає кожен етап перенавчання: завантаження даних, попередню обробку, навчання, оцінювання та логування. Airflow керує порядком і розкладом, тому ваша модель залишається актуальною з мінімальними зусиллями.
Приклад: 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
Автоматизація перенавчання допомагає зменшити дрейф моделі — поступове зниження продуктивності через зміну шаблонів даних. Завдяки Airflow конвеєри перенавчання можуть запускатися щодня, щотижня або після оновлення даних, забезпечуючи точність і надійність розгорнутої моделі.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат