Source:
report/version9/exp-critic/v9-03_chronos_lora_critic.md
v9-03 Chronos-Bolt LoRA 결과에 대한 적대적 검토¶
§0 종합 판정 — CONDITIONAL PASS (수정 요구)¶
보고서는 수치 자체의 정직성(§3.2 "PAPE 에서 LoRA 는 zero-shot 과 실질적으로 동일")과 한계 기술(§6.3) 을 일정 수준 갖추고 있다. 그러나 (a) 판정 레이블링(Watch / PARTIAL PASS)이 동일 보고서 내에서 비대칭적이고, (b) rank=4 vs rank=8 "동일" 결론을 단일 seed 근거로 일반화했으며, (c) 가구별 수렴 패턴 해석이 증거 없는 단정을 섞고 있고, (d) H9-2b "상보성" 서사와 Stage 3 진입 제안에 과도한 외삽이 포함되어 있다. 본 비판 보고서는 7개 이슈(Critical 2 / Major 4 / Minor 1)를 지적하고 번호 매긴 수정 요구 9건을 제시한다. 수정 후 reporter 넘기 가능.
판정 근거 요약: 논문 contribution(R1b 와 차별화되는 "MAPE–PAPE 동시 개선") 중 PAPE 축 primary claim 이 실측으로 기각됨(§3.2). 이것은 Stage 1 v9-01 §3.5에서 명시한 "Stage 2 primary observation" 이었다. Stage 2 의 primary gate 가 열리지 않았다는 사실 자체는 보고서가 정직하게 쓰고 있으나, 서사 구조(특히 §5, §8)는 이 실패를 "다음 단계로의 재도약 명분"으로 rationalize 하고 있어 abstract-first rollback absence 패턴(agent memory) 에 근접한다.
§1 이슈 목록¶
🔴 Critical 1 — H9-2 판정 기준의 자체 모순: rank=4 를 "boundary Fail" 로 부르면서 "PARTIAL PASS" 종합에 포함시킨 것¶
문제점: 보고서 §0 Executive Summary 는 "종합하여 Watch 판정"·"H9-2 PARTIAL PASS"라고 기술하지만, 동일 문서 §3.1 은 rank=4 PAPE=45.00% 가 설계서 §1.3 Fail 조건(PAPE > 44.98%)을 0.02%p 초과한다고 명시하고, §3.3 은 이를 "boundary Fail, not structural Fail" 로 분류한다. §10 정리표의 "H9-2 종합 공식 판정" 행은 "rank=8 Watch, rank=4 boundary Fail" 로 두 개의 레이블을 병기한다.
근거:
- 설계서 v9-02 §1.3 원문: "Pass: 5가구 평균 PAPE ≤ 42.98%", "Watch: 평균 PAPE ∈ (42.98%, 44.98%)", "Fail: 평균 PAPE > 44.98% 또는 HR < 36.68%"
- summary.csv 기준 rank=4 PAPE mean = (43.8359 + 39.3940 + 50.7093 + 41.6940 + 49.3494) / 5 = 44.9965% (소수 4자리까지 봤을 때 Fail 기준 44.98% 와 0.0165%p 차이)
- 보고서 §0 "| Fail | 평균 PAPE > 44.98% OR HR@1 < 36.68% | rank=4 는 PAPE 경계선 상단 (45.00)" → 단 이 행의 마크업은 ❌ 없이 서술만 있음 → 판정 지표 부재
심각도: 🔴 Critical — 단일 실험의 "pass/fail" 판정이 보고서 세 곳에서 서로 다른 레이블로 나타난다. 상위 문서(reporter)나 논문 서사가 이 중 어느 것을 인용해야 하는지 결정 불가.
개선 제안 (수정 요구 1): §0, §3.1, §3.3, §10 네 곳의 판정 레이블을 단일 테이블로 통합하고 다음 구조로 재작성:
rank=4: Fail (PAPE=44.9965%, Fail 임계 44.98% 를 0.0165%p 초과)
rank=8: Watch (PAPE=44.9158%, Watch 구간 내 — 단 zero-shot 대비 −0.0625%p 로 noise 수준)
종합: H9-2 primary claim (PAPE < 42.98%) FAIL. HR secondary claim (HR@1 ≥ 36.68%) 은 두 rank 모두 PASS.
🔴 Critical 2 — PAPE 수치의 소수 셋째자리 반올림이 Fail/Watch 경계를 뒤집음¶
문제점: summary.csv 의 rank=4 PAPE 5가구 평균은 44.9965% 이다 (5개 값 직접 평균). 보고서 §2.1 과 §0 은 이를 "45.00" 으로 반올림했다. 반올림 전 원값은 Fail 임계(44.98%) 를 0.0165%p 초과하여 "Fail 에 걸린다" 는 것이 맞지만, 반올림 후 45.00 은 44.98 대비 +0.02 로 보여 §0 표 "rank=4 는 PAPE 경계선 상단 (45.00)" 이라는 표현이 오히려 차이를 더 크게 보이게 한다. 반대로 보고서 §3.2 는 "+0.02%p 악화" 라고 써서 0.0165 를 0.02 로 올림했다.
설계서 §1.3 의 임계값은 소수 둘째자리로 명시(44.98)되어 있으나, 측정값의 실제 정밀도는 소수 넷째자리이므로, 반올림된 표(45.00) 와 원값(44.9965) 이 동일 Fail/Pass 판정을 주는지 확인이 필요. 현재 보고서는 반올림값만 보고하고 원값을 제시하지 않아 재현성을 해친다.
근거:
- outputs/v9_chronos_lora/r4_seed42/summary.csv 5행 PAPE 평균 = 44.9965% (직접 계산)
- 보고서 §2.1 표: "PAPE 45.00" (반올림)
- 보고서 §0: "PAPE 경계선 상단 (45.00)" → Fail 경계 (44.98) 를 0.02%p 초과한 것처럼 서술 → 실제는 0.0165%p
심각도: 🔴 Critical — Fail/Watch 경계가 0.02%p 단위 결정인데 보고서는 계산 정밀도보다 낮은 정밀도로 출력함. 판정의 재검증을 외부 독자가 수행할 수 없다.
개선 제안 (수정 요구 2): - §2.1 / §2.2 mean 행의 PAPE 는 소수 셋째자리(44.997 / 44.916) 로 표기하거나, 원 summary.csv 값을 주석으로 병기. - §3.1 Fail 행은 "rank=4 PAPE=44.997%, Fail 임계 44.98% 대비 +0.017%p 초과 — 반올림 정책 하에 Fail 판정, 실효 차이는 측정 노이즈 수준" 으로 재작성. - H9-2 primary 결론에 "판정 임계와 측정 차이가 동일 오더 이므로 판정 자체가 noise-sensitive" 라는 caveat 를 §3.3 에 삽입.
🟡 Major 3 — rank=4 vs rank=8 "동일" 결론을 단일 seed 로 일반화¶
문제점: 보고서 §4 은 rank=4 와 rank=8 의 aggregate 차이가 "소수점 이하 수준" 임을 근거로 "LoRA capacity 확장 무효" 라고 단정한다. 그러나 단일 seed=42 실행에서 얻은 차이(PAPE −0.08%p, HR@1 −0.02%p)는 seed 간 변동성(§6.3 에서 expert 본인이 "가구간 dispersion >> mean 차이"라 인정) 과 비교 대조된 바가 없다. 즉 두 rank 의 차이가 seed 노이즈보다 작은지, 큰지, 판단 근거가 없다.
근거: - §6.3 원문: "HR@1 의 표준편차(21.91~69.10)가 모델 간 mean 차이 (LoRA r8 vs zero-shot 의 +1.22%p) 보다 훨씬 크다" - 위 근거는 rank=4 vs rank=8 비교에도 동일하게 적용됨에도 불구하고 §4 은 이를 언급하지 않음 - 보고서 §10 정리: "rank=4 vs rank=8 | 동일. capacity 확장 무효" — 근거 없이 "무효" 까지 나아감
심각도: 🟡 Major — 이 결론은 설계서 §2.2 의 "rank 권장 r=4–16" fallback 범위 선택에 직접 영향. rank=8 도 무효면 rank=16, target_modules 확장 모두 동시에 무의미하다는 서사가 성립하는가? 증거 부족.
개선 제안 (수정 요구 3): §4.2 의 "LoRA capacity 확장 무효" 를 "단일 seed 에서는 rank=4 와 rank=8 의 차이가 측정 노이즈 오더" 로 약화. "무효" 라는 단정은 3-seed 확장 결과를 얻은 후에만 정당화 가능하다는 caveat 를 §4 말미와 §10 정리표에 삽입. 또한 §4.2 "rank=4 가 이미 'Chronos 가 이 데이터에서 학습할 수 있는 최대치' 를 포착" 라는 가설은 학습 곡선 증거가 부재 — Apt6 에서 rank=8 이 rank=4 보다 더 낮은 val_mse(0.5244 vs 0.5261) 에 도달했다는 §7.2 보고 자체가 이 가설과 모순. 이 모순을 §4 에서 인정하라.
🟡 Major 4 — Apt51 "epoch=1 best" 현상의 원인 진단이 미완인데 "LoRA 기여 ≈ 0" 으로 단정¶
문제점: §6.2 는 "LoRA 기여 ≈ 0 — zero-shot 자체가 이미 최적" 이라고 결론짓는다. §7.2 는 "Chronos zero-shot 이 이미 이 가구에 최적이며, LoRA 로 training loss 를 낮추면 validation 은 곧바로 손해를 본다" 라 썼다. 그러나 로그(r8_seed42.log line 216–223) 를 보면:
[Apt51] Epoch 1/50 train_loss=13.1950 val_mse=0.4160
[Apt51] Epoch 6/50 train_loss=12.8042 val_mse=0.4460
[Apt51] Early stopping at epoch 6 (patience=5, best_epoch=1)
즉 best checkpoint = epoch 1 = LoRA weights 가 겨우 1 epoch 만 update 된 상태. 이는 expert 가 주장하는 "zero-shot 이 이미 최적이므로 LoRA 기여가 0" 과는 정확히 같은 상태가 아니다. Epoch 1 모델은 (a) LoRA A,B 가 1 step × N batch 만큼 update 된 상태 — 완전한 zero-shot 도 아니고, (b) gradient 방향이 noisy 한 초기 update 로 인해 val_mse 가 epoch 0 (= zero-shot) 과 비교했을 때 더 나을 수도, 나쁠 수도 있다. 보고서는 epoch 0 (zero-shot) val_mse 를 기록하지 않았다 — 즉 "zero-shot 이 이미 최적" 이라는 주장을 검증할 reference 가 fine-tune 로그에 없다.
실제 checkable 가설은 세 가지로 expert 도 §8 옵션 B 각주에 언급했으나, "LoRA 기여 ≈ 0" 으로 단정하면 (b)/(c) 가설을 기각하는 셈이 된다: - (a) zero-shot 이 이미 최적 - (b) lr=1e-5 가 너무 작아 수렴 실패 (한 step gradient 가 오히려 val 를 손상) - (c) 데이터 부족 (5758 train samples, ~180 batches/epoch 로 한 epoch 안에서 adam state 가 안정화되지 않음)
근거:
- outputs/v9_chronos_lora/logs/r8_seed42.log:216-223 — Apt51 구간 8줄
- 보고서 §6.2: "LoRA 기여 ≈ 0 — zero-shot 자체가 이미 최적" (단정)
- 보고서 §7.2: "Chronos zero-shot 이 이미 이 가구에 최적이며" (단정)
- 보고서 §8 옵션 B: 가설 (a)/(b)/(c) 명시되지만 "범위 외" 로 언급
- 보고서 test 결과: Apt51 r=8 PAPE=41.94, HR@1=68.98 — v6 Exp6 Chronos zero-shot Apt51 값과 비교 가능한 per-apt 기록이 v9-01 에 없어 직접 비교 곤란
심각도: 🟡 Major — Apt51 은 5가구 중 HR@1=69 로 mean HR 을 크게 끌어올리는 가구. 이 가구의 "LoRA 기여 ≈ 0" 주장이 맞다면 mean HR 개선 +1.22%p 의 기여는 Apt51 에서 온 것이 아니라 나머지 4가구에서 온 것 이라야 한다. 그러나 per-apt 표(§2.2) 를 보면 rank=8 HR@1 은 Apt6=22.15, Apt15=25.95, Apt30=47.13, Apt51=68.98, Apt88=30.42 로, zero-shot 대비 per-apt 증분을 보고서가 제시하지 않아 검증 불가.
개선 제안 (수정 요구 4): §6.2 / §7.2 의 "LoRA 기여 ≈ 0" / "zero-shot 이 이미 최적" 단정을 "epoch 0 val_mse 를 로깅하지 않아 zero-shot 대비 epoch 1 이 개선인지 악화인지 확증할 수 없음. 가설 (a)/(b)/(c) 중 어느 것이 dominant 인지 판단 보류" 로 수정.
개선 제안 (수정 요구 5):
§2 표에 per-apt zero-shot 값 column 을 추가. v9-01 §4 의 per-apt 기록이 부족하면 outputs/v9_recap/per_apt_metrics.csv 에서 chronos-bolt-small per-apt 값을 인용. 이를 통해 "LoRA 가 per-apt 로 개선했는가/악화했는가" 를 mean 아닌 가구 단위로 판정 가능.
🟡 Major 5 — H9-2b "상보성" 서사가 학습 데이터 파이프라인 차이를 은폐¶
문제점: §5 는 v6 R1b (PAPE=37.36, HR@1=21.27) 와 Chronos LoRA r8 (PAPE=44.92, HR@1=38.93) 를 비교하여 "서로 다른 실패 모드 — R1b 는 높이 맞추기 / LoRA 는 시점 맞추기" 라 결론하고, Stage 3 결합 근거로 삼는다. 그러나 두 모델의 비교 설정이 pipeline 수준에서 다르다:
- v6 R1b: FedPM (5가구 연합 학습) + DLinear residual,
--beta 2.0(v9-01 §3.2 에서 확인), z-score 정규화 - Chronos LoRA: 가구별 local 학습, quantile loss, Chronos-Bolt 내부 per-series scaling + 외부 z-score (설계서 §6.2 "context 를 원본 스케일 그대로 Chronos 에 투입" 권장, 실행 스크립트에서 실제로 어느 쪽인지 본 비판 보고서에서 재확인 못함)
즉 두 모델은 학습 목적함수, 데이터 스케일, federation 구조가 모두 다르다. "실패 모드가 다르다" 는 관찰은 맞을 수 있으나, 이를 "상보적" 으로 해석하고 Stage 3 결합의 근거로 삼는 것은 두 모델이 동일 residual basis 위에서 직교한다는 증거 없이 이뤄진 외삽이다. 실패 모드가 다른 두 모델을 결합했을 때 각 실패 모드가 서로 상쇄될 수도 있고, 더 나빠질 수도 있다.
근거: - 보고서 §5: "두 모델은 서로 다른 실패 모드 를 가진다 — R1b 는 높이 맞추기 / LoRA 는 시점 맞추기. 이 분리는 Stage 3 의 결합 전략 근거가 된다." - 설계서 v9-02 §3.1 경로 B 근거: "R1b (PAPE 38.40%) 는 track 내 전체 PAPE 1위이며 … Chronos prior 를 주입하는 것은 '잘 동작하는 pipeline 에 더 강한 feature 를 공급'하는 저위험 확장" - Stage 1 v9-01 §3.5: "Stage 2 기대: LoRA fine-tune 이 Chronos 의 MAPE 55 수준 (전체 정확도) 을 유지하면서 PAPE 44.98 → 40 대로 끌어내릴 수 있다면, 'MAPE-PAPE 동시 개선' 이라는 R1b 와 차별화된 claim 이 성립" — Stage 2 primary observation 이 Stage 2 내부에서 완결되는 claim 으로 설계됨. Stage 3 결합은 plan B 였음.
심각도: 🟡 Major — Stage 2 primary claim (MAPE 유지 + PAPE 40 대 진입) 이 FAIL 한 상태에서 "상보성" 서사를 Stage 3 결합의 근거로 전환하는 것은 abstract-first rollback absence 패턴(agent memory)에 해당. Stage 2 실패를 "Stage 3 에서 복구 가능" 이라는 narrative 로 rationalize 하고 있다.
개선 제안 (수정 요구 6): §5 제목을 "H9-2b 보조 판정 (vs v6 R1b)" → "H9-2b 보조 관찰 — 실패 모드 비교(상호보완성 증명이 아님)" 로 수정. §5 마지막 문단("이 분리는 Stage 3 의 결합 전략 근거가 된다") 을 "이 분리는 관찰일 뿐이며 Stage 3 결합의 선험적 근거로 충분하지 않다. 두 모델은 목적함수 / 정규화 / federation 구조가 모두 다르며, 결합 시 실패 모드가 상쇄될지 누적될지는 실제 Stage 3 실험 없이 판단 불가" 로 변경.
🟡 Major 6 — §8 옵션 평가의 편향: Stage 3 진입 리스크를 일부만 기술¶
문제점: §8 옵션 C ("현재 결과로 확정 후 Stage 3 진입") 의 리스크 기술은 다음과 같다:
"PAPE 미개선 상태에서 Stage 3 로 넘어가면 논문 서사가 'LoRA 는 zero-shot 과 같다' 가 되어 track-v9 의 기여도가 약해짐. Stage 3 에서 결합이 실질 개선을 내지 못하면 v9 전체 narrative 가 무너짐."
그러나 Stage 3 의 prior 가 될 LoRA adapter 는 §6.2 / §7.2 분석에 따르면 5가구 중 Apt6 하나만 정상 학습, 4가구는 즉시 overfit / 학습 무효 / 조기 plateau. 이 상태의 adapter 를 Stage 3 prior 로 쓰는 것은 underfit 상태 prior 를 residual 학습의 feature 로 제공 하는 구조. 이 경우 Stage 3 의 residual head 가 "prior 가 못 잡은 부분" 을 학습해야 하는데, prior 가 underfit 이면 residual 이 zero-shot Chronos 의 prediction error 를 재학습 하는 구조가 되어 LoRA 단계를 건너뛴 (Chronos zero-shot + DLinear residual) 구조와 동등해진다. 이 리스크는 보고서가 기술하지 않았다.
또한 옵션 B(lr sweep) 를 "설계서 범위 초과" 로 비권장했는데, H9-2 primary claim 이 Fail 한 상황에서 underfit 가능성(가설 (b)) 을 검증하지 않고 Stage 3 에 진입하면 Stage 3 실패 시 원인이 (lr 부족 / rank 부족 / 구조 부적합 / residual head 결함) 어느 것인지 구분 불가. 즉 현재 제안된 옵션 A + C 조합은 Stage 2 root cause 를 미해결 상태로 Stage 3 에 넘긴다.
근거: - 보고서 §6.2: Apt6 만 정상 학습, Apt51 즉시 overfit, Apt30 학습 무효, Apt15/Apt88 조기 plateau - 보고서 §7.3: "5가구 중 LoRA 가 의미 있는 update 를 한 가구는 Apt6 하나" - 보고서 §8 옵션 C: Stage 3 실패 시 v9 narrative 붕괴 리스크만 기술, underfit prior 리스크 미기술
심각도: 🟡 Major — Stage 3 진입 가부는 Stage 2 의 underfit 여부 판정에 달려 있다. 이 판정 없이 Stage 3 진입을 옵션으로 제시하는 것은 root cause 진단 회피.
개선 제안 (수정 요구 7): §8 옵션 C 리스크 항에 다음 세 가지를 추가: 1. "Stage 2 adapter 가 5가구 중 1가구만 정상 학습 — Stage 3 prior 로 쓸 때 4가구 결과가 사실상 zero-shot prediction 과 동등하므로, (Chronos zero-shot + residual) 과 (Chronos LoRA + residual) 의 Stage 3 성능 차이가 미미할 위험" 2. "Stage 2 에서 underfit(lr 부족) 가설을 검증하지 않은 상태로 Stage 3 실패 시 원인 속성화 불가" 3. "옵션 A(3-seed) 로 seed 노이즈만 제거하고 Stage 3 진입하는 것은 underfit 가설 검증과 다른 작업. 두 가지를 혼동해서는 안 됨"
또한 옵션 B(lr sweep) 의 "설계서 범위 초과" 판단은 유지하되, "사용자 결정 시 옵션 A 보다 Stage 2 root cause 해명에 직접 기여" 라는 중립 기술로 옵션 B 의 가치를 명시.
🟢 Minor 7 — 학습 로그 관찰에 소폭 부정확한 표현¶
문제점: §7.2 "Apt6 정상 학습" 문단: "rank=8 도 epoch=45 best (0.5244) 로 rank=4 보다 약간 더 낮은 val_mse 에 도달". 그러나 r8_seed42.log:90-91 의 rank=8 Apt6 best 는 epoch=45, val_mse=0.5244 로 확인되지만 rank=4 의 best 는 로그에서 재확인 필요 — 보고서 §7.1 테이블은 rank=4 best_epoch=50. rank=4 Apt6 의 최종 val_mse 값은 보고서 본문에 명시되지 않음. "약간 더 낮은" 이라는 비교가 비교 대상 수치를 제시하지 않은 상태 에서 행해짐.
또한 §6.1 의 mean/std 표에서 Apt88 std=1.27 이 summary.csv / v9-01 어디에도 직접 인용 경로가 없어 본 비판 보고서에서 독립 재확인 불가. (EC50 train split 원데이터에서 계산된 값으로 보이나 source 명시 필요.)
근거:
- r8_seed42.log:90 "Apt6 Epoch 45/50 train_loss=11.5764 val_mse=0.5244 Best checkpoint saved at epoch 45"
- 보고서 §7.2: "rank=8 도 epoch=45 best (0.5244) 로 rank=4 보다 약간 더 낮은"
- rank=4 Apt6 best 값은 보고서 본문에 없음
심각도: 🟢 Minor — 해석 자체는 타당할 수 있으나 수치 출처가 불완전.
개선 제안 (수정 요구 8): §7.2 에 rank=4 Apt6 best val_mse 값을 로그에서 인용하여 병기 ("rank=4 Apt6 epoch=50 val_mse=0.XXXX, rank=8 epoch=45 val_mse=0.5244"). §6.1 mean/std 값의 계산 source (원 시계열 파일 path) 를 §1.1 각주에 명시.
§2 인정되는 강점¶
- 정직한 primary claim 실패 기술: §3.2 "PAPE 에서 LoRA 는 zero-shot 과 실질적으로 동일", §10 "H9-2 PAPE claim (LoRA < zero-shot −2%p) | FAIL" — rationalize 하지 않고 명시함. 이 점은 agent memory 의 "abstract-first rollback absence" 패턴을 부분적으로 회피.
- 1-seed 한계 기술의 존재: §6.3 "HR@1 의 표준편차가 모델 간 mean 차이보다 훨씬 크다 … 3-seed 이상 확장이 필수" — 개선 주장의 한계를 동일 보고서 내에 배치. 단 §8 권장이 옵션 A(3-seed) 이므로 내부 일관성 유지.
- 학습 수렴 실패 모드의 가구별 분해: §6 / §7 에서 Apt51 즉시 overfit / Apt30 학습 무효 / Apt6 정상 학습 / Apt15, Apt88 조기 plateau 의 4가지 패턴을 구분. 이는 reporter 단계에서 논문 서술에 쓸 수 있는 가치 있는 분해.
- MLflow / artifact / 재현 경로 기록: §1.4, §9 에 run_id 2개, adapter path 10개, summary.csv path, 로그 path 모두 명시. 재현성 최상.
- 설계서 원칙 준수: 옵션 B(lr sweep) 를 "설계서 범위 초과" 로 비권장하여 critic 이 항상 감시하는 "ceremonial gate via threshold relaxation" 패턴을 회피. Stage 2 범위 엄수.
- 설계서 판정표 인용: §3.1 이 설계서 §1.3 을 원문 그대로 인용해 rater 간 합의를 보장함.
§3 판정: CONDITIONAL PASS — 9 수정 요구¶
상기 이슈 중 Critical 2 건(1, 2) 및 Major 4 건(3~6) 은 본 보고서 자체 수정 범위 내에서 해결 가능. 신규 실험을 요구하지 않음. Minor 7 은 표기 개선 수준.
Critical 1, 2 는 상위 문서(reporter 가 v9-03 을 인용할 때) 직접 오독을 유발하므로 반드시 수정 후 reporter 로 넘길 것. Major 3~6 은 논문 서사의 과도한 외삽 차단이 핵심이며 수정 요구 3~7 을 반영하면 서사가 "LoRA 는 Stage 2 내에서 PAPE 개선 실패, HR 축에서 소폭 개선 (seed 노이즈 가능성), Stage 3 진입 여부는 root cause 해명 후 결정" 으로 더 방어적이면서 정확해짐.
수정 요구 체크리스트 (exp-expert 전달)¶
- 수정 1: §0 / §3.1 / §3.3 / §10 의 판정 레이블을 단일 표로 통합. "PARTIAL PASS" 용어 삭제. rank=4 = Fail(boundary), rank=8 = Watch 로 통일.
- 수정 2: §2 mean 행의 PAPE 를 소수 셋째자리까지 기록 (rank=4=44.997, rank=8=44.916). Fail 판정 서술에 "측정 차이가 임계와 동일 오더 — noise-sensitive" caveat 추가.
- 수정 3: §4 "LoRA capacity 확장 무효" → "단일 seed 에서는 rank=4 와 rank=8 의 차이가 측정 노이즈 오더" 로 약화. Apt6 에서 rank=8 이 rank=4 보다 낮은 val_mse 에 도달한 §7.2 관찰과 §4.2 "rank=4 가 최대치" 가설의 모순을 §4 내에서 인정.
- 수정 4: §6.2 / §7.2 의 Apt51 "LoRA 기여 ≈ 0" 단정을 "epoch 0 val_mse 미기록 → 가설 (a)/(b)/(c) 중 dominant 판단 보류" 로 수정.
- 수정 5: §2 결과 표에 per-apt zero-shot PAPE / HR@1 column 을 추가하여 mean 아닌 가구 단위 비교 가능하게. v9-01 §4 가 per-apt 값을 모두 담지 않으면
outputs/v9_recap/per_apt_metrics.csv에서 chronos-bolt-small per-apt 값을 인용. - 수정 6: §5 제목과 마지막 문단을 "상호보완성 증명이 아님" 으로 재프레이밍. "Stage 3 결합 근거" 표현을 "Stage 3 가설의 motivation 일 뿐 — Stage 3 실험으로만 검증 가능" 으로 변경.
- 수정 7: §8 옵션 C 리스크에 (i) underfit adapter 를 prior 로 사용 시 (zero-shot + residual) 과의 동등 가능성, (ii) Stage 2 root cause 미해결 상태 Stage 3 진입의 원인 속성화 불가 리스크, (iii) 옵션 A 와 옵션 B 가 검증 대상이 다름 을 명시.
- 수정 8: §7.2 에 rank=4 Apt6 best val_mse 수치를 로그에서 인용 병기. §1.1 각주에 mean/std 계산 source path 명시.
- 수정 9 (권고, not blocker): §0 Executive Summary 마지막 문장을 "Stage 2 primary claim (PAPE 개선) 은 FAIL, secondary (HR 유지) 는 PASS. Stage 3 진입 전 lr 민감도 또는 multi-seed 로 root cause 해명 권장" 으로 명시화. 현재는 "설계서 §4 의 '5가구 train sample 부족 리스크' 가 실측으로 재현" 로 마쳐 원인 귀속을 "data 부족" 단일 가설로 prettify 하는 경향.
§4 추가 실험 제안 (요구 아님, 옵션)¶
본 critic 범위 내에서 추가 실험을 요구하지 않음. 다만 Stage 3 진입 전에 사용자가 root cause 해명을 원할 경우 고려 옵션:
- Epoch 0 baseline 기록: Stage 2 adapter fine-tune 실행 시 epoch 0 (= zero-shot) val_mse 를 로그에 기록하여 Apt51 "epoch=1 이 best" 가 zero-shot 대비 개선인지 악화인지 판정. 구현 비용 낮음 (현 스크립트에 epoch 0 evaluation loop 1개 추가).
- Per-apt zero-shot 재측정: Chronos-Bolt zero-shot 의 5가구 per-apt PAPE / HR 을 별도 실행해 LoRA 결과와 가구 단위 비교. 이는 수정 요구 5 의 보조 자료.
- Seed 확장: 옵션 A 와 동일하지만 본 critic 이 제안하는 것이 아니라 expert 가 이미 §8 에서 권장한 것. 본 critic 은 중립.
이상은 권장이며 의무 아님. 본 비판 보고서의 판정은 상기 수정 요구 1~8 완료만으로 CONDITIONAL PASS → PASS 전환 가능.
§5 원천 자료 재검증 트레이스¶
outputs/v9_chronos_lora/r4_seed42/summary.csv— rank=4 5가구 metric (직접 확인)outputs/v9_chronos_lora/r8_seed42/summary.csv— rank=8 5가구 metric (직접 확인)outputs/v9_chronos_lora/logs/r8_seed42.log:216-223— Apt51 즉시 overfit 구간 8줄 확인outputs/v9_chronos_lora/logs/r8_seed42.log:173-201— Apt30 학습 무효 구간 확인 (val_mse 0.0287 → 0.0283, 4자리 변화)outputs/v9_chronos_lora/logs/r8_seed42.log:13-92— Apt6 정상 학습 (epoch 1→45 val_mse 0.5974 → 0.5244) 확인report/version9/exp-designer/v9-02_chronos_lora_design.md§1.3, §2.2, §3, §4 원문 확인report/version9/reporter/v9-01_stage1_hr_sensitivity_recap.md§2, §3.5 원문 확인 — Stage 2 primary observation 정의 ("MAPE 유지 + PAPE 40 대 진입") 재확인