[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 9기
학습일 : 2025.01.06
📕 프로젝트 작업 내역
- Airflow + MLflow 연동 필요성
- 연동 방법
- 코드 예시
📗 수행 결과
1. Airflow + MLflow 연동 필요성
- 각각의 역할
- Airflow : 모델 학습 과정을 자동으로 스케줄링
- MLflow : 모델 실험의 파라미터·성능 지표·결과를 기록하고 버전 관리
- 이 두 가지를 연동하면 얻게 되는 이점
- 모델 학습을 주기적으로 자동 실행하면서
- 각 실험의 결과를 MLflow에 자동으로 기록하여 추적 가능
- 성능 비교, 베스트 모델 관리, 재학습 여부 판단이 쉬워짐
2. 연동 방법
[Airflow DAG 실행]
↓
[PythonOperator 내에서 MLflow Tracking API 호출]
↓
[실험명 설정 → 파라미터 로깅 → 메트릭 기록 → 모델 저장]
↓
[MLflow UI에서 모든 실험 결과 조회 가능]
3. 코드 예시
from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime
import mlflow
import mlflow.sklearn
def run_training():
mlflow.set_tracking_uri("http://localhost:5000") # 또는 S3, EC2 내부 주소 등
mlflow.set_experiment("ocr_model_experiment")
with mlflow.start_run(run_name="run_20250105") as run:
# 파라미터 기록
mlflow.log_param("learning_rate", 0.001)
mlflow.log_param("batch_size", 64)
# 모델 학습 코드 삽입
accuracy = 0.92 # 예시
# 메트릭 기록
mlflow.log_metric("val_accuracy", accuracy)
# 모델 저장
mlflow.sklearn.log_model(sk_model="model.pkl", artifact_path="model")
print("MLflow 연동 완료")
with DAG(
dag_id="ml_training_with_mlflow",
start_date=datetime(2025, 1, 1),
schedule_interval="@monthly",
catchup=False,
) as dag:
train = PythonOperator(
task_id="train_and_log_model",
python_callable=run_training
)
📙 내일 일정
- Airflow 수행 결과
'TIL _Today I Learned > 2025.01' 카테고리의 다른 글
[DAY 120] 최종 프로젝트_ MLflow 수행 결과 (0) | 2025.01.09 |
---|---|
[DAY 119] 최종 프로젝트_ TrOCR 모델 추가 학습 (0) | 2025.01.08 |
[DAY 118] 최종 프로젝트_ Airflow 수행 결과 (0) | 2025.01.07 |
[DAY 116] 최종 프로젝트_ MLflow 개념 (0) | 2025.01.03 |
[DAY 115] 최종 프로젝트_ Airflow 개념 (0) | 2025.01.02 |