Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Автоматизація Повторного Навчання Моделей | Розділ
Основи MLOps

bookАвтоматизація Повторного Навчання Моделей

Коли з'являються нові дані, перенавчання моделей машинного навчання забезпечує збереження точності та актуальності прогнозів — це ключовий етап підтримки продуктивності моделі з часом. За допомогою 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
Note
Примітка

Автоматизація перенавчання допомагає зменшити дрейф моделі — поступове зниження продуктивності через зміну шаблонів даних. Завдяки Airflow конвеєри перенавчання можуть запускатися щодня, щотижня або після оновлення даних, забезпечуючи точність і надійність розгорнутої моделі.

question mark

Яка основна перевага автоматизації повторного навчання моделей за допомогою Airflow?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 12

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

bookАвтоматизація Повторного Навчання Моделей

Свайпніть щоб показати меню

Коли з'являються нові дані, перенавчання моделей машинного навчання забезпечує збереження точності та актуальності прогнозів — це ключовий етап підтримки продуктивності моделі з часом. За допомогою 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
Note
Примітка

Автоматизація перенавчання допомагає зменшити дрейф моделі — поступове зниження продуктивності через зміну шаблонів даних. Завдяки Airflow конвеєри перенавчання можуть запускатися щодня, щотижня або після оновлення даних, забезпечуючи точність і надійність розгорнутої моделі.

question mark

Яка основна перевага автоматизації повторного навчання моделей за допомогою Airflow?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 12
some-alt