Source:
report/version9/lab-leader/v9-05_baseline_extension.md
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_meanrun 을 하나 더 생성해 모델별 평균 저장 (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.py의build_single_model팩토리를 확장해 세 모델을 추가한다 (재작성 최소화).
5.2 스크립트 생성¶
- 파일:
experiments/forecasting/v9_0424_baseline_extension.py. - 재사용:
v6_0415_nf_baseline.py의prepare_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.npyshape ==(N_test_window, 24), metric dict 7개 키 모두 finite. - 소요: 5분 이내 (RTX 5070 Ti, max_steps=50).
- 실패 시: NF 버전 / Lightning 경고 문구 점검,
compute_hrreshape 검증.
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_hr는tolerance인자 존재 여부 확인 필요. 없으면 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.ckptmetrics/{model}_{apt}_seed{seed}.jsonsummary.csv,summary_with_v9.csvlogs/{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) - 언어 규약 (한국어 헤더 + 영어 기술 용어) 준수