0Pricing
Learn AI with Python · Урок

Масштабируемые конвейеры машинного обучения с Airflow

Конвейеры на основе DAG, зависимости задач, получение данных → обучение → оценка → развертывание

«Масштабируемые конвейеры машинного обучения с Airflow» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.

Зачем нужна оркестрация

Рабочий процесс машинного обучения состоит из множества шагов: загрузить данные, построить признаки, обучить модель, оценить её и выполнить deploy. Запускать всё это вручную ненадёжно. Apache Airflow оркестрирует эти шаги в виде кода, предоставляя расписание, повторные попытки, зависимости и мониторинг.

DAG

Airflow представляет конвейер как DAG (ориентированный ацикличный граф) задач. Ацикличность означает, что ни одна задача не может зависеть от самой себя в цикле, поэтому порядок выполнения от начала до конца всегда однозначно определён.

Определение DAG

Вы объявляете DAG с идентификатором, расписанием и датой начала. Расписание определяет, как часто он запускается, например для ежедневного переобучения.

from airflow import DAG
import datetime

with DAG(
    dag_id="ml_pipeline",
    schedule="@daily",
    start_date=datetime.datetime(2024, 1, 1),
    catchup=False,
) as dag:
    ...

Операторы — это задачи

Каждый узел DAG — это задача, созданная на основе оператора. Разные операторы выполняют разные виды работы: функции Python, команды Bash, запросы SQL и многое другое.

PythonOperator для обучения

PythonOperator запускает вызываемую функцию Python. Он идеально подходит для шага обучения, вызывающего Вашу функцию обучения.

from airflow.operators.python import PythonOperator

def train_model():
    # load features, fit model, save artifact
    ...

train = PythonOperator(
    task_id="train",
    python_callable=train_model,
)

BashOperator для оценки

BashOperator запускает команду оболочки и удобен для вызова скрипта оценки или инструмента CLI.

from airflow.operators.bash import BashOperator

evaluate = BashOperator(
    task_id="evaluate",
    bash_command="python /opt/ml/evaluate.py --model latest",
)

Определение зависимостей

Оператор >> задаёт порядок задач: a >> b означает, что b запускается после успешного выполнения a. Так DAG настраивается таким образом, что оценка начинается только после завершения обучения.

train >> evaluate
# train must succeed before evaluate runs

Более длинные цепочки зависимостей

Вы можете связать множество задач, чтобы выразить полный порядок конвейера. Airflow запускает независимые ветви параллельно и соблюдает все объявленные Вами зависимости.

ingest >> features >> train >> evaluate >> deploy

Передача данных с помощью XCom

Задачи выполняются изолированно, поэтому как передать результат следующей задаче? XCom (обмен данными между задачами) позволяет одной задаче передать небольшое значение, например путь к модели или метрику, которое получает последующая задача.

def train_model(ti):
    path = "/models/run_42.pt"
    ti.xcom_push(key="model_path", value=path)

def deploy(ti):
    path = ti.xcom_pull(key="model_path", task_ids="train")
    # deploy the artifact at path

XCom предназначен для небольших данных

XCom предназначен для небольших метаданных (путей, идентификаторов и метрик), а не для больших наборов данных. Крупные артефакты должны храниться в объектном хранилище (S3), а через XCom следует передавать только их расположение. Чрезмерное использование XCom для больших данных перегружает базу метаданных.

Планирование и повторные попытки

Airflow обеспечивает надёжность производственной системы без дополнительных усилий: расписание автоматически запускает процессы, неудачные задачи выполняют повторную попытку с увеличением интервала, а пользовательский интерфейс показывает состояние каждой задачи и каждого запуска и отправляет уведомления при сбое.

Быстрая проверка

Проверьте свои знания об Airflow.

Повторение

Вы изучили масштабируемые конвейеры машинного обучения с Airflow:

  • DAG с расписанием определяет конвейер
  • PythonOperator запускает обучение, а BashOperator — оценку
  • Оператор >> задаёт зависимости между задачами
  • XCom передаёт небольшие артефакты между задачами, а большие данные отправляются в объектное хранилище

Часто задаваемые вопросы

Урок «Масштабируемые конвейеры машинного обучения с Airflow» бесплатный?

Да — полный текст урока «Масштабируемые конвейеры машинного обучения с Airflow» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.

Чему я научусь в уроке «Масштабируемые конвейеры машинного обучения с Airflow»?

Конвейеры на основе DAG, зависимости задач, получение данных → обучение → оценка → развертывание Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn AI with Python?

Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Масштабируемые конвейеры машинного обучения с Airflow»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn AI with Python?

Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Шаблоны архитектуры систем искусственного интеллекта
  2. Масштабируемые конвейеры машинного обучения с Airflow
  3. Хранилища признаков: Feast и Tecton
  4. Наблюдаемость и мониторинг систем искусственного интеллекта
← Назад к Learn AI with Python