0Pricing
Learn AI with Python · 강의

Airflow를 활용한 확장 가능한 머신러닝 파이프라인

DAG 기반 파이프라인, 작업 종속성, 데이터 수집 → 학습 → 평가 → 배포 흐름을 다룹니다.

Airflow를 활용한 확장 가능한 머신러닝 파이프라인은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

오케스트레이션이 필요한 이유

머신러닝 워크플로에는 데이터 수집, 피처 생성, 학습, 평가, deploy 등 많은 단계가 있습니다. 이 작업을 수동으로 실행하면 취약해집니다. Apache Airflow는 일정 관리, 재시도, 의존성 관리, 모니터링을 기본으로 제공하면서 이러한 작업을 코드로 오케스트레이션합니다.

DAG

Airflow는 파이프라인을 작업으로 이루어진 DAG(방향성 비순환 그래프)로 모델링합니다. 비순환이란 어떤 작업도 순환 구조에서 자기 자신에 의존할 수 없다는 뜻이므로, 실행 순서는 시작부터 종료까지 항상 명확하게 정해집니다.

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는 a가 성공한 후에 b가 실행된다는 뜻입니다. 이렇게 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 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“Airflow를 활용한 확장 가능한 머신러닝 파이프라인”에서 뭘 배우나요?

DAG 기반 파이프라인, 작업 종속성, 데이터 수집 → 학습 → 평가 → 배포 흐름을 다룹니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“Airflow를 활용한 확장 가능한 머신러닝 파이프라인” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 인공지능 시스템 아키텍처 패턴
  2. Airflow를 활용한 확장 가능한 머신러닝 파이프라인
  3. 특성 저장소: Feast와 Tecton
  4. 인공지능 시스템 관측 가능성 및 모니터링
← Learn AI with Python(으)로 돌아가기