콘텐츠로 이동

v9-05: Baseline Extension — VQ 궁합 backbone 탐색용 TS 예측 모델 확장

1. 목적 및 가설

1.1 배경 · 문제 설정

v6–v9 전체 phase 동안 DLinear 기반 FL+VQ 결합(ADR-009, archive)이 codebook utilization 4% 수준의 near-collapse 로 구조적 실패를 기록했고, v9 Stage 2 (Chronos-Bolt LoRA, v9-04 §2.3) 역시 PAPE boundary Watch (44.953 ± 0.054%) 로 R1b (PAPE 37.36%) 대체에 실패했다. v10 이후 track 의 VQ 재시도를 위해서는 DLinear 를 대체할 VQ-친화적 backbone 후보 를 먼저 확보해야 한다.

본 실험은 VQ 이식 전 단계의 순수 예측 성능 벤치마크 로 한정한다. VQ 결합·FL·KD 는 본 설계 범위 밖이다.

1.2 핵심 연구 질문 (Core Research Question)

EC50 5가구(Apt6/15/30/51/88) 가구별 독립 학습 조건에서, decomposition / frequency-enhanced / probsparse 계열의 Transformer variant (Autoformer, Informer, FEDformer) 가 DLinear/PatchTST/iTransformer/TimesNet/NHITS/TFT 대비 peak 축 (PAPE, HR@tol) 에서 경쟁력 이 있는가, 그리고 이들 중 VQ 삽입 후보로 진출시킬 gating 기준을 만족하는 모델이 있는가?

1.3 가설 (H9-5)

  • H9-5a (NF 3종 peak 축 경쟁력): Autoformer / Informer / FEDformer 중 최소 1개는 PAPE ≤ 43% 또는 HR@tol=1 ≥ 37%3-seed 평균으로 달성한다.
  • 판정 기준: PAPE ≤ 43% OR HR@1 ≥ 37% (5가구 평균, 3-seed 평균). v9 Stage 1 의 Chronos zero-shot (PAPE 44.98%, HR@1 37.71%) 와 B1 FedAvg+DLinear (PAPE 43.64%, HR@1 36.92%) 중간 수준을 넘기면 "경쟁력 있음".
  • H9-5b (VQ 진출 후보 존재): H9-5a 를 통과한 모델 중 decomposition-based / frequency-based 구조 (Autoformer, FEDformer) 가 내부 representation 을 discrete codebook 에 매핑하기 용이한지, VQ 삽입점이 문헌상 명시 근거(Sparse-VQ Transformer 2024, VQ-TR, HDT AAAI 2024 등) 와 일치하는지 설계 수준 논의 로 확인한다.
  • 판정 기준: §6.2 gating 통과 후보가 1개 이상.

1.4 성공/실패 기준 (Gating)

레벨 조건 판정
Pass 1차 NF 3종 중 1개 이상이 (PAPE ≤ 43% AND HR@1 ≥ 37%) 3-seed 평균 달성 H9-5a PASS, VQ 후보 확정
Watch 1개 이상이 (PAPE ≤ 43% OR HR@1 ≥ 37%) 단일 축만 달성 후보 확정 보류, per-apt std 심화 분석
Fail 전 모델이 두 축 모두 미달 DLinear 대체 후보 부재 결론, TSLib 2차 착수 여부 사용자 결정

2. 모델 카탈로그

2.1 1차 대상 — NeuralForecast 신규 3종 (본 실험의 주 실행 대상)

NF 3종의 기본값은 Nixtla 공식 API 문서 기준(2026-04-24 확인, nixtlaverse.nixtla.io/neuralforecast/) 이며, v6 NF baseline (v6_0415_nf_baseline.py) 과 동일하게 max_steps=500, early_stop_patience_steps=50, val_check_steps=50, scaler_type="standard", learning_rate=1e-3 으로 override (v6 결과와 직접 비교 가능하게 조건 일치). 모델-specific 구조 파라미터는 NF 기본값 유지.

2.1.1 Autoformer (NeurIPS 2021, Wu et al.)

  • 특징: Series decomposition (trend + seasonal) + Auto-Correlation attention (O(L log L)). Period-based dependency 포착. Long-term forecasting 의 대표 baseline.
  • NF 기본값 (docs 확인): hidden_size=128, n_head=4, encoder_layers=2, decoder_layers=1, MovingAvg_window=25, factor=3, dropout=0.05, conv_hidden_size=32, activation="gelu", decoder_input_size_multiplier=0.5.
  • VQ 친화성 근거 (설계 논거용): Decomposition 블록 출력(trend/seasonal 잠재) 이 명시적으로 분리되어 있어 seasonal branch 에 VQ 를 삽입하는 후속 실험이 자연스럽다 (HDT 2024, Sparse-VQ 2024 의 "quantize seasonality" 패턴과 정합).
  • 오버라이드: max_steps=500, early_stop_patience_steps=50, val_check_steps=50, learning_rate=1e-3, scaler_type="standard", random_seed=<seed>. h=24, input_size=96.

2.1.2 Informer (AAAI 2021, Zhou et al.)

  • 특징: ProbSparse self-attention (O(L log L)), distilling operation. 긴 context 처리 효율.
  • NF 기본값 (docs 확인): hidden_size=128, n_head=4, encoder_layers=2, decoder_layers=1, factor=3, dropout=0.05, conv_hidden_size=32, distil=True, activation="gelu".
  • VQ 친화성: ProbSparse 는 dominant query 만 뽑는 구조 — VQ 의 "대표 code 선택" 과 의미상 중첩. VQ-TR (OpenReview, Rasul et al.) 의 "attention score 상위를 codebook entry 로 대체" 계열과 직접 비교 가능.
  • 오버라이드: 위 NF baseline 과 동일.

2.1.3 FEDformer (ICML 2022, Zhou et al.)

  • 특징: Frequency Enhanced Decomposition (Fourier / Wavelet). 주파수 도메인 attention (modes=64 기본).
  • NF 기본값 (docs 확인): hidden_size=128, n_head=8, encoder_layers=2, decoder_layers=1, MovingAvg_window=25, modes=64, version="Fourier", mode_select="random", dropout=0.05, conv_hidden_size=32, decoder_input_size_multiplier=0.5.
  • VQ 친화성: 주파수 mode 를 이산 code 로 대체 하는 방향이 HDT AAAI 2024 ("Hierarchical Discrete Transformer", frequency-domain codebook) 와 직접 정합. FEDformer 의 modes 선택이 이미 discrete 이므로 VQ 삽입 위치가 자명함.
  • 주의: 학습 시간이 타 모델 대비 길다 (web search 근거, Mathematics 2024, MDPI). 실험 시간 budget 에서 가장 큰 비용.
  • 오버라이드: 위 NF baseline 과 동일.

2.2 2차 대상 — TSLib 4종 (본 설계는 실행 계획 없음, 설계만 기록)

src/tslib/ 에 THUML Time-Series-Library v1 (2024) 가 clone 형태로 이미 존재 (.gitignore 처리). 실행은 1차 결과 확인 후 별도 phase 승인으로만 진행.

모델 원 논문 / 연도 TSLib 모듈 통합 위험 노트
ETSformer arXiv 2022, Woo et al. src/tslib/models/ETSformer.py ETS 분해 + exponential smoothing attention. layers/ETSformer_* 다수 의존. Chronos/NF 와 달리 configs namespace 객체 기반 — argparse Namespace wrapper 필요. 학습/추론 루프 재작성 부담 중간.
Pyraformer ICLR 2022, Liu et al. src/tslib/models/Pyraformer.py Pyramidal attention (inter/intra-scale). layers/Pyraformer_EncDec.py 의존. input_len 이 pyramid level 에 따라 특정 배수만 허용 — 96 이 허용되는지 smoke 점검 필수.
Crossformer ICLR 2023, Zhang & Yan src/tslib/models/Crossformer.py Two-Stage Attention + Routers. multivariate 특화 모델 — 단변량(kW) 에서는 cross-dim attention 무력화 가능성. 본 프로젝트 5가구 독립 학습 세팅에서 장점 소실 리스크 큼.
SCINet NeurIPS 2022, Liu et al. src/tslib/models/SCINet.py Sample Convolution + Interaction. 트리 구조. hourly 단변량에서 동작하나 depth/levels 파라미터 튜닝 민감.

2차 통합 위험 종합: 1. TSLib 의 layers.*상대 경로 임포트 가 있어 sys.path.insert(0, str(TSLIB_ROOT)) 주입 필수 (NF 처럼 패키지 설치 불가). 2. TSLib Model 클래스는 configs: argparse.Namespace 를 받음 — peak_analysis 데이터 로더 출력(PyTorch DataLoader) 과 연결하려면 얇은 어댑터 필요. 3. TSLib run.py 는 forecasting/imputation/anomaly/classification 공용 엔트리 — 학습 루프 직접 호출 대신 exp.exp_long_term_forecasting 의 내부 로직을 복제하거나, 자체 loop 구현 필요. 4. src/tslib/ 은 git submodule 이 아닌 clone — 버전 hash 를 docs/reference/project_state/ 에 기록해야 재현 가능 (v9-05 execution 시 engineer 가 해시를 남긴다).

2.3 중복 제외 — v9 결과 재인용만 수행

TFT, N-HiTS, TimesNet 은 v6 NF baseline (v6_0415_nf_baseline.py) 에서 이미 동일 프로토콜로 실행 완료. 재실행하지 않고 v6_0415_nf_baseline_results (또는 해당 MLflow NF-Baseline experiment) 수치를 본 보고서 §6 비교 표에 그대로 인용한다.


3. 데이터 분할 및 전처리 — v6 파이프라인 재사용

3.1 데이터

  • 가구: GWN_HOUSEHOLDS = ["Apt6", "Apt15", "Apt30", "Apt51", "Apt88"] (v6/v9 공통 EC50 subset).
  • 연도: YEAR = "2016" (v6 고정값).
  • 로더: peak_analysis.community.load_apartment_hourly(apt, year) 재사용. 반환: pd.Series (index=DatetimeIndex, values=kW).
  • NF 변환: experiments/forecasting/v6_0415_nf_baseline.py::prepare_nf_dataframe그대로 import 하여 사용. (재구현 금지)

3.2 분할 (시간순 hold-out)

  • train : val : test = 0.7 : 0.1 : 0.2 (v6_0415_nf_baseline.py::split_nf_dataframe 재사용).
  • INPUT_SIZE = 96, HORIZON = 24 — v6/v9 전체 baseline 과 일치.
  • test 구간: non-overlapping sliding window (stride=HORIZON=24) 로 full_df[test_start : end] 반복 예측. v6 NF baseline 의 run_single 루프 로직 재사용.

3.3 정규화

  • scaler_type="standard" (NF 내부 StandardScaler) — v6 NF baseline 과 동일.
  • 역정규화는 NF 가 predict() 결과로 원본 스케일 반환 — 별도 inverse transform 불필요.
  • Chronos-Bolt 결과와 직접 비교 시 둘 다 원본 kW 스케일 이므로 메트릭 일관성 유지됨.

3.4 시드 처리

  • Seed 집합: {42, 7, 123} (v9 Stage 1/2 와 동일 3-seed).
  • NF 모델의 random_seed 파라미터에 주입. Python/NumPy/Torch 전역 시드는 experiments/forecasting/v6_0415_nf_baseline.py 기존 방식 유지 (peak_analysis.config.RANDOM_SEED 는 seed=42 고정 — seed override 는 스크립트 내 argparse 로 처리).
  • PyTorch Lightning 내부 non-determinism 은 v6 baseline 과 동일한 수준 (deterministic=True 강제하지 않음 — v6 결과 재현성 유지 목적).

4. MLflow 로깅 스키마

4.1 Experiment & Run

  • Experiment name: v9-baseline-ext.
  • Run name 규약: {model}_{apt}_seed{seed} — 예: Autoformer_Apt6_seed42, FEDformer_Apt88_seed123.
  • Aggregate run: 3-seed × 5-apt × 3-model 완료 후 {model}_aggregate_mean run 을 하나 더 생성해 모델별 평균 저장 (v6 NF baseline 패턴 재사용).

4.2 Params (mandatory)

model: str              # "Autoformer" | "Informer" | "FEDformer"
apt: str                # "Apt6" | ... | "Apt88"
seed: int               # 42 | 7 | 123
input_size: 96
horizon: 24
max_steps: 500
early_stop_patience_steps: 50
val_check_steps: 50
learning_rate: 1e-3
scaler_type: "standard"
hidden_size: int        # NF 기본값 (Autoformer 128 / Informer 128 / FEDformer 128)
n_head: int             # Autoformer 4 / Informer 4 / FEDformer 8
encoder_layers: 2
decoder_layers: 1
dropout: 0.05
model_specific: json    # Autoformer: MovingAvg_window / FEDformer: modes, version, mode_select / Informer: factor, distil

4.3 Metrics (per-epoch & final)

  • Per-step metrics (mlflow.log_metric(..., step=epoch)):
  • train_loss — NF 내부 train_loss_epoch 또는 lightning progress 에서 추출. Lightning 이 per-batch 로만 내보내면 epoch 말미에 평균 후 기록.
  • val_mse — NF 내부 validation metric.
  • Final metrics (가구별 test):
  • mse, mae, mape, smape, pape, hr_tol1, hr_tol2 (전 7개, CLAUDE.md MLflow 규칙 준수).
  • 집계 run 에서는 {model}_{metric}_mean, {model}_{metric}_std 로 기록.

4.4 Artifacts (mandatory)

artifact_path 내용 생성 경로
predictions/{model}_{apt}_seed{seed}_y_true.npy shape=(N_window, 24), float64, kW 스케일 outputs/v9_baseline_ext/predictions/ (log 후 삭제)
predictions/{model}_{apt}_seed{seed}_y_pred.npy 동일 shape 동일
checkpoints/{model}_{apt}_seed{seed}/best.ckpt NF 내부 save() 출력 또는 PL best checkpoint outputs/v9_baseline_ext/checkpoints/
metrics/{model}_{apt}_seed{seed}.json 가구별 7개 metric JSON 동일
summary.csv (aggregate run) 모델×가구×seed 전체 테이블 outputs/v9_baseline_ext/summary.csv

중요: v6 NF-Baseline experiment 에서 compute_hr reshape 버그가 있었음 (v9-04 §4 "NF reshape 버그 발견·수정"). 본 실험은 reshape 수정판 ((-1, PRED_LEN)) 로 기록한다. y_true/y_pred 를 1D flat 저장하지 말고 (N_window, 24) 로 저장 후 compute_pape / compute_hr 에 직접 투입.

4.5 MLflow 재인용 (v9 중복 3종)

TFT / N-HiTS / TimesNet 은 v6 NF-Baseline experiment 에서 수치 pull 후 v9-baseline-ext 의 aggregate run 비교 표에 주석 "(cited from NF-Baseline)" 으로 병합. 재학습하지 않는다.


5. 실행 단계 (Execution Plan)

5.1 의존성 확인

  • uv run python -c "from neuralforecast.models import Autoformer, Informer, FEDformer; print('ok')" — 미존재 시 uv add neuralforecast (v6 에서 이미 추가됨, 재확인만).
  • 기존 v6_0415_nf_baseline.pybuild_single_model 팩토리를 확장해 세 모델을 추가한다 (재작성 최소화).

5.2 스크립트 생성

  • 파일: experiments/forecasting/v9_0424_baseline_extension.py.
  • 재사용: v6_0415_nf_baseline.pyprepare_nf_dataframe, split_nf_dataframe, compute_metrics, run_single 함수를 import 하거나 복사 후 build_single_model 만 교체. compute_metrics 는 MAPE/sMAPE/HR@tol=2 가 빠져 있으므로 확장 버전으로 오버라이드 (§5.5 참조).
  • argparse:
  • --models: 기본 ["Autoformer", "Informer", "FEDformer"], smoke 시 한 개만.
  • --seeds: 기본 [42, 7, 123], smoke 시 [42].
  • --apts: 기본 GWN_HOUSEHOLDS, smoke 시 한 가구만.
  • --max-steps: 기본 500, smoke 시 50.

5.3 Smoke 단계

  • 조건: Autoformer × Apt6 × seed42 × max_steps=50.
  • 목적: NF build / fit / predict 전 경로 및 MLflow 로깅 스키마 (특히 y_true/y_pred 2D 저장) 동작 확인.
  • 성공 기준: outputs/v9_baseline_ext/predictions/Autoformer_Apt6_seed42_y_true.npy shape == (N_test_window, 24), metric dict 7개 키 모두 finite.
  • 소요: 5분 이내 (RTX 5070 Ti, max_steps=50).
  • 실패 시: NF 버전 / Lightning 경고 문구 점검, compute_hr reshape 검증.

5.4 본 실행 (3-seed × 5-apt × 3-model = 45 run)

  • 순서: for model in [Autoformer, Informer, FEDformer]: for seed in [42, 7, 123]: for apt in EVAL_HOUSEHOLDS: run_single(...).
  • 병렬: 단일 GPU (RTX 5070 Ti 16GB) 이므로 순차 실행. Autoformer/Informer 는 병렬 배치 여지 있음 (~3GB VRAM 예상) — v9 Stage 2 의 병렬 패턴(rank=4/rank=8 동시 실행) 을 재사용 가능하나 본 설계는 순차 를 기본으로 한다 (FEDformer 학습 시간 불확정성 때문).
  • 예상 소요:
  • Autoformer/Informer: 가구당 max_steps=500 기준 ~2–3분 × 5 × 3 = 30–45분/모델.
  • FEDformer: 동일 steps 에서 1.5–2× 소요 예상 (web search 근거). 45–75분.
  • 합계: 약 2–3시간.
  • 중단/재개: 각 run 은 독립 MLflow run. 중단 시 체크포인트만 남고 재개는 새 run 으로 (부분 재실행 허용).

5.5 메트릭 확장 (compute_metrics 오버라이드)

v6 compute_metrics{mse, mae, pape, hr} 4개만 반환. 본 실험은 MSE, MAE, MAPE, sMAPE, PAPE, HR@tol=1, HR@tol=2 7개를 기록.

from peak_analysis.metrics import compute_pape, compute_hr
from sklearn.metrics import mean_absolute_percentage_error  # or 자체 구현

def compute_metrics_v95(y_true_2d, y_pred_2d):
    # y_true_2d, y_pred_2d: shape (N_window, 24), kW scale
    err = (y_true_2d - y_pred_2d).ravel()
    mse = float(np.mean(err ** 2))
    mae = float(np.mean(np.abs(err)))
    # MAPE / sMAPE 는 peak_analysis.metrics 에 compute_mape 가 있다면 재사용; 없으면 정의
    eps = 1e-8
    yt_flat = y_true_2d.ravel()
    yp_flat = y_pred_2d.ravel()
    mape = float(np.mean(np.abs((yt_flat - yp_flat) / (np.abs(yt_flat) + eps))) * 100)
    smape = float(np.mean(2 * np.abs(yt_flat - yp_flat) / (np.abs(yt_flat) + np.abs(yp_flat) + eps)) * 100)
    pape = compute_pape(y_true_2d, y_pred_2d)  # 기존 시그니처 (2D 입력)
    hr1 = compute_hr(y_true_2d, y_pred_2d, tolerance=1)
    hr2 = compute_hr(y_true_2d, y_pred_2d, tolerance=2)
    return {"mse": mse, "mae": mae, "mape": mape, "smape": smape,
            "pape": pape, "hr_tol1": hr1, "hr_tol2": hr2}
  • peak_analysis.metrics.compute_hrtolerance 인자 존재 여부 확인 필요. 없으면 engineer 가 인자 추가 (track 내 이미 검증된 HR@tol 로직 재사용 — v9-01 §3 에서 사용됨).

5.6 집계 및 v9 3종 재인용

  • 실행 후: per-run metric → outputs/v9_baseline_ext/summary.csv 취합 (apt, model, seed, metric).
  • v6 NF-Baseline experiment 에서 TFT/NHITS/TimesNet 의 per-apt metric 을 query (MLflow search_runs) 후 동일 스키마로 병합 → summary_with_v9.csv.
  • 최종 비교 표 (§6) 를 exp-expert 보고서 report/version9/exp-expert/v9-05_baseline_ext_results.md 에서 생성.

5.7 exp-expert → exp-critic → reporter 체인

  • exp-expert 보고서: report/version9/exp-expert/v9-05_baseline_ext_results.md (3-seed 결과, per-apt std, gating 판정).
  • exp-critic 자동 트리거 (CLAUDE.md hook).
  • reporter 최종 요약: report/version9/reporter/v9-05_baseline_ext_summary.md (v9 phase extension 으로 등록).
  • v9 phase closure 문서 (v9-04_phase_summary.md) 의 §5 "후속 옵션" 에 v9-05 결과 반영 (별도 문서 append 금지 — v9-04 는 closure 상태 유지, v9-05 가 extension 문서).

6. 성공 기준 (Gating) 상세

6.1 NF 3종 gating (H9-5a)

기준 수치는 5가구 평균 × 3-seed 평균 기준.

Metric Pass Watch Fail
PAPE (%) ≤ 43.00 ≤ 44.98 (Chronos zero-shot 수준) > 44.98
HR@tol=1 (%) ≥ 37.00 ≥ 35.00 < 35.00
HR@tol=2 (%) ≥ 48.56 (Chronos zero-shot 수준) ≥ 46.00 < 46.00
MSE ≤ 0.555 (Chronos zero-shot) ≤ 0.60 > 0.60
Seed std (PAPE, HR@1) < 0.50%p / 0.50%p < 1.00%p / 1.00%p ≥ 1.00%p

Pass 판정: PAPE Pass AND HR@1 Pass AND seed std < 1.00%p. Watch 판정: 단일 축만 Pass. Fail 판정: 두 축 모두 Fail.

6.2 VQ 진출 후보 gating (H9-5b, 설계 수준)

  • H9-5a Pass/Watch 모델에 대해 아래 정성적 check 수행 (실험 아님, 설계 문서 작성):
  • 모델 내부에 명시적 discrete 또는 quasi-discrete intermediate (Autoformer 의 seasonal/trend decomp 출력, FEDformer 의 mode 선택, Informer 의 ProbSparse top-k query) 가 존재하는가.
  • 해당 지점에 VQ 를 삽입할 경우 forward pass 가 VQ-VAE straight-through estimator 와 호환되는가 (gradient flow 유지).
  • 기존 문헌 (Sparse-VQ Transformer 2024, HDT AAAI 2024, VQ-TR OpenReview) 에서 같은 구조에 VQ 를 적용한 선례가 있는가.
  • VQ codebook utilization 기대치 (예비 목표, 본 실험에서 측정 안 함): 16-entry codebook 기준 utilization ≥ 50% 를 v10 이후 실제 VQ 실험의 smoke 기준으로 사전 등록 (ADR-009 의 4% near-collapse 대비 강한 개선 목표).

6.3 대체 판정 (H9-5a Fail 시)

  • 전 모델 Fail 이면 본 phase 결론: "1차 NF 3종 중 DLinear 대체 후보 부재". 이 경우 사용자 결정:
  • 옵션 A: 2차 TSLib 4종 착수 (별도 phase 설계 필요, 통합 위험 §2.2 재검토).
  • 옵션 B: VQ 방향 자체 재검토 (ADR 신규 작성, v6 DLinear+VQ 폐기 이후 VQ track 전면 중단 여부 결정).
  • 본 설계는 옵션 선택을 강제하지 않고 사용자에 위임.

7. Risks & Mitigation

# 리스크 영향도 Mitigation
R1 FEDformer 학습 시간이 Autoformer 대비 2–3배 이상일 때 wall-clock budget 초과 smoke 에서 FEDformer 한 번 실측 후 max_steps 조정 여지 (500→300). seed 3개 중 42 먼저 실행해 estimate.
R2 NF compute_hr flat 1D 저장 이슈 재발 (v6 버그) y_true/y_pred 를 반드시 (N_window, 24) 2D 로 저장, smoke 단계에서 shape assert.
R3 v6 baseline 과의 비교가 MAPE/sMAPE 부재로 불완전 v6 결과는 MSE/MAE/PAPE/HR 만 존재 — 비교 표에서 v9 중복 3종 은 4개 metric 만 표시, v9-05 신규 3종 은 7개 모두 표시. footnote 로 명시.
R4 NF 의 random_seed 가 data shuffle 과 initialization 만 고정하고 Lightning 내부 non-determinism 잔존 (seed std 확대) 3-seed 결과 std 가 Chronos LoRA (PAPE std 0.054%p) 대비 현저히 크면 (>1.0%p) 원인 분석 후 gating 재검토. v6 baseline 에서도 동일 프레임워크 사용했으므로 상대 비교는 여전히 유효.
R5 FEDformer modes=64 이 input_size=96 에 비해 과도 (오버파라미터화) Fail 시 fallback 으로 modes=32 재시도 옵션 기록. 기본은 NF default 유지.
R6 Informer distil=True 가 short context (96) 에 부적합 가능 (원 논문은 336+ 대상) 결과 확인 후 Fail 하면 distil=False 재시도 옵션 메모.
R7 2차 TSLib 착수 시 sys.path 주입이 peak_analysis 와 네임스페이스 충돌 본 설계 범위 밖. 2차 진행 승인 시 별도 ADR 로 처리.
R8 3-seed 간 per-apt std 가 5가구 mean std 대비 훨씬 큰 경우 (가구별 bias) v9 Stage 2 (Apt6 ΔPAPE −6.97, Apt30 +5.86) 와 동일 패턴 재현 가능. per-apt × per-seed 테이블을 exp-expert 보고서에 의무 포함.

8. 산출물 경로

8.1 스크립트

  • 메인 학습 스크립트: experiments/forecasting/v9_0424_baseline_extension.py (engineer 가 구현, v6_0415_nf_baseline.py 함수 재사용).
  • 후속 분석/시각화 노트북 (선택): 필요 시 notebooks/v9_05_baseline_ext_analysis.ipynb — 설계 필수 아님.

8.2 출력

  • 원시 결과: outputs/v9_baseline_ext/
  • predictions/*.npy (log 후 삭제 대상, MLflow artifact 만 유지 — v6 NF baseline 패턴 재사용)
  • checkpoints/{model}_{apt}_seed{seed}/best.ckpt
  • metrics/{model}_{apt}_seed{seed}.json
  • summary.csv, summary_with_v9.csv
  • logs/{model}_{apt}_seed{seed}.log
  • MLflow: experiment v9-baseline-ext.

8.3 보고서

  • 설계서 (본 문서): report/version9/lab-leader/v9-05_baseline_extension.md ← v9 phase extension 문서, lab-leader 소속.
  • 실험 결과 (exp-expert): report/version9/exp-expert/v9-05_baseline_ext_results.md.
  • 적대적 검토 (exp-critic): report/version9/exp-critic/v9-05_baseline_ext_critic.md (hook 자동 생성).
  • 최종 요약 (reporter): report/version9/reporter/v9-05_baseline_ext_summary.md.

8.4 TODO / Project state

  • TODO 갱신: todos/track-f_baseline_extension.md 신규 생성 (아직 track letter 확인 필요 — orchestrator 가 todos/README.md 인덱스 기준으로 부여).
  • Project state: docs/reference/project_state/v9_baseline_ext.md — 1차 3종 결과 및 VQ 후보 gating 결론을 기록.

9. 참고 문헌

1차 대상 모델 (NF 3종)

  • Wu, H. et al. "Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting". NeurIPS 2021. https://arxiv.org/abs/2106.13008
  • Zhou, H. et al. "Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting". AAAI 2021. https://arxiv.org/abs/2012.07436
  • Zhou, T. et al. "FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting". ICML 2022. https://arxiv.org/abs/2201.12740 / https://proceedings.mlr.press/v162/zhou22g/zhou22g.pdf

NeuralForecast 공식 문서 (기본값 근거, 2026-04-24 확인)

  • Autoformer docs: https://nixtlaverse.nixtla.io/neuralforecast/models.autoformer.html
  • Informer docs: https://nixtlaverse.nixtla.io/neuralforecast/models.informer.html
  • FEDformer docs: https://nixtlaverse.nixtla.io/neuralforecast/models.fedformer.html
  • NeuralForecast repo: https://github.com/Nixtla/neuralforecast

2차 대상 (TSLib 4종)

  • Woo, G. et al. "ETSformer: Exponential Smoothing Transformers for Time-series Forecasting". arXiv 2022. https://arxiv.org/abs/2202.01381
  • Liu, S. et al. "Pyraformer: Low-complexity Pyramidal Attention for Long-range Time Series Modeling and Forecasting". ICLR 2022.
  • Zhang, Y. & Yan, J. "Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series Forecasting". ICLR 2023. https://github.com/Thinklab-SJTU/Crossformer
  • Liu, M. et al. "SCINet: Time Series Modeling and Forecasting with Sample Convolution and Interaction". NeurIPS 2022.
  • THUML Time-Series-Library: https://github.com/thuml/Time-Series-Library

VQ / Codebook 관련 (H9-5b 설계 논거)

  • Zhao, Y. et al. "Sparse-VQ Transformer: An FFN-Free Framework with Vector Quantization for Enhanced Time Series Forecasting". arXiv:2402.05830 (2024). https://arxiv.org/abs/2402.05830
  • Rasul, K. et al. "VQ-TR: Vector Quantized Attention for Time Series Forecasting". OpenReview. https://openreview.net/pdf?id=IxpTsFS7mh
  • "HDT: Hierarchical Discrete Transformer for Multivariate Time Series Forecasting". AAAI 2024. https://ojs.aaai.org/index.php/AAAI/article/download/32057/34212
  • "Does Vector Quantization Fail in Spatio-Temporal Forecasting? Exploring a Differentiable Sparse Soft-Vector Quantization Approach" (SVQ). arXiv:2312.03406. https://arxiv.org/html/2312.03406
  • "Beyond Stationarity: Rethinking Codebook Collapse in Vector Quantization" (NS-VQ). arXiv:2602.18896 (2026). https://arxiv.org/abs/2602.18896

도메인 적용 (전력/부하 예측)

  • "Electricity Load Forecasting Method Based on the GRA-FEDformer Algorithm". Energies 2024. https://www.mdpi.com/1996-1073/18/15/4057
  • "Multi-Granularity Autoformer for long-term deterministic and probabilistic power load forecasting". Neural Networks 2025. https://www.sciencedirect.com/science/article/pii/S0893608025003727
  • "Short-term load forecasting based on multi-frequency sequence feature analysis and multi-point modified FEDformer". Frontiers in Energy Research 2024. https://www.frontiersin.org/journals/energy-research/articles/10.3389/fenrg.2024.1524319/full

프로젝트 내부 선행

  • report/version9/lab-leader/v9-04_phase_summary.md — v9 phase closure, Stage 2 boundary Watch 결과.
  • report/version6/exp-expert/v6_0415_tsfm_baseline_results.md — v6 FM baseline 수치.
  • experiments/forecasting/v6_0415_nf_baseline.py — 재사용 대상 파이프라인.
  • docs/decisions/ADR-009_* (archive) — DLinear+VQ near-collapse 폐기 근거.

10. 체크리스트 (Self-Verify)

  • 웹 서치 수행 (NF 공식 docs 3종, VQ TS 2024–2026 5편, 도메인 2024–2025 3편) 및 URL 전량 인용
  • 가설 H9-5a / H9-5b 명확·증명 가능 (PAPE ≤43 / HR@1 ≥37 수치 임계)
  • 성공 기준 3-tier (Pass/Watch/Fail) 정량 정의
  • 베이스라인(v6 NF 3종 + Chronos zero-shot + B1 FedAvg+DLinear + R1b) 근거 명시
  • NF 3종 하이퍼파라미터 공식 기본값 docs 근거 첨부, override 는 v6 NF baseline 조건과 일치
  • 실행 계획에 experiments/forecasting/v9_0424_baseline_extension.py, v6_0415_nf_baseline.py 모듈 참조
  • 2차 TSLib 통합 위험(구조 차이, sys.path, Namespace configs, 단변량 적합성) 명시
  • v9-04 phase summary 와의 연결 (phase closure 유지, extension 문서로 등록)
  • 범위 엄수 — 1차 3종 실행, 2차 4종 설계만, v9 중복 3종 재인용. 추가 ablation (lr sweep / hidden_size sweep) 없음
  • 파일명 규약 v{N}-{NN}_{제목}.md 준수 (v9-05)
  • 언어 규약 (한국어 헤더 + 영어 기술 용어) 준수