콘텐츠로 이동

Revision Log

Revision 1 (2026-04-24) — exp-critic Revision-Required 반영

  • Critical C1 (MLflow per-epoch 로깅 전량 누락): §2 최상단에 2.0 MLflow 로깅 규약 위반 고지 소절 신설. CLAUDE.md MLflow 전면 로깅 규약 위반 사실, 원인(Lightning callback 부착 부재), 파급 범위(수렴 해석 주장 근거 약화), FAIL 판정 자체는 test metric 만으로 robust 함을 분리 강조. §8 에 P1 commitment ("다음 phase 스크립트에서 Lightning on_train_epoch_end callback 필수") 기록.
  • Critical C2 (§8.2 한계 셀프-인정 완결): §8.2 "한계" 항목 최상단에 "Per-epoch train/val loss 미로깅 — 수렴 판별 불가" 를 #1 로 추가. 기존 5개 항목은 #2–#6 으로 재번호.
  • Major M1 (FEDformer×Apt51 post-hoc cherry-picking 교정): §5.2 말미 "주기성 가구 × Fourier attention 정합" 해석 삭제. Apt51 Chronos HR@1=69.04 / B1 HR@1=69.95 대비 FEDformer 41.90 이 −27%p 격차임을 명시. "경쟁력" 어휘 제거 → "단일 가구 임계 근접, 사후 가설(post-hoc speculation)" 로 재기술. §8.1 관찰 2 동일 처리.
  • Major M2 (Wall-clock 1.15× "빠르다" 치환 제거): §7.2 "R1 완화" 결론 재기술. "빠르다/효율적" 해석 철회, "설계 예산 초과 없음" 으로 한정. Seed 간 wall-clock std 극소 (FEDformer 0.6s) 가 max_steps=500 한계 도달 신호일 가능성 명시. §8.1 관찰 3 "Informer distil 효과가 학습 시간에서만 유효" 삭제 → "early_stop vs max_steps 도달 판별 불가 (로깅 누락)" 로 축소.
  • Major M3 (seed 비대칭 보조 표 승격): §4 표에 seed column 추가. §4.2 신규 "seed=42 단일 보조 비교 테이블" 신설 — Autoformer 54.31 / Informer 52.17 / FEDformer 52.16 PAPE 로 재계산. 순위 robust 함 확인.
  • Major M4 (§2.2 MLflow 정리 "이미 목표 상태" 추측 제거): "orchestrator 또는 직전 세션" 수동태 기술 제거. "본 세션 진입 시점에 이미 deleted lifecycle 이었으며, 전환 주체·시점 확인 불가 (MLflow 파일스토어에 주체 감사 없음). 현재 active 46 runs 는 목표 구성과 일치" 로 교체. deleted 3건 절대 start_time/end_time 을 §2.2 표에 추가.
  • Minor m1–m5: §9 산출물 인덱스에 summary_smoke.csv 추가 + §1.1 에 smoke 결과 1줄. §1.1 seed 목록 뒤에 v9-02 설계 사전 등록 주석. §8.1 관찰 4 "MovingAvg smoothing" 을 "가설 — ablation 미수행" 으로 한정. §4 NHITS row 근거 MLflow 확인 주석. §1.1 에 v9-01 "predict_len=1h" 오기 정정 주석.
  • 재실험 없음 / 기존 결론 불변: H9-5a FAIL 판정, VQ 후보 부재, FEDformer 3종 내 상대 우위, Apt-level Pass 0 결론은 그대로 유지. 이번 revision 은 보고서 서술의 robustness·자기-인식 보강에 한정.

v9-05 Baseline Extension 결과 보고서 — NF 3종 (Autoformer / Informer / FEDformer)

0. Executive Summary

v9-05 는 v10 이후 VQ 재시도를 위한 "DLinear 대체 후보" 를 탐색할 목적으로, NeuralForecast 3종 (Autoformer / Informer / FEDformer) 을 EC50 5가구 × 3-seed 독립 학습 조건에서 평가했다. 본 실행은 완료 상태이며, 본 보고서는 집계·분석만 수행했다 (재학습 없음).

H9-5a 판정: FAIL. 3 모델 모두 (PAPE ≤ 43% AND HR@1 ≥ 37%) 조건을 5-apt × 3-seed 평균 기준으로 충족하지 못했다. FAIL 판정 자체는 test-set metric (summary.csv, n=45) 만으로 robust 하게 성립하며, 아래 MLflow 로깅 규약 위반 (§2.0) 과 무관하다.

Model PAPE (%) HR@1 (%) MSE Pass?
Autoformer 52.91 ± 6.79 15.33 ± 4.16 0.660 FAIL
Informer 53.40 ± 5.67 20.67 ± 5.34 0.648 FAIL
FEDformer 52.04 ± 6.29 27.05 ± 9.77 0.600 FAIL
(ref) Chronos zero-shot 44.98 37.71 0.555
(ref) B1 FedAvg+DLinear 43.64 36.92 0.505
(ref) R1b FedPM+DLinear 37.36 21.27 0.629
(ref) NHITS (v6) 39.26 22.29 0.648

FEDformer 가 3종 중 MSE/PAPE/HR@1 전 지표에서 상대 우위이나 gating 통과에는 모두 실패. per-apt 편차가 크며 (Apt30 PAPE 50.96 vs Apt15 43.73), FEDformer × Apt51 은 NF 3종 내부에서 HR@1=41.90% 로 단일 가구 임계에 근접하는 수치를 보이나, 동 가구의 Chronos HR@1=69.04 / B1 HR@1=69.95 와 비교하면 −27%p 격차로 "경쟁력" 이라 부를 수 없다 (§5.2 보완 참조).

1. 실행 요약

1.1 조건

  • 스크립트: experiments/forecasting/v9_0424_baseline_extension.py
  • MLflow experiment: v9-baseline-ext (experiment_id=766380978402830870)
  • 모델: Autoformer / Informer / FEDformer (NeuralForecast 기본 구조값, v9-05 설계 §2.1)
  • 가구: GWN_HOUSEHOLDS = [Apt6, Apt15, Apt30, Apt51, Apt88], year=2016
  • 시드: {42, 7, 123} — v9-02 설계 §1.3 에 사전 등록된 집합. v9-04 Stage 2 의 3-seed 확장은 {42, 123, 456} 을 사용했으나 본 phase 는 v9-05 설계서 §3.4 에 따라 v9-02 원안을 재사용.
  • 공통 파라미터: input_size=96, horizon=24, max_steps=500, early_stop_patience=50, val_check=50, lr=1e-3, scaler=standard
  • 주: v9-01 recap §1.1 의 "context_len=24h, predict_len=1h" 텍스트는 문서 오기 (실제 v6 NF baseline 코드는 INPUT_SIZE=96, HORIZON=24 — v9-05 와 일치). 본 보고서의 비교 표 (§4) 는 동일 input_size=96, horizon=24 전제 하에 해석한다.
  • 총 run: 3 models × 5 apts × 3 seeds = 45 FINISHED (+1 aggregate_mean)
  • 하드웨어: NVIDIA RTX 5070 Ti (단일 GPU 순차)
  • 집계 원천: outputs/v9_baseline_ext/summary.csv (45 records)
  • Smoke 실행: 본 실행 직전 max_steps=50, Autoformer × Apt6 × seed42 1-run 으로 smoke 검증 완료. 7-metric finite, y_true/y_pred shape (N_window, 24) 2D 확인. 결과는 outputs/v9_baseline_ext/summary_smoke.csv (1 record).

1.2 재현 스크립트

  • 본 보고서의 모든 수치는 outputs/v9_baseline_ext/summary.csv 에서 직접 계산했다.
  • 재현 커맨드:
  • uv run python outputs/v9_baseline_ext/_aggregate_analysis.py
  • (집계 전용, 재학습 없음)

2. MLflow 정리 내역

2.0 MLflow 로깅 규약 위반 고지 (CLAUDE.md 강제 규약)

위반 사실: 본 실행의 45개 학습 run 중 단 한 건도 train_loss / val_loss / val_mse metric 을 mlflow.log_metric(..., step=epoch) 호출로 per-epoch 로깅하지 않았다. MlflowClient().get_metric_history(run_id, "train_loss") 결과가 전 run 에서 len(hist) == 0 임을 확인.

원인: experiments/forecasting/v9_0424_baseline_extension.py 는 NeuralForecast 의 내부 PyTorch Lightning trainer 를 그대로 사용하며, Lightning 의 on_train_epoch_end 또는 on_validation_epoch_end 에서 MLflow 로 loss history 를 re-emit 하는 callback 을 부착하지 않았다. mlflow.log_metric(..., step= 호출은 스크립트 전체에서 0회 (grep 검증), log_metrics 한 번은 test 후 final metric 기록 (step 인자 없음), log_metric 두 번은 aggregate_mean run 의 모델별 평균 기록 전용. 설계서 §4.3 "Per-step metrics (train_loss / val_mse)" spec 과 구현 사이의 gap 이 존재하며, v9-04 Stage 2 engineer caveat 에서 유사 이슈가 언급되었으나 본 v9-05 에서 규약 위반 수준으로까지 격상되었음을 사후 인식하지 못했다.

파급 범위 — 학습 수렴 관련 주장의 근거 약화:

  • §7.2 wall-clock 해석: "FEDformer / Autoformer 비율 1.15× → R1 완화" 결론은 세 모델이 동일한 종료 조건 (max_steps=500 도달 OR early_stop 50-patience) 에서 끝났다는 암묵 가정이 필요하나, per-epoch loss history 부재로 각 run 이 실제로 어느 지점에서 종료했는지 (max_steps 한계 vs early_stop) 판별 불가.
  • §8.1 관찰 3 Informer distil 효과 해석: "Informer 학습 시간이 Autoformer 의 47%, FEDformer 의 41%" 라는 사실은 확정되나, 이것이 ProbSparse/distil 구조의 추론 효율 때문인지 Informer 가 더 일찍 early_stop 으로 종료했기 때문인지 판별 불가.
  • R4 (NF random_seed non-determinism) 의 적합성 자체 검증 불가 — train/val loss 의 seed 간 곡선 비교 없이 3-seed 수렴 상태 동질성 주장 불가.

FAIL 판정과의 분리: 위 파급은 수렴·학습 과정에 대한 해석적 주장 의 robustness 에만 영향한다. H9-5a FAIL 판정 자체는 학습 종료 후 test-set 에서 계산된 7-metricoutputs/v9_baseline_ext/summary.csv (45 records, per-run metric JSON + y_true/y_pred artifact 전량 MLflow 에 저장) 으로 독립적으로 성립하며, per-epoch loss 유무와 무관하다. 본 보고서의 모든 gating 판정, 상대 우위 분석, seed std 비교는 final metric 만을 사용한다.

후속 조치 (§8.3 에 상세): 다음 phase 스크립트부터 Lightning on_train_epoch_end callback 을 필수로 부착해 train_loss / val_loss / val_mse 를 mlflow.log_metric(..., step=epoch) 으로 재-emit 한다. Pytorch Lightning MLFlowLogger 를 NF trainer 에 주입하는 방식 또는 mlflow.pytorch.autolog() 활용 가이드를 docs/reference/project_state/v9_baseline_ext_lessons.md 에 engineer 가 기록할 것을 P1 로 제안.

2.1 정리 전 상태 (run_view_type=3, ALL 기준)

상태 개수 비고
active FINISHED (Autoformer) 15 5 apt × 3 seed 정상
active FINISHED (Informer) 15 정상
active FINISHED (FEDformer) 15 정상
active FINISHED (aggregate_mean) 1 45 records 전량 포함, 정상 집계
소계 (active) 46
deleted (Autoformer_Apt6_seed42 FINISHED, 초기 시도) 1 이미 lifecycle=deleted
deleted (Autoformer_Apt6_seed42 RUNNING, 고아) 1 이미 lifecycle=deleted
deleted (aggregate_mean 초기 시도) 1 Autoformer Apt6 단일 집계, 이미 lifecycle=deleted
총계 49

2.2 조치 결과 및 tombstone lifecycle 전환 경위

본 exp-expert 세션 집계 시점에 3건이 이미 lifecycle_stage=deleted 로 전환된 상태였다. 전환 주체 및 시점은 확인 불가 — MLflow 파일스토어는 삭제 동작의 주체/시각 감사 로그를 제공하지 않으므로 누가 언제 client.delete_run(...) 을 호출했는지는 메타 정보로부터 복원할 수 없다. 확인 가능한 것은 각 run 의 start_time / end_time 과 현재 lifecycle_stage=deleted 표시까지다.

지시서가 명시한 "최종 MLflow 상태 = Autoformer 15 + Informer 15 + FEDformer 15 + aggregate 1 = 46 FINISHED" 와 현재 active lifecycle 46 건 이 일치한다. 본 세션은 추가 삭제 동작을 수행하지 않았다.

run_id (prefix) run_name status start_time end_time 해석
41ed6fbaf097466f Autoformer_Apt6_seed42 FINISHED 2026-04-24 20:58:39 2026-04-24 20:59:07 초기 단발 시도 (28초) — 중복, 이후 본 실행에서 재학습됨
0eb0ff1776644bcd aggregate_mean FINISHED 2026-04-24 20:59:07 2026-04-24 20:59:07 위 단발 시도 직후 생성된 초기 집계 (Autoformer 14 metric 만) — 부정확, polluted aggregate
465e6dc1258b4121 Autoformer_Apt6_seed42 RUNNING 2026-04-24 21:02:11 N/A 21:02 에 시작된 RUNNING 상태 고아. end_time 없음 → 정상 종료되지 않은 프로세스가 남긴 tombstone
  • 보존된 aggregate_mean: 09d327d2099149c2a7ea1e360e1cb41b (45 records 전량 기반, 21 metric × 3 model = 42 value, mean/std 쌍 정상).
  • RUNNING 고아 (465e6dc1) 는 본 실행 본편이 시작되기 직전의 단발 시도 (21:02) 로, 본 45-run 집합에 포함되지 않음. 현재 lifecycle=deleted 로 tombstoned 된 상태이며 요약 통계 (45 records) 에 영향 없음.

2.3 집계 원칙

  • 지시서 §1 지시대로 집계는 summary.csv (45 records) 기준으로 수행하고, MLflow 는 artifact/재현성 저장소로만 사용한다.
  • active aggregate_mean run 의 metric 값과 summary.csv 기반 계산치를 교차 검증한 결과 정확 일치 (예: Autoformer_pape_mean=52.9092, summary.csv 수계 52.909).

3. 집계 테이블

3.1 Table A — model × apt (3-seed mean ± std)

7개 metric 전부. PAPE / HR@1 / HR@2 / MSE 만 본문 표기, 전량은 outputs/v9_baseline_ext/summary.csv_aggregate_analysis.py 출력 참조.

PAPE (%) — lower is better

Model Apt6 Apt15 Apt30 Apt51 Apt88
Autoformer 46.86 ± 0.91 45.27 ± 1.58 53.32 ± 3.86 62.39 ± 2.08 56.71 ± 0.66
Informer 53.60 ± 2.18 44.48 ± 0.37 57.86 ± 0.98 59.10 ± 1.34 51.99 ± 4.05
FEDformer 48.17 ± 1.52 43.73 ± 0.42 50.96 ± 0.40 60.67 ± 1.48 56.69 ± 0.27

HR@tol=1 (%) — higher is better

Model Apt6 Apt15 Apt30 Apt51 Apt88
Autoformer 20.00 ± 3.78 14.29 ± 2.86 16.67 ± 1.65 10.95 ± 2.18 14.76 ± 5.02
Informer 24.29 ± 3.78 18.57 ± 5.15 21.43 ± 2.86 17.14 ± 5.71 21.90 ± 8.37
FEDformer 27.14 ± 7.14 26.67 ± 2.97 23.33 ± 0.83 41.90 ± 6.75 16.19 ± 5.77

HR@tol=2 (%)

Model Apt6 Apt15 Apt30 Apt51 Apt88
Autoformer 30.00 ± 4.29 20.48 ± 2.97 28.10 ± 5.02 18.10 ± 2.18 20.95 ± 7.19
Informer 37.62 ± 1.65 28.10 ± 6.75 36.19 ± 2.18 27.62 ± 13.58 32.86 ± 9.90
FEDformer 38.57 ± 5.15 37.62 ± 2.97 34.76 ± 2.97 65.71 ± 7.95 24.76 ± 3.60

MSE — lower is better

Model Apt6 Apt15 Apt30 Apt51 Apt88
Autoformer 0.916 0.198 0.119 0.929 1.139
Informer 0.943 0.189 0.127 0.890 1.092
FEDformer 0.864 0.183 0.111 0.805 1.038

3.2 Table B — model-level 5-apt × 3-seed overall (n=15 per model)

Model MSE MAE MAPE (%) sMAPE (%) PAPE (%) HR@1 (%) HR@2 (%)
Autoformer 0.660 ± 0.434 0.519 ± 0.204 67.24 ± 9.04 46.07 ± 4.30 52.91 ± 6.79 15.33 ± 4.16 23.52 ± 6.22
Informer 0.648 ± 0.422 0.511 ± 0.206 56.74 ± 9.93 44.21 ± 2.92 53.40 ± 5.67 20.67 ± 5.34 32.48 ± 8.11
FEDformer 0.600 ± 0.392 0.492 ± 0.189 65.07 ± 9.73 44.55 ± 5.32 52.04 ± 6.29 27.05 ± 9.77 40.29 ± 14.70

주: ± 는 15 runs 전체의 sample std. 가구 간 편차 (5-apt 간 spread) 가 dominant 하므로 std 가 크다. 3-seed 내부 std 는 §3.3 참조.

3.3 3-seed 편차 (같은 apt 내)

PAPE seed std (같은 apt × 같은 model 내 3-seed 표준편차):

Model Apt6 Apt15 Apt30 Apt51 Apt88 mean
Autoformer 0.91 1.58 3.86 2.08 0.66 1.82
Informer 2.18 0.37 0.98 1.34 4.05 1.78
FEDformer 1.52 0.42 0.40 1.48 0.27 0.82

HR@1 seed std:

Model Apt6 Apt15 Apt30 Apt51 Apt88 mean
Autoformer 3.78 2.86 1.65 2.18 5.02 3.10
Informer 3.78 5.15 2.86 5.71 8.37 5.17
FEDformer 7.14 2.97 0.83 6.75 5.77 4.69
  • FEDformer 가 PAPE seed std 가 가장 작다 (mean 0.82%p) — 재현성 측면에서 가장 안정.
  • HR@1 은 모든 모델에서 seed 편차가 크다 (4~8%p). 3-seed 가 HR 의 noise 해소에 부족할 수 있다 (참고용 — 본 phase 에서 추가 seed 실행은 범위 외).

4. v6/v9 기존 baseline 인용 병합 테이블

v6 NF-Baseline experiment (report/version6/exp-expert/v6_0415_nf_baseline_results.md) 및 v9-01 recap (report/version9/reporter/v9-01_stage1_hr_sensitivity_recap.md §2) 수치를 그대로 인용. v6 baseline 은 1-seed(=42) 만 존재하고 metric 수 (MSE/MAE/PAPE/HR@1) 가 제한적이다. seed 비대칭 가드: 아래 표의 v9-05 행은 n=15 (5 apt × 3 seed), v9-01/v6 행은 n=5 (5 apt × 1 seed=42) 로 표본 크기와 seed 집합이 다르다. 순위 해석 §4.1 에서 seed=42 단일로 맞춘 보조 비교표 (§4.2) 를 반드시 함께 읽을 것.

Source Model n_runs seeds MSE MAPE PAPE HR@1 HR@2
v9-05 (this) Autoformer 15 {42,7,123} 0.660 67.24 52.91 15.33 23.52
v9-05 (this) Informer 15 {42,7,123} 0.648 56.74 53.40 20.67 32.48
v9-05 (this) FEDformer 15 {42,7,123} 0.600 65.07 52.04 27.05 40.29
v9-01 / v6 Chronos-Bolt (zero-shot) 5 {42} 0.555 55.11 44.98 37.71 48.56
v9-01 / v6 TimeMoE-50M 5 {42} 0.549 66.31 43.38 32.93 42.88
v9-01 / v6 moirai-1.1-R-small 5 {42} 0.641 56.50 46.61 17.73 27.86
v9-01 / v6 PatchTST 5 {42} 0.572 58.80 48.41 21.14 30.00
v9-01 / v6 iTransformer 5 {42} 0.593 59.04 51.00 19.43 27.14
v9-01 / v6 TimesNet 5 {42} 0.594 56.91 48.90 26.57 38.29
v9-01 / v6 NHITS 5 {42} 0.648 67.04 39.26 22.29 31.71
v9-01 / v6 TFT 5 {42} 0.719 63.59 50.58 15.14 25.14
v9-01 / v6 B0 (DLinear Local) 5 {42} 0.515 68.75 42.51 34.58 46.60
v9-01 / v6 B1 (DLinear FedAvg) 5 {42} 0.505 68.67 43.64 36.92 49.39
v9-01 / v6 R1b (FedPM+DLinear) 5 {42} 0.629 78.43 37.36 21.27 32.42

Footnote: - v9-05 수치는 5-apt × 3-seed = 15 runs overall mean. v9-01/v6 baseline 은 5-apt × 1-seed = 5 runs mean (seed=42) — seed noise band 없음. - v9-01/v6 baseline NHITS 의 MSE=0.648, PAPE=39.26, HR@1=22.29 은 v6 NF-Baseline experiment 의 NHITS_aggregate_mean run 수치로 인용. 본 보고서 편집 단계에서 run_id 정확 매칭은 수행하지 않았으며, v6_0415_nf_baseline_results.md §2 의 공식 테이블을 원천으로 사용. v6 MLflow experiment 가 복수의 NHITS run 을 포함하는 경우 spot-check 필요 (본 phase 범위 외). - sMAPE 는 v6/v9-01 baseline 중 NF 5종·FM 3종·DLinear B0/B1 에만 존재 (본 표 생략, v9-01 §2 참조). - MAE 는 v9-01 recap 전체에서 누락 (v6 report table 에도 부분 missing). v9-05 신규 3종만 0.519/0.511/0.492 로 보고.

4.1 순위 해석

3-seed mean 기준 PAPE 순위 (5-apt 평균, lower=better) — seed 집합 비대칭 주의:

  1. R1b — 37.36 (FedPM+DLinear, peak 특화, n=5, seed=42)
  2. NHITS — 39.26 (NF 기존, n=5, seed=42)
  3. B0 — 42.51 (n=5, seed=42)
  4. TimeMoE-50M — 43.38 (n=5, seed=42)
  5. B1 — 43.64 (n=5, seed=42)
  6. Chronos-Bolt — 44.98 (n=5, seed=42)
  7. moirai — 46.61 (n=5, seed=42)
  8. PatchTST — 48.41 (n=5, seed=42)
  9. TimesNet — 48.90 (n=5, seed=42)
  10. TFT — 50.58 (n=5, seed=42)
  11. iTransformer — 51.00 (n=5, seed=42)
  12. FEDformer — 52.04 (v9-05 신규, n=15, 12위)
  13. Autoformer — 52.91 (v9-05 신규, n=15, 13위)
  14. Informer — 53.40 (v9-05 신규, n=15, 14위, 최하)

HR@1 순위:

  1. Chronos-Bolt — 37.71 (n=5, seed=42)
  2. B1 — 36.92 (n=5, seed=42)
  3. B0 — 34.58 (n=5, seed=42)
  4. TimeMoE-50M — 32.93 (n=5, seed=42)
  5. FEDformer — 27.05 (v9-05, n=15, 5위)
  6. TimesNet — 26.57 (n=5, seed=42)
  7. NHITS — 22.29 (n=5, seed=42)
  8. R1b — 21.27 (n=5, seed=42)
  9. PatchTST — 21.14 (n=5, seed=42)
  10. Informer — 20.67 (v9-05, n=15)
  11. iTransformer — 19.43 (n=5, seed=42)
  12. moirai — 17.73 (n=5, seed=42)
  13. Autoformer — 15.33 (v9-05, n=15)
  14. TFT — 15.14 (n=5, seed=42)

해석: v9-05 신규 3종은 3-seed mean 기준 PAPE 축에서 전 baseline 중 최하위 구간 (12–14위) 에 위치한다. HR@1 축에서는 FEDformer(5위) 가 NHITS/R1b/PatchTST 를 앞지르나, 절대치가 37% gating 을 10%p 하회하여 "상대적으로 덜 나쁘다" 이상의 주장이 성립하지 않는다. 단, v9-05 는 3-seed mean 이고 v9-01/v6 는 seed=42 단일이므로 seed 집합을 맞춘 보조 비교 (§4.2) 가 필수.

4.2 seed=42 단일 보조 비교 (boundary assertion)

outputs/v9_baseline_ext/summary.csv 에서 seed == 42 행만 필터링하여 v9-05 신규 3종을 v6/v9-01 baseline 과 동일 seed 기준으로 재계산했다. (pandas 1-line: df[df.seed == 42].groupby('model')[['pape','hr_tol1','mse']].mean())

Model n_runs seeds PAPE (%) HR@1 (%) MSE Δ PAPE vs 3-seed Δ HR@1 vs 3-seed
Autoformer 5 {42} 54.31 14.29 0.680 +1.40 −1.04
Informer 5 {42} 52.17 22.00 0.637 −1.23 +1.33
FEDformer 5 {42} 52.16 26.86 0.608 +0.12 −0.19

순위 robustness 확인: seed=42 단일로 제한했을 때 v9-05 신규 3종의 PAPE 는 여전히 12–14위 구간 (Autoformer 54.31 > Informer 52.17 ≈ FEDformer 52.16 > iTransformer 51.00) 을 유지. HR@1 축에서 FEDformer 는 5위 부근 (26.86 vs TimesNet 26.57) 을 유지. 즉 §4.1 순위 해석은 seed 비대칭을 seed=42 기준으로 맞춰도 robust 하다.

주의: 이 보조 표는 v9-05 3-seed 의 full sample 을 대표하지 않는다. Autoformer Apt30 은 3-seed std 3.86%p 로 seed=42 subset (54.31) 과 3-seed mean (52.91) 이 1.40%p 벌어지는 등, 가구 레벨에서는 seed 선택에 따른 변동이 순위 역전 가능 범위를 넘길 수 있다. 본 보조 표는 모델 레벨 (5-apt mean) 순위의 seed 비대칭 robust 확인 전용이며, apt-level 상대 우위 분석에는 §3.1 3-seed mean 표를 primary 로 사용한다.


5. H9-5a Gating 판정

5.1 판정 (설계서 §1.4)

조건 기준 충족 여부
Pass 1개 이상 모델이 (PAPE ≤ 43 AND HR@1 ≥ 37), 5-apt 3-seed 평균 미충족 (3 모델 모두 두 축 미달)
Watch 1개 이상이 단일 축만 달성 미충족
Fail 전 모델 두 축 모두 미달 충족

판정: H9-5a FAIL

Model PAPE PAPE≤43? HR@1 HR@1≥37? 판정
Autoformer 52.91 False (−9.91%p 초과) 15.33 False (−21.67%p 부족) FAIL
Informer 53.40 False (−10.40%p 초과) 20.67 False (−16.33%p 부족) FAIL
FEDformer 52.04 False (−9.04%p 초과) 27.05 False (−9.95%p 부족) FAIL

5.2 상대 우위 분석 (판정 대신, 후속 결정용)

H9-5a 가 전체 Fail 이지만, 3종 내부 상대 비교에서는 FEDformer 가 전 축에서 최선 이다.

우위 모델 비고
PAPE (lower) FEDformer 52.04 Autoformer 52.91 / Informer 53.40
HR@1 (higher) FEDformer 27.05 2위 Informer 20.67 대비 +6.38%p
HR@2 (higher) FEDformer 40.29 Informer 32.48 / Autoformer 23.52
MSE (lower) FEDformer 0.600 0.05 내 격차
PAPE seed std FEDformer 0.82%p (apt-wise mean) 재현성 우위

Apt51 단독 HR 관찰 (단일 가구 임계 근접, 사후 가설): FEDformer × Apt51 은 HR@1 41.90% (3-seed mean), HR@2 65.71% 로 NF 3종 내부에서 압도적 최고이며, 단일 가구 기준으로 H9-5a HR@1 ≥ 37% 임계를 초과하는 유일한 조합이다. 다만 동 가구의 Chronos-Bolt HR@1=69.04%, B1 FedAvg+DLinear HR@1=69.95% 와 비교하면 FEDformer 41.90 은 −27%p 격차 이며, Apt51 이 "FEDformer 가 특히 잘 하는 가구" 라고 부를 근거가 아니라 "전 모델이 공통적으로 HR 이 높은 learnability 가 있는 가구" 로 해석해야 한다 (v9-01 §4 관찰과 일치). "FEDformer 의 frequency-domain attention 이 Apt51 의 주기성에 정합한다" 는 설명은 설계서 §1.3 가설에 사전 등록되지 않은 사후 추정 (post-hoc speculation) 이며, 본 결과만으로 지지되지 않는다. 만약 이 가설을 검증하려면 별도 phase 에서 가구별 주기성 척도 × 모델별 HR 의 사전 등록된 상관 테스트를 설계해야 한다. 5-apt 평균 FAIL 판정은 이 Apt51 단독 관찰에 의해 뒤집히지 않는다.


6. §6.2 VQ 후보 진출 논의

설계서 §6.2 는 "H9-5a Pass/Watch 모델 중 VQ 삽입 적합성이 문헌과 정합하는 후보" 를 판정하기로 정의했다. H9-5a 가 FAIL 이므로, 본 §6.2 gating 은 자동적으로 후보 부재 로 귀결된다.

6.1 설계서 §6.3 "대체 판정" 옵션 상기

설계서 §6.3 는 전 모델 Fail 시 아래 두 옵션을 사용자 결정으로 위임한다:

  • 옵션 A: 2차 TSLib 4종 (ETSformer, Pyraformer, Crossformer, SCINet) 착수 (별도 phase 설계 필요)
  • 옵션 B: VQ 방향 자체 재검토 (ADR 신규 작성, VQ track 전면 중단 여부 결정)

본 보고서는 옵션 선택을 강제하지 않는다. 다만 exp-expert 분석 관점에서 추가 정보 세 건을 기록한다.

6.2 TSLib 2차 착수 시 고려사항 (판단 자료)

  • 비용 수준 추정: 본 3종 wall-clock 은 45 run 에 53.8분 (§7 참조). TSLib 4종 × 45 run 가정 시 비슷한 order (~1–2시간). 실제로는 TSLib configs Namespace 어댑터 + 학습 루프 재작성 비용 (설계서 §2.2 의 구조적 위험) 이 dominant.
  • 1차 Fail 시사점: Decomposition(Autoformer), ProbSparse(Informer), Frequency(FEDformer) 계열이 모두 5-apt 평균에서 Fail 했다. 2차 TSLib 4종 (ETSformer는 decomposition 계열 / Pyraformer는 pyramidal attention / Crossformer는 cross-dim multivariate / SCINet은 tree-conv) 중 TSLib 4종이 1차 3종과 기계학습적으로 강하게 차별되는 카테고리 는 SCINet(non-attention) 정도다. 설계서 §2.2 에 Crossformer 가 "단변량에서 무력화 가능성" 지적도 있어, 2차 진출을 해도 FAIL 반복 리스크가 존재한다.
  • Chronos-Bolt 의존성: v9-04 phase closure 결과 Chronos-Bolt (zero-shot PAPE 44.98) 와 Chronos-LoRA (3-seed PAPE 44.953±0.054) 도 모두 PAPE ≤ 43 gating 을 통과하지 못했다. 본 v9-05 3종은 더 낮다. v6 R1b (PAPE 37.36) 가 여전히 유일한 PAPE ≤ 43 Pass 모델 이라는 v9 phase 구조가 재확인됐다.

6.3 판단 결론

H9-5a FAIL + §6.2 후보 부재. TSLib 2차 착수 여부는 사용자 결정 사항 (설계서 §1.4, §6.3 규약).


7. Wall-clock (설계서 §7 R1)

MLflow run 메타의 start_time / end_time 기반 집계. FEDformer 학습 시간 예상 (설계 §7 R1) 을 실측 대조했다.

7.1 모델별 평균 학습+예측 소요 (per run = 1 apt × 1 seed)

Model n mean (s) std min max total (s)
Autoformer 15 81.7 1.7 80.7 87.6 1225.8
FEDformer 15 94.3 0.6 93.7 95.3 1415.1
Informer 15 39.0 0.6 38.1 40.2 585.2
합계 45 3226.2 (≈53.8분)

7.2 설계 예상 vs 실측 — "예산 초과 없음" (수렴 도달 여부 판별 불가)

  • 설계서 §5.4 예상: Autoformer/Informer 30–45분/model, FEDformer 45–75분/model, 합계 2–3h
  • 실측: Autoformer 20.4분 / FEDformer 23.6분 / Informer 9.8분, 합계 53.8분 (예상 하한의 30–45% 수준)
  • FEDformer / Autoformer 비율: 94.3 / 81.7 = 1.15×
  • FEDformer / Informer 비율: 94.3 / 39.0 = 2.42×

해석 — R1 "완화" 가 아니라 "예산 초과 없음": - 설계서 §7 R1 의 원 기준은 "학습 시간이 Autoformer 대비 2–3배 이상일 때 wall-clock budget 초과" 이며, 완화의 조건은 예상보다 빠름 이 아니라 예산 초과 없음. 본 실측은 전자의 조건을 만족하나, "빠르다 / distil 효율적" 과 같은 구조적 해석을 내리려면 각 모델이 실제로 학습을 어디까지 진행했는지 (max_steps=500 도달 vs early_stop 50-patience 로 조기 종료) 를 알아야 한다. 본 실행은 per-epoch train/val loss 를 MLflow 에 로깅하지 않았으므로 (§2.0), 이 판별이 불가능하다. - Seed std 극소 신호: FEDformer wall-clock std = 0.6초, Autoformer 1.7초, Informer 0.6초. 3-seed 간 wall-clock 변동이 모델당 1–2% 이내로 극히 작다. early_stop 이 실제로 작동했다면 seed 에 따른 종료 epoch 분산이 wall-clock 에 반영되어 std 가 더 컸을 것으로 예상된다. std 가 이 정도로 작다는 관찰은, 3-seed 모두가 max_steps=500 한계까지 학습했을 가능성 (즉, early_stop 이 trigger 되지 않았거나 동일 epoch 에서 trigger 되었을 가능) 을 시사한다. 이 가설은 per-epoch loss 부재로 직접 검증 불가하나, wall-clock 일관성이 "학습 효율" 보다는 "동일 종료 조건" 의 산물일 가능성을 기각하지 못한다. - 결론 어휘 교체: 설계서 R1 에 대해 "실측이 예상 2–3× 보다 낮다" 는 사실은 성립하나, 이를 "FEDformer 가 구조적으로 빠르다 / Informer distil 이 효율적" 으로 치환하지 않는다. 본 실험 범위에서 기록할 수 있는 결론은 "설계 예산 (2–3h) 초과 없이 53.8분 내 완료. 단, 각 모델의 수렴 도달 여부 (early_stop vs max_steps 한계) 는 per-epoch loss 로깅 부재로 판별 불가 — §8.3 P1 후속 조치에서 수집 예정" 까지다.

7.3 apt 간 편차 (per-run 평균)

Model Apt6 Apt15 Apt30 Apt51 Apt88
Autoformer 83.3 81.2 81.3 81.2 81.7
Informer 38.9 38.7 39.2 38.9 39.3
FEDformer 94.2 94.2 94.2 94.6 94.5

동일 모델 내 apt 간 변동은 ≤ 2s 수준으로 작다 (학습 스텝 수 고정 가정 하에 데이터셋 크기 유사). 이 관찰도 §7.2 의 "동일 종료 조건" 가설과 정합하나 독립 검증 근거는 아님.


8. Observations / 한계 / 향후 참고점

8.1 관찰된 패턴

  1. FEDformer 가 세 축 동시 최선 (3종 내 상대 우위) — MSE/PAPE/HR 전 지표에서 3종 중 상대 최선. 5-apt × 3-seed 평균 절대치로는 여전히 FAIL 이므로, 이는 backbone 선택 비교 근거가 아니라 "3종 중 그나마 덜 나쁜 것" 수준의 관찰이다.
  2. FEDformer × Apt51 단일 관찰 (사후 가설) — HR@1=41.90%, HR@2=65.71% 로 3-seed mean 기준 NF 3종 내부에서 압도적이지만, Chronos-Bolt / B1 의 Apt51 HR@1 (69.04 / 69.95) 와 −27%p 격차. Apt51 은 모든 모델이 공통적으로 HR 이 높은 가구 이며, FEDformer 특이적 강점으로 해석할 근거는 없다. "주기성 × Fourier attention 정합" 해석은 설계서에 사전 등록되지 않은 사후 가설이며, 본 phase 결과만으로 지지되지 않는다.
  3. Informer wall-clock 단축의 원인 — 판별 불가 — Informer 학습 시간이 Autoformer 의 47%, FEDformer 의 41% 로 관찰되나, 원인이 (a) ProbSparse + distil 구조의 추론 효율 때문인지 (b) Informer 가 other 2종보다 더 일찍 early_stop 으로 종료했기 때문인지 구별 불가 (§2.0 per-epoch loss 로깅 부재). 설계서 R6 ("Informer distil 이 short context 96 에 부적합 가능") 의 검증도 동일한 사유로 보류.
  4. Autoformer 가 HR 축에서 최하 — HR@1=15.33, HR@2=23.52. MovingAvg decomposition 이 hourly 가구별 noise 를 과도하게 smoothing 해 peak 시점 정렬을 놓친다는 해석이 문헌적으로 가능하나, 본 phase 에서는 ablation (MovingAvg_window 변화, decomposition on/off) 을 수행하지 않았으므로 가설 수준으로만 기록. 검증은 본 phase 범위 외 (§8.3 후속 후보).
  5. PAPE seed std 패턴 — FEDformer 0.82%p ≪ Autoformer 1.82, Informer 1.78 (3-seed apt 내부 std 평균). FEDformer 가 재현성 측면에서 우수. 단, Lightning 내부 CUDA non-determinism 이 잔존하므로 "결정론적 수렴" 과는 다름.

8.2 한계 (본 보고서 수준의 불완전성)

  1. Per-epoch train/val loss 미로깅 — 수렴 판별 불가 (본 revision 에서 추가). experiments/forecasting/v9_0424_baseline_extension.py 가 설계서 §4.3 의 per-step metrics spec (train_loss, val_mse) 을 구현하지 않았다. Lightning on_train_epoch_end callback 부재로 NF trainer 의 loss history 가 MLflow 에 re-emit 되지 않았으며, 현재 get_metric_history 는 전 run 에서 empty. CLAUDE.md "Training loss → mlflow.log_metric(step=) per epoch/round" 규약 및 프로젝트 memory feedback_mlflow_full_logging 위반. 결과적 제약: wall-clock 해석 (§7.2), Informer distil 효과 해석 (§8.1 관찰 3), 3-seed 수렴 동질성 주장 (R4) 의 근거가 모두 약화. 단, H9-5a FAIL 판정 자체는 test metric 만으로 robust (§0, §5.1).
  2. 3-seed 로 HR 축 noise 미해소 가능성 — HR@1 seed std 가 4~8%p 구간으로 PAPE std 의 ~3배. gating 판정 (HR@1=37%) 이 seed 5개/10개 기준으로는 다른 결과를 낼 가능성 존재. 다만 5-apt 평균 기준 37% 에서 15–27% 로의 격차 (10–22%p) 가 seed noise 범위 (5%p 이내) 를 크게 상회하므로 판정 자체의 robustness 는 확보.
  3. v6 baseline 과 seed 정합 불일치 — v9-01 recap 의 baseline 은 seed=42 단일, v9-05 는 3-seed mean. §4.2 에서 seed=42 단일 보조 비교를 제공했으며, 모델 레벨 순위는 seed 비대칭에 robust 함을 확인. 다만 apt-level 상대 우위는 seed 선택에 따라 변동 가능 (Autoformer Apt30 std 3.86%p 사례).
  4. Non-determinism — NF random_seed 는 data shuffle + init 만 고정, Lightning 내부 CUDA non-determinism 은 잔존 (설계서 R4). FEDformer seed std 가 극히 작다는 것은 Fourier mode 선택의 결정론성이 작동하고 있음을 시사하지만 정식 결정론 검증은 수행하지 않았다.
  5. MAPE 이상치 — Autoformer Apt15 MAPE=80.08 ± 3.96, FEDformer Apt15 MAPE=75.35 ± 0.68 등 MAPE 가 75–80% 구간에 분포하는 apt 가 있다. Apt15 는 소비값이 작은 구간이 많은 가구 (v9-01 §4 "peak 산발적, 진폭 낮음") 로 해석되어, eps=1e-8 base MAPE 의 분모 불안정이 수치를 팽창시킨다. 본 보고서의 MAPE 해석은 분모 효과에 주의.
  6. 설계서 §6.1 상세 gating (3-tier) 미적용 — 설계서 §6.1 은 PAPE/HR@1/HR@2/MSE/seed_std 5축 tier 판정을 정의하나, §1.4 의 2축 (PAPE AND HR@1) 판정이 "본 실험의 gating 기준" 으로 명시된다. 본 보고서는 §1.4 를 primary gating 으로 사용했다. §6.1 3-tier 를 적용해도 모든 모델이 모든 tier 에서 Fail 임을 확인했다 (MSE ≥ 0.60 > Fail 임계 0.60 경계, Autoformer/FEDformer ∼0.66/0.60; HR@2 <46%).

8.3 향후 참고점 (P1 조치 포함)

  • [P1 후속 조치 — 재발 방지] 다음 phase 스크립트 (TSLib 2차 착수 또는 v10 VQ 재시도 모두 해당) 에서 Lightning on_train_epoch_end callback 을 필수로 부착해 train_loss / val_loss / val_mse 를 mlflow.log_metric(..., step=epoch) 으로 재-emit 한다. 구체 구현 패턴 (a) pytorch_lightning.loggers.MLFlowLogger 를 NF trainer 에 inject, 또는 (b) mlflow.pytorch.autolog(log_every_n_epoch=1) 을 run 시작 직후 호출 — 두 방식의 적용 가능성과 NF 내부 trainer 와의 충돌 여부를 engineer 가 docs/reference/project_state/v9_baseline_ext_lessons.md 에 문서화하도록 권고.
  • [P2 후속 조치 — 사전 등록 강화] "모델 A 가 가구 X 에서 특히 잘 작동할 것" 같은 apt-specific 예측은 설계서 §1.3 가설에 사전 등록된 경우에만 post-hoc 해석을 허용. 본 revision 의 §5.2 / §8.1 관찰 2 교정은 이 원칙의 적용 사례.
  • [P3 후속 조치 — 집계 스크립트 기본 seed=42 subset 병기] _aggregate_analysis.py 에 seed=42 단일 subset 비교 블록을 기본 포함하여, v6 baseline 과의 seed 비대칭 표시 누락을 방지.
  • VQ 후보 부재 결과의 해석 범위: "backbone 자체의 예측 정확도" 기준. VQ 삽입 시 의미 있는 정확도 회복은 문헌상 보기 드물며, VQ 가 정확도를 떨어뜨리기 쉽다는 점을 고려하면 "정확도 FAIL baseline 에 VQ 를 붙이는 설계" 는 예측 성능 측면에서 비현실적. 반대로 VQ 의 가치는 "discrete representation 을 FL client 간 효율적으로 aggregation" 하는 프로토콜 측면 (v6 FeDPM 계열) 에 있을 수 있으며, backbone 정확도 FAIL 과 독립된 논증 축이다. v9-05 결과는 VQ track 의 해산 근거로 단독 사용되어서는 안 된다.
  • FEDformer × Apt51 단일 관찰의 후속 가능성: 본 phase 에서는 사후 가설 수준으로만 기록. 가구별 특화 학습 (per-apt fine-tune / residual) 방향을 향후 설계 단계에서 사전 등록 가설로 포함할 수 있으나, 본 phase 범위 외.

9. 산출물 인덱스

유형 경로 비고
스크립트 experiments/forecasting/v9_0424_baseline_extension.py 본 실행 (완료, 재실행 없음)
원시 결과 outputs/v9_baseline_ext/summary.csv 45 records, 집계 원천
Smoke 결과 outputs/v9_baseline_ext/summary_smoke.csv 1 record (Autoformer_Apt6_seed42, max_steps=50)
재현 스크립트 outputs/v9_baseline_ext/_aggregate_analysis.py 본 보고서 수치 재생성
메트릭 JSON outputs/v9_baseline_ext/metrics/*.json 45 파일, per-run 7-metric
로그 outputs/v9_0424_baseline_ext_run.log 학습 로그 (PL progress 혼합, apt/model 구분 제한적)
MLflow experiment v9-baseline-ext (id=766380978402830870) 46 active run (45 model + 1 aggregate_mean), deleted 3 (§2.2)
Predictions artifact MLflow predictions/{model}_{apt}_seed{seed}_{y_true,y_pred}.npy artifact-only (local 삭제됨)
설계서 report/version9/lab-leader/v9-05_baseline_extension.md
Phase summary (선행) report/version9/lab-leader/v9-04_phase_summary.md v9 phase closure
본 보고서 report/version9/exp-expert/v9-05_baseline_ext_results.md revision 1 (2026-04-24)
Critic 보고서 report/version9/exp-critic/v9-05_baseline_ext_critic.md Revision-Required 판정

10. 최종 판정 요약

  • H9-5a: FAIL (3 모델 모두 5-apt × 3-seed 평균 기준 (PAPE ≤ 43 AND HR@1 ≥ 37) 미충족). test-set metric 기반 FAIL 판정 자체는 MLflow per-epoch 로깅 누락과 무관하게 robust.
  • H9-5b (VQ 후보 존재): 자동 미충족 (전제 H9-5a Pass/Watch 부재).
  • 상대 우위: FEDformer 가 3종 중 전 축 최선 (PAPE 52.04, HR@1 27.05, MSE 0.600, seed std 0.82). "경쟁력" 이 아니라 "3종 내 상대 최선" 수준. Apt51 단독 HR 관찰은 사후 가설로만 기록.
  • 대체 판정 (설계서 §6.3): TSLib 2차 착수 여부는 사용자 결정 사항 — 본 보고서는 권고 없음.
  • MLflow 정리: 본 세션 진입 시점에 이미 목표 상태 (active 46 = 45 model + 1 aggregate). 전환 주체/시점 확인 불가. 본 세션은 추가 조치 없음.
  • Wall-clock: 전체 53.8분, 설계 예산 (2–3h) 초과 없음. FEDformer:Autoformer 비율 1.15×. 수렴 도달 여부 (early_stop vs max_steps) 는 per-epoch loss 로깅 누락으로 판별 불가 (§2.0, §7.2, §8.3 P1 조치).
  • MLflow 로깅 규약 위반 (CLAUDE.md): per-epoch train/val loss 전량 누락. 본 revision 에서 §2.0, §8.2#1, §8.3 P1 에 명시. 다음 phase 에서 Lightning callback 필수.

reporter 체인으로 넘긴다 (본 revision 이 cycle 마지막 — 추가 critic 호출 없음).