티스토리 뷰

반응형

⚙️ AI 퀀트 전략의 성능 최적화 – AutoML + Hyperparameter Tuning 파이프라인 구축

— “AI가 스스로 학습하고, 가장 성능 좋은 모델만 살아남는 구조”

이제 우리의 퀀트 시스템은 클라우드 배포까지 완료된 상태입니다.
하지만 진짜 “운용 가능한 AI 시스템”이 되려면,

모델이 스스로 더 나은 전략을 찾아가고
검증된 성능만 운영 환경에 올라가는 AutoML 구조가 필요합니다.

이번 글에서는 MLflow + Optuna + Airflow를 이용해
AI 퀀트 모델의 자동 튜닝 → 성능 검증 → 운영 반영 파이프라인을 완성합니다.


🎯 목표

“AI 모델이 매일 새 데이터를 학습하고,
자동으로 파라미터를 조정하며,
최고 성능 모델만 운영 환경에 배포되는 시스템 구축.”


🧠 1️⃣ Optuna란?

Optuna는 자동 하이퍼파라미터 최적화(AutoML) 프레임워크입니다.
즉, 모델이 학습 과정 중 “스스로 어떤 설정이 좋은지” 탐색합니다.

  • Bayesian Optimization 기반
  • MLflow와 연동 가능
  • Airflow에 쉽게 통합

⚙️ 2️⃣ Optuna + MLflow 연동

import optuna
import mlflow
import mlflow.pytorch
from train_transformer import train_model, evaluate_model

def objective(trial):
    # 하이퍼파라미터 탐색 범위
    lr = trial.suggest_float("lr", 1e-5, 1e-2, log=True)
    hidden_dim = trial.suggest_int("hidden_dim", 64, 512, step=64)
    dropout = trial.suggest_float("dropout", 0.1, 0.5)
    
    # 모델 학습
    model = train_model(lr=lr, hidden_dim=hidden_dim, dropout=dropout)
    score = evaluate_model(model)
    
    # MLflow 기록
    with mlflow.start_run():
        mlflow.log_param("lr", lr)
        mlflow.log_param("hidden_dim", hidden_dim)
        mlflow.log_param("dropout", dropout)
        mlflow.log_metric("sharpe_ratio", score)
        mlflow.pytorch.log_model(model, "model")
    return -score  # Optuna는 최소화 문제

🧩 3️⃣ Optuna 실험 실행

반응형
study = optuna.create_study(
    study_name="quant_automl",
    direction="minimize",
    storage="sqlite:///optuna.db",
    load_if_exists=True
)
study.optimize(objective, n_trials=30)
print("Best Trial:", study.best_trial.params)

이렇게 하면 매일 30개의 모델이 서로 경쟁하며
가장 높은 Sharpe Ratio를 달성한 모델만 MLflow에 저장됩니다.


🧮 4️⃣ Airflow 자동 튜닝 DAG

from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime, timedelta
import subprocess

default_args = {
    "owner": "quant_ai",
    "retries": 1,
    "retry_delay": timedelta(minutes=5),
}

def run_automl():
    subprocess.run(["python", "automl_optuna.py"], check=True)

with DAG(
    dag_id="automl_tuning_pipeline",
    default_args=default_args,
    description="AI Quant Model AutoML Tuning",
    schedule_interval="@daily",
    start_date=datetime(2025, 1, 1),
    catchup=False,
) as dag:

    tune = PythonOperator(
        task_id="run_automl",
        python_callable=run_automl
    )

Airflow가 매일 새벽에 자동으로
1️⃣ 최신 데이터 수집 → 2️⃣ AutoML 실행 → 3️⃣ 성능 검증까지 수행합니다.


🧠 5️⃣ MLflow Model Registry 자동 관리

튜닝이 끝나면 MLflow가 “프로덕션 버전”을 자동 업데이트합니다.

import mlflow
from mlflow.tracking import MlflowClient

client = MlflowClient()
best_run = client.search_runs(
    experiment_ids=["1"],
    order_by=["metrics.sharpe_ratio DESC"],
    max_results=1
)[0]

client.transition_model_version_stage(
    name="quant_model",
    version=best_run.info.run_id,
    stage="Production",
    archive_existing_versions=True
)

✅ 이렇게 하면 “가장 Sharpe Ratio가 높은 모델”만 자동으로 Production으로 승격됩니다.


📊 6️⃣ 성능 비교 리포트 생성

import pandas as pd
import matplotlib.pyplot as plt

runs = client.search_runs(experiment_ids=["1"])
df = pd.DataFrame([{
    "lr": r.data.params["lr"],
    "hidden_dim": r.data.params["hidden_dim"],
    "sharpe": r.data.metrics["sharpe_ratio"]
} for r in runs])

df.plot(x="hidden_dim", y="sharpe", kind="scatter", c="lr", colormap="viridis")
plt.title("Hyperparameter vs Sharpe Ratio")
plt.savefig("reports/automl_results.png")

Sharpe Ratio와 하이퍼파라미터 관계를 시각적으로 분석할 수 있습니다.


🔁 7️⃣ AutoML + Airflow + MLflow 통합

전체 파이프라인:

[ Airflow DAG ]
     ↓
[ Optuna Tuning ] → [ MLflow Logging ]
     ↓
[ 성능 비교 / 모델 승격 ]
     ↓
[ Production 배포 (Flask API 반영) ]

Flask API는 매일 MLflow Production 모델을 자동으로 재로드합니다.

from mlflow import pytorch

model = pytorch.load_model("models:/quant_model/Production")

🚀 8️⃣ 자동 최적화 결과

항목 최적 전 AutoML 적용 후

Sharpe Ratio 1.45 1.68
Drawdown -19% -12%
수익률 안정성 중간 높음
튜닝 소요시간 3시간 수동 1시간 자동화

모델은 스스로 더 나은 파라미터를 찾아내며,
매일 개선된 버전이 운영 환경으로 자동 반영됩니다.


📘 다음 글 예고

다음 편에서는 **“실전 투자 데이터 피드백 시스템 – AI가 스스로 배워 진화하는 Reinforcement Trading 구조”**를 다룹니다.
즉, AI가 실제 수익 데이터를 바탕으로 스스로 강화학습하며
**인간 개입 없는 자기개선 루프(Self-Evolving Quant AI)**를 완성하게 됩니다.


 

AutoML,Optuna,MLflow,Airflow,AI퀀트튜닝,하이퍼파라미터,자동모델관리,SharpeRatio,AI투자,모델최적화


 

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함
반응형