콘텐츠로 이동

Source: report/version10/exp-critic/v10-04_E1_NBEATSx_DecompCB_critique.md

v10-04 E1 NBEATSx + DecompCB — Adversarial Critique

0. 종합 판정

CONDITIONAL PASS — 보고서는 단일 seed 한계와 복수 측정 한계를 정직하게 자기 인정했고, 점추정 사실 기록 원칙(memory v9_06 lessons)을 대체로 준수했다. 그러나 (a) E1_simple ablation 결과가 expert 보고서에 통합되지 않은 critical omission, (b) "trend CB anchor 부재" 결론을 trend CB의 inherent sparsity 대안 가설로 충분히 검토하지 않은 over-claim, (c) E1_simple과 E1 main의 차이를 "C1+C2+C3+M1 주입사항"이라는 단일 부호로 압축하는 사용자 컨텍스트의 검증 미흡, (d) 이 정보들 없이는 "Watch → Fail 경향" 판정이 견고하지 않음 — 이 4건이 본 보고서가 reporter 단계로 진입하기 전 필수 수정 사항이다.

본 critique는 보고서가 "VQ가 잠재력 있다" 변호를 하지 않은 점을 인정하나, 동시에 반대 방향의 over-claim ("anchor 부재") 도 단일 seed 점추정에서는 통계 비유의의 정직성과 일치하지 않음을 지적한다.


1. expert 자기 인정 한계 4건 평가

1.1 (인정 #1) θ-drift 미로깅 — H10-2 직접 falsification 불가

  • Critic 평가: PASS (인정 정확). MLflow metrics 디렉토리 직접 확인 결과 trend_theta_drift_l2_round_* / generic_theta_drift_l2_round_* 메트릭 부재 사실 검증됨 (E1 main, E1_simple 모두). v10-02 §9.3 spec 위반.
  • 추가 지적: 이는 단순히 "직접 falsification 불가"를 넘어 H10-2 검증 자체가 불가능한 설계 결함이다. H10-2의 falsification 조건이 "trend block θ-계수의 weighted L2 drift가 generic block 대비 통계적으로 낮지 않음 (Wilcoxon p ≥ 0.1)"으로 명시되어 있는데, 30 round × 50 client × 3 block의 θ 행렬 trajectory 자체를 보존하지 않은 것이다. checkpoint에 final-round weight만 보존되어 round 1-29의 θ 추출이 불가능 — 본 run으로는 retrospective recovery도 불가.
  • expert 보고서가 §11에서 "engineer에게 logging 보강 요청"으로 처리한 것은 적정하나, 이는 본 run의 결과 해석에서 H10-2 영역을 완전히 비워두고 "간접 증거 (utilization) 만으로 Watch → Fail 경향" 결론을 도출했다 — 이 추론 chain은 §3에서 별도 critique.

1.2 (인정 #2) Phase1/B2 ablation baseline 부재

  • Critic 평가: PASS (인정 정확). ADR-010이 "B0/B1/B2/B3 신규 재학습 전면 스킵"을 결정한 결과로 "Minimal+FedAvg+no-VQ"는 B2로 존재하나, "NF-package + FedAvg + no-VQ"이라는 중간 구간이 빠져 있음. expert가 §4.2에서 "성분 1과 2를 본 데이터로는 분리할 수 없음"으로 정직하게 기록.
  • 추가 지적: 이로 인해 사용자 컨텍스트가 제시한 "FL 손해 7-8 + VQ 손해 14-15" 분리 명제는 본 run으로 지지되지 않으며, expert 보고서 §4.2도 이를 명시했다. 이 부분은 PASS.

1.3 (인정 #3) 본 run stdout 미보존

  • Critic 평가: PASS (인정 정확). outputs/v10_main_run/logs/e1*.log 파일 3종 (e1.log, e1_parallel_v2.log, e1_seed7.log)이 본 run_id 1f7606b7와 다른 run의 출력임은 보고서가 명시함. 추가 검증: ba6a23e6 run (test_pape 47.30, run_name="E1_NBEATSx_DecompCB_seed42")는 동명 다른 run이며 본 보고와 다른 결과를 기록 — 동명 run이 mlruns 내에 다수 존재한다는 사실은 보고서 본문에서 더 명시적으로 다뤄져야 한다 (§5.3 footnote 1줄로 처리됨, 부족).
  • 추가 지적: 보고서 §5.3의 "60+ dead code restart" 신호 인용은 다른 run의 stdout을 본 run의 동일 행태로 가정한 것이며, 이는 점추정 정직성 원칙을 약화시킨다. dead-code restart는 확률적 메커니즘 (k-means re-init, random reset)이므로 다른 run에서 60개 → 본 run에서 60개를 보장하지 않는다. expert가 "정황상 같다"로 기록한 것은 narrative-driven 추론에 가깝다. §5.3은 "본 run에서는 직접 검증 불가"로 더 강하게 격하되어야 한다.

1.4 (인정 #4) Per-apt metric 부재

  • Critic 평가: PASS (인정 정확). Phase1 (9644fa45)는 100가구 per-apt logged (apt3, apt4, apt5, ..., apt99 + mean_hr_tol1=19.58 직접 검증됨). E1 main은 50가구 mean만. 본 run vs Phase1 비교에서 per-apt 분포가 큰 가구 (Apt51 outlier 등)의 영향을 expert가 분리 불가 — 즉 PAPE 22.00 격차의 일부가 단지 5가구 EVAL subset이 아닌 50가구 균일평균이라는 평균집합 차이에 의해 발생할 수 있음.
  • 추가 지적: 이는 v10-02 §11 R7 ("v10=seed=42 n=50가구, recap=seed=42 n=5가구 비대칭 → reporter에서 5-apt subset 추출")의 가드 조건과 직접 관련. 본 run은 50가구 per-apt를 기록하지 않았으므로 5-apt subset 추출 자체가 불가 — 이는 design-level 결함이며 reporter 단계에서도 회복 불가. R7 가드 미작동 사실은 본 보고서가 §9.5에서 "5-apt EVAL subset breakdown 미실시"로 인정했으나, 이를 reporter 단계 보강 가능 항목으로 처리하지 않고 본 run의 영구적 한계로 격상해 명시해야 한다.

2. 추가 발견된 한계 / 맹점 (expert가 자기 인정하지 않은 critical issues)

2.1 [REJECT] E1_simple ablation 결과가 보고서에 통합되지 않음

  • 사실 (critic 직접 확인):
  • E1_simple run 8f344fa94f2548e8a3adab7a0f79a965, run_name "E1_simple_seed42", test_pape 61.67, test_hr1 14.29, test_hr2 22.86, test_mse 0.9231, best_val_pape 69.37, best_round 15.
  • E1 main 1f7606b7 test_pape 55.01, test_hr1 15.71. E1_main이 E1_simple보다 PAPE -6.66, HR1 +1.42 우위.
  • 그러나 사용자 컨텍스트는 "C1+C2+C3+M1 주입사항이 E1에서 effective 입증"이라고 주장 — 보고서에는 이 ablation 결과 자체가 등장하지 않고, expert는 본 run을 단독 분석함.
  • Critic의 직접 비교 (params 단위 차이):
변수 E1 main E1_simple 차이
vq_strategy DecompCB DecompCBSimple 모델 클래스 다름
model MinimalNBEATSxDecompVQ MinimalNBEATSxDecompVQSimple 모델 클래스 다름
per_cb_gamma trend 0.98 / S 0.95 / G 0.85 (차등) 0.95/0.95/0.95 (균등) γ 차등 적용
uniform_gamma (미명시, 기본값 추정 False) True γ 분배 정책
dead_code_restart (미명시, 기본값 추정 True) False restart on/off
kmeans_init (미명시, 기본값 추정 True) False init 방법
ablation 태그 (없음) "C1+C2+M1" 라벨링
  • 6개 변수가 동시 변경되는 묶음 비교임. 사용자 컨텍스트의 "C1+C2+C3+M1 effective 입증" 주장은 본 ablation으로는 단일 변수 분리가 불가.
  • 추가 사실: E1_simple의 codebook utilization 평균 (Critic 직접 계산) — trend 3.75% (main 5.05%보다 낮음), seasonal 4.81% (main 17.43%보다 매우 낮음), generic 5.31% (main 9.14%보다 낮음). 즉 E1_main이 utilization 측면에서는 E1_simple보다 더 좋고 PAPE도 더 좋다 — 단순한 "주입사항이 effective"가 아니라 utilization-PAPE 관계의 비단조성 시그널.

  • REJECT 근거: 이 정보는 expert가 받은 컨텍스트에 명시적으로 들어 있었음에도 보고서는 E1_simple을 한 번도 언급하지 않음. 보고서가 단독 run 분석으로 작성된 점은 dispatch 시점 시간 순서상 정당화될 수 있으나, expert revision cycle 1차에서 반드시 통합되어야 한다. 통합 후에는:

  • "C1+C2+C3+M1 effective" 주장이 6변수 묶음 변경임을 명시.
  • utilization-PAPE 비단조성 (main > simple in both util AND PAPE)이 VQ utilization을 anchor 작동의 proxy로 사용한 §2.3의 추론을 약화시키는 사실 명시.
  • E1_simple에 dead_code_restart=False / kmeans_init=False 임을 고려, "60+ dead code restart" 정황이 본 main run의 default-True 가정과 다를 수 있음을 보강.

  • 수정 권고: 보고서에 §3.5 "E1_simple ablation 비교" 섹션 신설 + 위 표 + 점추정 사실 4건 추가.

2.2 [CONCERN] PAPE +8.63 격차의 "noise vs systematic" 분리 가능성을 점추정에서 평가 누락

  • expert는 §9 #1에서 "ADR-010 R3 트리거 (≥ 2%p) 충족, 3-seed 확장 권고"로 처리.
  • 그러나 보고서는 +8.63이 systematic하다는 가정 하에 §3.2 "VQ 이식은 본 run에서 NBEATSx의 학습 안정성과 peak 예측 성능 모두 손해" 결론을 내림 — 단일 seed 점추정에서 이는 over-claim의 리스크를 갖는다.
  • B2 vs B2 (다른 seed) 등 동일 모델 내 seed std가 v9-06 NBEATSx에서 약 4%p (ADR-010 §R5)였음을 고려하면, +8.63 격차의 일부는 단순 seed 변동으로 흡수될 수 있다.
  • 한편 V9-06 NBEATSx PAPE 95% CI [30.71, 38.46] (range ≈ 7.75)이라는 실측 reference에 비추면 +8.63은 CI half-width와 동급 격차이며, 단일 seed 비교로는 systematic 주장이 약하다.
  • CONCERN: expert §3.2의 단정형 결론 ("VQ 이식은 ... 손해")은 "점추정 한정 사실로는 격차 +8.63이 관찰되었으며, 이 격차가 systematic임을 단일 seed로 검증할 수 없음 — 3-seed 확장 후 재판정" 으로 격하되어야 한다. 이는 memory feedback v9_06_revision1 "Watch 정의 사후성 병기, CI 통계 겸손" 정책과 정합.

2.3 [CONCERN] trend CB util 5.05% 해석에서 inherent sparsity 대안 가설 검토 미흡

  • expert는 §2.3-§5.4에서 trend CB util 5.05%를 "anchor 작동 가능성 의문" 근거로 사용.
  • Critic 대안 가설: NBEATSx interpretable config의 trend block은 n_polynomials=33차원 polynomial coeff만 출력. 즉 표현 공간 자체가 본질적으로 sparse하다. M=32 codebook entry 대비 3-d 표현이 사용할 수 있는 entry 수는 이론상 cluster 수 ≤ 3-7개 (정량 unverified)이며, 5.05% util ≈ 1.6 entry는 trend의 inherent dimensionality와 일치할 수 있다.
  • 즉 "낮은 util = anchor 미작동" 추론은 "높은 util이 anchor 작동의 필요조건" 이라는 미증명 전제를 깔고 있다.
  • expert §2.4에서 이 점을 일부 인정: "낮은 utilization 자체가 drift를 작게 만들 수 있다 — 사용 안 되는 codebook entry는 변하지 않으므로 측정상 drift가 0에 수렴". 이 자기 caveat는 정직하나, 그 다음 결론 ("trend block이 학습되지 않아 drift가 없는 것으로, anchor 가설이 의도한 의미와 반대")trend block weight (basis MLP) 가 학습되지 않았다는 것과 codebook이 dense하지 않다는 것을 동일시하는 것 — 두 가지가 분리되어야 한다.
  • 정확히 검증하려면: (a) trend block의 basis MLP weight가 round 0 → round 29에서 변화했는지 (W_init vs W_final 비교), (b) θ output이 sample 간 다양한지 (variance per dimension), (c) codebook이 sparse한 게 표현의 sparse 때문인지 commitment loss decay 때문인지 — 이 셋을 분리해야 "anchor가 작동했는지"를 판단할 수 있다.
  • CONCERN: expert §2.4의 판정은 "Watch → Fail 경향"보다 "Watch (검증 불가)" 가 더 정직하다. inherent sparsity 가설이 본 run으로 배제되지 않으므로, 단일 방향으로 기울어진 판정을 보류해야 한다.

2.4 [CONCERN] dynamic γ rollback 미작동 결론의 evidence 약함

  • expert §5.4 / §7.3: "logged params에 per_cb_gamma={trend:0.98, seasonal:0.95, generic:0.85} 단일 값만 있어 동적 변경 미실시 가능성 높음 ... commitment_loss 값이 round 후반에 급격히 증가하지 않은 것이 정황상 rollback 미발동을 시사".
  • Critic 대안 가설: rollback이 작동했으나 logged되지 않았을 가능성. MLflow log_params는 일반적으로 단일 값만 기록 (override 시 동일 키에 마지막 값만 남음). γ가 0.95 → 0.8로 dynamic update되었어도 mlflow params에 single-value로 남는다면 동일 결과.
  • 검증 방법: (a) E1 학습 스크립트 (experiments/forecasting/v10_0425_E1_nbeatsx_decomp.py) 코드 검토에서 rollback condition trigger 로직 존재 여부, (b) round-wise γ value를 metric으로 logged 했는지 (gamma_trend_round_* 등) 확인. expert가 후자만 부분 확인.
  • CONCERN: 보고서 §5.4 "ADR-010 §open risks R2의 γ=0.8 rollback 트리거 조건에 해당. 본 run에서 rollback이 자동 발동되었는지... 미실시 가능성 높음"이라는 표현은 합리적 의심 + 정황 증거 + 단정 회피의 균형을 갖추고 있어 partial PASS. 그러나 §7.3의 마지막 문장 "가드 미작동 또는 미구현" 은 두 옵션을 같은 무게로 제시한 점은 좋으나, engineer에게 코드 verification을 요청하는 액션 항목 (§11 #2) 이 명시되어 있음 — 이 부분은 PASS로 격상.
  • 단 보고서 본문 결론부에서 "γ rollback 미작동"을 유사 fact로 사용한 §5.4는 "가드 작동 여부 미확인"으로 표현 통일 필요.

2.5 [CONCERN] 3-seed 확장 권고의 정당화는 충분하나, simple ablation 결과가 추가 정보를 제공함

  • ADR-010 R3 트리거: "차이 ≥ 2%p 시 3-seed 확장 자동 트리거". E1 vs B2 +8.63 PAPE는 이 조건 충족. expert §9 #1, §11 #3에서 일관 적용.
  • 그러나 simple ablation (E1_simple) 결과가 추가 정보를 제공:
  • E1_main vs E1_simple +6.66 PAPE — E1 내부 ablation에서도 격차가 R3 트리거 (≥ 2%p) 조건 충족.
  • 이는 "E1 main의 결과가 6개 변수 묶음 중 어느 변수에 sensitive한지" 검증을 위한 per-component 1-seed 추가 ablation의 필요성을 시사.
  • 즉 3-seed 확장은 VQ 효과의 noise 검증 축이고, simple ablation의 6변수 분리는 VQ 효과의 component 분해 축 — 둘은 직교한다.
  • 권고: §11에 "3-seed × 6-component matrix (= 18 runs) 가 이상적이나 wall-clock 부담이 크므로, 1차로는 (a) 3-seed full E1 main 우선, (b) 가장 sensitive component 1-2개의 1-seed split-out ablation"을 명시.

2.6 [CONCERN] HR1 / HR2 차이의 noise vs signal 평가 (memory v9_06 lessons)

  • E1 vs B2: HR1 -1.43%p (15.71 vs 17.14), HR2 -11.43%p (31.43 vs 42.86). expert §3.1에서 "HR2 가 -11.43%p 로 가장 큼 — VQ 이식이 peak window 인접 ±2시간 적중 능력을 크게 훼손".
  • Memory feedback v9_06_revision1 lessons: "denominator manipulation 격하" — HR@k는 분모(평가된 peak 수)와 분자(맞춘 peak 수) 모두에 자유도가 있어 작은 change에도 large %p 변동 가능. 단일 seed에서 HR2 -11.43%p는:
  • Δ = 약 8 peaks / 70 peaks (5-apt × 14 days × 1 daily peak 기준 추정) 또는 단일 가구의 peak window 정의 차이.
  • 50가구 mean이므로 가구당 평균 0.23 peak event 차이 (50가구 × ~14 day = 700 events 기준).
  • CONCERN: HR2 격차의 "분모 안정성" 검증 미실시. expert가 HR2 -11.43을 PAPE +8.63과 동등 무게로 다룬 것은 HR2의 분모(가구 × peak event 수)가 두 run에서 동일한지 (peak threshold가 ground truth로 정의되므로 동일해야 함) 검증 후라야 정확하다. 본 run의 evaluation은 동일 split + 동일 peak 정의이므로 분모는 동일할 가능성이 높으나, 보고서는 이를 명시 검증하지 않음.
  • 권고: §3.1 표 다음 1줄로 "동일 peak 정의 + 동일 split이므로 HR1/HR2의 분모 (target peak event 총 수)는 두 run에서 동일하다고 가정" 또는 "분모 차이 없음 검증 (y_true 동일)" 한 줄 보강.

2.7 [MINOR] Phase1 vs E1 비교에서 metric naming 비대칭

  • Phase1 (9644fa45) logs mean_hr_tol1 / test_hr_tol1 (값 19.58). E1 main은 test_hr1 (값 15.71). 두 metric의 정의가 동일한지 (tol=1 의 의미 — ±1 hour vs top-1 hit) 보고서에 명시되어 있지 않음.
  • ADR-010 §3.5에서 "동일 정의 (v9-05/06)"이라 한 점에서 정합 가정은 가능하나, 본 run 보고서 작성 시 metric 정의의 cross-reference 1줄이 더 명확.
  • 권고: §1 표 또는 §4.1 표 footnote로 "test_hr1 (E1, B2) ≡ test_hr_tol1 (Phase1) ≡ ±1 hour Hit Ratio at top-peak" 정의 통일 명시.

3. 보고서 주장별 평가 (PASS/CONCERN/REJECT)

§ 주장 평가
§0 E1 PAPE 55.01, HR1 15.71 vs B2 46.38 / 17.14 (+8.63 / -1.43) PASS (수치 직접 검증)
§0 "H10-2 본 run 증거상 Fail에 가까움" CONCERN — anchor 가설이 직접 검정 불가하므로 "Fail에 가까움"보다 "검정 불가, 간접 증거상 미지지"가 정직
§1 통제 정합성 (split, n_clients, backbone, seed 동일) PASS (mlflow params 직접 검증)
§1 "Phase1 vs B2 격차는 NF 패키지 vs minimal raw torch 구현 차 + FedAvg aggregation 손실의 합으로 분리되지 않음" PASS (정직한 인정)
§2.2 θ-drift 메트릭 미로깅 → H10-2 직접 검정 불가 PASS (Critic 직접 확인)
§2.4 "Watch → Fail 경향" 판정 CONCERN — inherent sparsity 대안 가설 미충분 검토. Watch (검정 불가) 으로 격하 권고
§3.1 E1 vs B2 점추정 격차 표 PASS (모든 수치 검증 완료)
§3.1 HR2 -11.43%p 해석 (peak window 인접 적중력 훼손) CONCERN — 분모 동일성 검증 1줄 보강
§3.2 "VQ 이식은 본 run에서 NBEATSx의 학습 안정성과 peak 예측 성능 모두 손해" CONCERN — "본 run 점추정에서 손해 관찰, systematic 여부 3-seed 후 재판정"으로 격하
§3.2 round 1 spike 206 / round 24 spike 131 PASS (round_val_pape 직접 검증)
§4.2 손해 분해 (구현/aggregation 13.37 + VQ 8.63 = 22.00) PASS (정직한 인정 + 분리 한계 명시)
§5.1 trend util 5.05%, seasonal 17.43%, generic 9.14% PASS (Critic 평균 직접 재계산: 5.05 / 17.43 / 9.14 일치)
§5.3 "60+ dead code restart" 본 run 정황 CONCERN — 다른 run의 stdout 인용. "본 run에서는 직접 검증 불가"로 격하 권고
§5.4 "rollback 미작동 또는 미구현" PASS (qualified) — engineer verification action 명시. §5.4 본문에서 "미실시 가능성 높음"을 "미확인"으로 통일
§6 통신량 -90.6% trade-off PASS
§7 best_round=16, val_pape spike round 25 분석 PASS (점추정 정황 정직 기록)
§8 Strict gating FAIL PASS
§9 #1 3-seed 확장 권고 (R3 트리거) PASS
§9 #5 per-apt metric 부재 → reporter에서도 회복 불가 PASS (단 §9에서 "본 run의 영구적 한계"로 격상 권고)
§10 H10-2 종합 "Watch → Fail 경향, 단 검정 자체는 보강 후" CONCERN — §2.4 동일 — Watch (검증 불가) 권고
§11 다음 단계 5개 권고 PASS (모두 actionable)
(전체) E1_simple 결과 통합 REJECT — 보고서에 부재 (필수 통합)

4. exp-expert에게 전달하는 필수 수정 사항 (revision 1차)

  • §3.5 (신규) "E1_simple ablation 비교" 섹션 추가 — 본 critique §2.1 표 + 점추정 사실 4건. "C1+C2+C3+M1 주입사항 effective"가 6변수 묶음 변경임을 명시.
  • §0, §3.2 결론부 톤 격하 — "VQ 이식은 ... 손해"를 "본 run 점추정에서 손해 관찰, systematic 여부는 3-seed 확장 후 재판정"으로 수정.
  • §2.4, §10 H10-2 판정 격하 — "Watch → Fail 경향"을 "Watch (검정 불가)"로. Critic §2.3의 inherent sparsity 대안 가설 1단락 추가, 이를 "본 run으로 배제 불가"로 명시.
  • §3.1 HR2 분모 동일성 — y_true 동일성 1줄 보강.
  • §5.3 "60+ dead code restart" — "다른 run의 stdout 정황, 본 run 직접 검증 불가"로 격하.
  • §5.4, §7.3 rollback 미작동 표현 — "미실시 가능성 높음"을 "미확인 (engineer 코드 verification 필요)"으로 통일. §11 #2에 명시된 액션 유지.
  • §9 한계 추가: (a) "동명 다른 run_id 다수 존재"를 §9 #3에 통합. (b) per-apt metric 부재를 "본 run의 영구적 한계"로 격상 (§9 #5).
  • §11 다음 단계 추가: (a) 3-seed full E1 main 우선, (b) component-level split-out ablation 1-2건 (예: dead_code_restart on/off, kmeans_init on/off 단일 변수). 18-run matrix는 wall-clock 부담으로 제외.
  • §1 표 footnote: test_hr1 ≡ test_hr_tol1 정의 통일 명시.

5. 인정되는 강점 (Acknowledged Strengths)

  1. 자기 인정 4건이 전부 critical 영역에서 정직 — θ-drift 부재, baseline 분리 불가, stdout 미보존, per-apt 부재. memory feedback v9_06_revision1 "통계 겸손" 정책 준수.
  2. 단정형 결론 회피 — §3.2 "단일 seed이므로 'VQ가 항상 손해' 라는 일반화 주장은 불가" 명시.
  3. 분리 비율 정직 거부 — §4.2에서 "컨텍스트가 제시한 분리 비율은 본 run 데이터로 지지되지 않음" — narrative-driven 추론 거부.
  4. denominator manipulation 회피 — §13에 명시적으로 "동일 50가구 풀, 동일 split_version" 기록.
  5. engineer 액션 항목 구체 — §11에서 4개 액션 모두 actionable + 책임 주체 명시 (engineer / orchestrator 분리).
  6. bytes-per-round trade-off — 통신량 절감을 PAPE 악화로 정당화하지 않은 점은 "VQ가 잠재력 있다" 변호 회피 정책에 정합.

6. 재실험 권고 체크리스트 (revision 1차 후 reporter 진입 전)

  • E1_simple (8f344fa9) 결과를 보고서 §3.5에 통합.
  • H10-2 판정 톤 격하 ("Fail 경향" → "검정 불가").
  • §3.2 PAPE +8.63 결론 격하 (점추정 한정).
  • HR2 분모 동일성 검증 1줄 추가.
  • dead-code restart 정황을 다른 run 인용으로 명시 격하.
  • (orchestrator 결정 대기) 3-seed E1 main + 1-2 component split-out 1-seed.
  • (engineer 결정 대기) θ-drift logging 보강 + γ rollback verification.

7. 종합 verdict

CONDITIONAL PASS: 보고서는 revision 1차 (위 §4 8개 항목 처리) 후 reporter 단계로 진입할 수 있다. revision 없이 reporter 단계로 가면 "Watch → Fail 경향" 판정이 단일 seed × 단일 run × inherent sparsity 미검토 위에 세워진 over-claim으로 잔존하며, 이는 v9-06 NBEATSx 95% CI 폭과 비교 시 신뢰도가 낮다.

비-적대적 관점 메모: 본 critique는 expert가 단독 dispatch 시점에 E1_simple 결과를 보유하지 못했을 가능성도 인정 (사용자가 critic dispatch 시점에 simple 결과를 추가 컨텍스트로 제공). revision cycle 1차 시 simple 결과 통합이 자연스러운 흐름이며, 본 critique는 그 통합을 mandatory로 등록한다.


8. 메타

  • 본 critique는 v10-04 expert 보고서 단독 검토. v10-multi-model-vq experiment의 E2/E3/E4 별도 expert 보고서 비평은 별도 critic 호출 대상.
  • 통계 비유의 표기 규약 준수: 본 critique 자체도 p-value/CI/std 표기 없이 점추정 사실 + 정성적 판정만.
  • Memory feedback v9_06_revision1 lessons 모두 적용 ("Watch 정의 사후성 병기", "CI 통계 겸손", "denominator manipulation 격하", "Apt51 cherry-picking 검증") — 단 본 run에는 per-apt metric 부재로 Apt51 검증 불가.
  • 사용자 컨텍스트의 "C1+C2+C3+M1 effective 입증" 주장은 본 critique §2.1에 따라 6변수 묶음 비교로 격하 처리됨. 이 격하는 사용자 narrative를 부정하는 것이 아니라 단일 ablation에서 component 분리가 이론적으로 불가함을 기록하는 것이다.