콘텐츠로 이동

Source: report/version8/exp-expert/v8_failure_root_cause_and_redesign_v2.md

v8 실패 분석 + 재설계안 v2

cycle 1 보고서(v8_failure_root_cause_and_redesign.md)는 critic FAIL 판정을 받았다. 핵심 치명 사유는 v6 decoder 구조를 Transformer 로 오인했고, 그 오진 위에서 경쟁 ADR-009 (track-f) 를 Option 집합에서 배제했다는 점이다. 본 v2 는 12 건 수정사항 (Critical 3 / Major 5 / Minor 4) 을 모두 반영하고, 결정을 track-f W1+W2 병렬 실행 + Option d 를 second rollback 으로 전환한다.


§0 상충 가설 — v2 정정

cycle 1 §0 원문 (요지)

"V4/V5 가 MemoryAlignmentServer 통합 후에도 실패했으므로 '구현 결함' 가설은 반증된다."

왜 이 논증이 약한가 (critic m4)

decoder 병목이 dominant 하다면 alignment 개선 효과는 masked 된다 — 이는 순환 논증이었다. V4/V5 실패는 "alignment 단독으로는 v6 수준 격차를 못 닫는다" 정도만 지지하고, "alignment 자체가 무의미" 는 지지하지 못한다.

v2 진술

v4/v5 실패는 alignment 설계 자체의 반증이 아니라, v7 decoder/encoder capacity 격차 하에서는 alignment 로 회복 불가 라는 조건부 결론이다. Capacity 복원 후 alignment 유의성은 별도 실험(track-f.3 A3 cell)에서 판정되어야 한다.


§1 V4/V5 진단 수치 (v1 유지, 재확인됨)

MLflow 경로: mlruns/488793251950638315 (v7-peak-aware-fl).

1.1 V4 run (2fab575c, seed=42, Apt6+Apt88, rounds=10)

metric round 1 round 10 변화
codebook_alignment_sim_mean 0.1198 0.0095 ↓ 92%
codebook_n_components 8 178 ↑ 22배
train_loss 1.0866 1.9055 ↑ 75%
val_loss 0.6469 0.6544 평탄
PAPE_avg (final) 56.51
ff_codebook_util 0.2515 (25%)

1.2 V5 run (584cc9a6, seed=42, Apt6+Apt88, rounds=10)

metric round 1 round 10 변화
codebook_alignment_sim_mean 0.1706 0.1020 ↓ 40%
codebook_n_components 4 11 ↑ 2.75배
train_loss 1.0804 1.1490 ↑ 6%
val_loss 0.6523 0.6349 약한 ↓
PAPE_avg (final) 53.32
ff_codebook_util 0.8586 (86%)

수치 해석은 cycle 1 과 동일 (moving-target vs RESET). critic §1 인정된 강점으로 유지.

1.3 v6 R1b 동일 cell 대조 — v2 보강 (M2 반영)

MLflow: 5e0409718fd347d085190264e43d4284

metric v6 R1b 값 출처
test_avg_codebook_util 4.06% metrics/test_avg_codebook_util
test_avg_pape 38.3965 metrics/test_avg_pape
test_avg_hr 22.28% metrics/test_avg_hr
test_avg_mse 0.6252 metrics/test_avg_mse
best_round 23 (of 100) params/best_round
Apt88 res_ratio 0.838 metrics/Apt88_res_ratio
Apt30 res_ratio 0.814 metrics/Apt30_res_ratio
Apt6 res_ratio 0.688 metrics/Apt6_res_ratio
Apt51 res_ratio 0.425 metrics/Apt51_res_ratio
Apt15 res_ratio 0.458 metrics/Apt15_res_ratio
Apt88 vq_magnitude 0.395 metrics/Apt88_vq_magnitude
Apt30 vq_magnitude 0.265 metrics/Apt30_vq_magnitude
Apt6 vq_magnitude 0.467 metrics/Apt6_vq_magnitude
Apt51 vq_magnitude 0.399 metrics/Apt51_vq_magnitude
Apt15 vq_magnitude 0.467 metrics/Apt15_vq_magnitude
perplexity MLflow 에 존재하지 않음

v2 해석 (M2 반영): - VectorQuantizer (src/fed_learning/fedpm.py:112): unique_codes / M — frequency-weighted 아님. - 따라서 util 4% 는 "10개 code 가 배치의 100% 를 커버" 와 관측 상 구별 불가. "VQ 거의 무시" 는 cycle 1 의 단정 서술이었고, 본 v2 에서는 "VQ 기여 disputed" 로 수정한다. - 단, Apt88 res_ratio=0.84 는 "per-household DLinear residual 이 Apt88 예측의 대부분을 담당" 은 여전히 지지한다. vq_magnitude (0.27~0.47) 도 절대 크기로는 작지 않다 (입력 신호 normalized scale 대비). 따라서 VQ 경로는 "무시"가 아니라 "per-household DLinear 대비 부차적"이라는 수정된 진술이 정확하다.


§2 진짜 원인 — v2 전면 재작성 (C1, M1, M3, m3 반영)

2.1 구조 비교 정정 (critic C1, M1, m3)

v6 R1b 원본(experiments/federated/v6_0415_fedpm_original.py) vs v7 ProposedModel (experiments/federated/v7_runner.py:663).

구성 v6 R1b 원본 v7 ProposedModel 격차
Encoder CNN + residual blocks (encoder_type="cnn", 2 residual layers, num_residual_hiddens=64) + compression_factor=4 (96→24) Linear patch_proj + Conv1d×2 (same length) 전역 vs 로컬
Encoder params (추정) ~156K ~25K 6.2×
VQ codebook M=256, D=64, beta=0.25 M=256, D=64, beta=0.25 동일
Decoder (정정) FC-MLP XcodeYtimeDecoder(decoder_type='fc'), 4-layer MLP over (seq_in_len × d_model)=24×64=1536 → d_hid=256 → 1536 Conv1d×2 + Linear(D,1) 로컬 receptive field
Decoder params (실측) 956,696 (FCDecoderBackbone flatten + 4 Linear + ReLU) 24,769 38.6×
Decoder 수용야 전역 (flatten 후 MLP) 로컬 (kernel=3 5-step) 정성적 질적 차이
DLinear residual path DLinear (local, non-shared) — Phase 3b DLinear (local, non-shared) 동일
Optimizer (정정) torch.optim.Adam + differential LR (VQ params 1×, DLinear 0.1×) — line 310-313 torch.optim.Adam + differential LR (동일) 동일
sim_threshold (δ) 0.7 (config default) 0.6 (v7_runner line 1490) δ=0.6 이 더 관대
Local epochs 5 5 동일
Rounds 100 (best@23) 10 (v8 V4/V5) 10×
가구 수 5 (Apt6/15/30/51/88) 2 (Apt6, Apt88) — smoke 2.5×
Aggregation strategy (신규, M3) cos_similarity (MLflow params/aggregation_strategy) plain FedAvg weighted mean 질적 차이
Memory fill strategy (신규, M3) client_personalized 없음 (global codebook only) 질적 차이
similarity_threshold (신규, M3) 0.7 n/a
gamma (EMA decay) (신규, M3) 0.95 n/a

Total params (정정): v6 R1b ~1.13M (encoder 156K + decoder 957K + VQ codebook 16K + DLinear 5K×5가구 = 25K + etc) / v7 ProposedModel ~50K → 20~25×.

cycle 1 대비 변경점: - "Transformer decoder (≈200K+)" → "FC-MLP decoder, 957K 실측" - Decoder capacity 격차 "7~8×" → "38.6×" (5× 과소 추정이었음) - Total 격차 추정치 "~270K vs ~35K" → "~1.13M vs ~50K" - Optimizer "AdamW" → "Adam + differential LR" - aggregation_strategy / memory_fill_strategy / similarity_threshold / gamma 신규 행 추가

2.2 원인 3층 분해 — v2 재작성 (C1 영향)

  1. (Dominant 후보 1) Decoder capacity 붕괴 (38.6×) — v7 Conv1d×2 decoder 는 24-step 예측을 로컬 수용야로만 수행한다. v6 FC-MLP decoder 는 (seq_in_len × d_model) = 1536 을 flatten 후 4-layer MLP 로 처리 → 전역 수용야. "Conv1d local receptive field vs FC-MLP flatten 전역 receptive field" 격차가 PAPE 38→53 대부분을 설명하는 1차 후보. A1 (no VQ, DLinear only) PAPE 47.1 이 v7 infra 상단에 머문 사실이 간접 증거.

  2. (Dominant 후보 2) FL aggregation 전략 (cos_similarity + personalized) — M3 신규 발견. v6 R1b 는 개인화된 aggregation 을 사용 (cos_similarity 로 유사 가구 그룹핑 + 개인화 memory fill + gamma=0.95 EMA). v7/v8 은 plain FedAvg. 이 단독 효과는 empirical 검증 필요 (track-f 에서 decoder-only 교체 시 격차가 얼마나 닫히는가).

  3. (Secondary) BFS 정렬의 round-wise overwrite — V4 train_loss 75% 증가. codebook moving-target. Capacity 회복 후에도 이 메커니즘은 여전히 문제일 수 있으나, V5 의 RESET 방법은 이를 완화한다.

  4. (Tertiary) v7 V4/V5 smoke rounds=10 — 실험 설계 이슈. v6 R1b best@23 이므로 10 rounds 는 수렴 불충분. M4 반영으로 단독 기각을 "보류" 로 완화하고, track-f 에서 rounds=30 1-seed 재실행을 "수렴성 실측" 으로 제안 (user 승인 사항).

cycle 1 대비 변경점: "Dominant = capacity 단일" → "Dominant 후보 2개 (capacity + aggregation) 공동 교란, 단독 효과는 track-f 에서 분리 측정 필요". 이는 track-f ADR line 63 (critic F9 대응) 과 동일한 정직한 해석이다.

2.3 v6 R1b PAPE 38.40 메커니즘 — v2 재작성

  • FC-MLP decoder 의 전역 수용야 가 24-step 내부 구조를 직접 모델링 (Transformer 와 달리 position-wise attention 은 없지만 flatten 으로 모든 time step 이 모든 시점에 연결).
  • 개인화된 FL aggregation 이 가구별 패턴 편차를 보존하면서 부분 공유 (cos_similarity > 0.7 인 가구끼리만 aggregation).
  • DLinear residual 이 per-household trend/seasonality 보정 (res_ratio 0.43~0.84, vq_magnitude 0.27~0.47).
  • VQ codebook 은 util 4% 이지만 vq_magnitude 는 작지 않음 → "무시"가 아니라 "부차적 보조 경로". "track-e v3 관찰 (FL 통신 효율 성격)" 과의 일치는 M2 재해석 이후에도 유효.

cycle 1 §2.2 "Transformer decoder + DLinear residual 덕분" 진술은 전제 오류 → v2 에서 "FC-MLP decoder 의 capacity 우위 + 개인화 aggregation + DLinear residual 3자 공동" 으로 정정.

2.4 Commitment weight / β drift 여부 (v1 유지)

β=0.25, peak_alpha=2.0 공통. drift 없음.


§3 Option 집합 확장 — v2 재작성 (C2, C3, M5)

3.0 "파라미터 튜닝 금지" 재해석 (M5)

ADR-008 §5 의 4 옵션 예시는 examples 이며 decoder 구조 교체 금지를 명시하지 않는다. 또한 경쟁 ADR-009 (track-f) line 58 은 "아키텍처 교체이며 하이퍼파라미터 조정이 아님" 을 명시적으로 허용한다. 따라서 v2 Option 집합은 "VQ 알고리즘 축" + "decoder/encoder 구조 축" 2개 모두에서 options 를 나열한다.

3.1 평가 기준 (v1 유지 + 확장)

  • v8.2 5-seed 통계 재진입 workload ≤ 4~12h (track-f 허용 폭)
  • PAPE 회복 예상치 A1(47.1) 이하 confident (Option e/f) 또는 A1 동등 합리적 (Option d)
  • 초록 claim 유지 선호 (Option d 는 문구 변경 요구, Option e/f 는 유지 가능)
  • 논문 제출 일정 (§4.4 참조): 2026-05 workshop submission 시도 시 abstract-first 축 변경은 risk.

3.2 Option 비교표 (6 옵션, 5축)

옵션 설명 workload 예상 PAPE 초록 claim 재발 위험 논문 기여 축
a. Gumbel-softmax VQ τ annealing soft relaxation 6~10h 49~52 VQ 유지 중 (§2.2 1·2번 미해결) VQ 알고리즘 개선
b. Product Quantization m개 sub-codebook 10~16h 49~52 VQ 유지 중상 (동상) VQ 분해
c. RQ-VAE multi-stage 잔차 12~20h 48~50 VQ (residual) 상 (동상 + 동기화 복잡도) VQ 잔차
d. Shared linear adapter VQ 대체 2~4h 47 (A1 동등), 45 이하는 speculative 수정 필요 (VQ 제거) 낮음 peak-loss FL 단독
e. FC-MLP decoder 포팅 (track-f W1) v6 원본 decoder 구조 수입, FL aggregation 은 v7 FedAvg 고정 (교란 disclosure) 5~7h conservative 43~45, stretch 38~40 (개인화 aggregation 누락 → 38 재현은 보장 안 됨) 유지 중 (capacity 회복으로 §2.2 1 직접 해결, §2.2 2 는 미해결 disclosure) FL + decoder capacity 분리 + VQ
f. 축소 Transformer decoder (track-f W2) tf2_128 variant (d_model=64, nhead=4, nlayers=2, d_hid=128) 5~7h conservative 44~46, stretch 40~42 유지 중 (설계 미검증) FL + decoder family comparison

3.3 각 Option 의 §2 원인 커버리지 (critic C2 핵심)

Option §2.2-1 (decoder capacity) 해결 §2.2-2 (aggregation) 해결 §2.2-3 (BFS overwrite) 해결
a/b/c 부분 (a=soft)
d ✗ (포기, A1 수준 downgrade) ✗ (plain FedAvg 유지) n/a (VQ 제거로 해당 없음)
e ✓ (38.6× 복원) ✗ (decoder-only 변형) ✗ (단독 경로로는 미해결)
f ✓ (Transformer 로 대안 복원)
e+f 병렬 ✓ (둘 중 승자 선택)
e+aggregation 복원 (track-f W1 확장변형, user 승인 필요)

3.4 Option d 예상 PAPE 근거 하향 (C3)

cycle 1 §4 근거 3 은 "45~47 confident" 였지만 A1 PAPE 47.1 은 "VQ 없어도 47.1 달성 가능" 을 지지할 뿐 "shared linear adapter 가 47.1 이하로 낮춘다" 를 지지하지 않는다. v9 design spec (docs/reference/project_state/track_v9_vq_redesign.md) §7 자체가 "≤45 정직하게 어려움" 을 인정한다 → cycle 1 §4 와 모순이었음. v2 에서는 "47.1 (A1 동등) 가능성 합리적, 45 이하는 speculative" 로 하향.

Option d empirical 사전등록 임계값 제안 (user 승인 시 pre-register, N2 반영): - adapter_vs_dlinear_ratio = mean(|adapter_out|) / mean(|dlinear_out|) — 학습 후 측정. - Stage 1 통과 임계: adapter_vs_dlinear_ratio ≥ 0.2 (adapter 가 DLinear 대비 최소 20% 기여). - 근거 (N2 반영): v6 R1b 원본 per-household res_ratio 범위 0.425~0.838 (§1.3), Apt51 이 최소값 0.425. v6 에서 DLinear residual 이 잡아낸 최소 분담률(0.425)의 절반 (≈0.21) 을 empirical floor 로 채택. cycle 1 초안의 0.1 은 v6 res_ratio 범위에 비해 지나치게 관대해 "adapter 가 잡음 수준 기여로도 pass" 위험이 있었다는 critic N2 지적을 수용. - 임계 미달 (ratio < 0.2) 시 adapter 는 "DLinear 대비 1/5 이하 기여" → 사실상 무신호 → Option d 실패로 판정. - Note: 본 임계값 상향은 docs/reference/project_state/track_v9_vq_redesign.md §3.4 / §7 의 기존 0.1 값과 불일치. Option d 실제 발동 시 design spec 0.1 → 0.2 로 동기화 개정이 prerequisite (engineer 위임 사항, 본 보고서 scope 밖).


§4 재선정 — v2 전면 재작성 (critic 권고 수용 + 3안 구성)

4.1 critic 권고 요약

"track-f W1 (Option e) 우선, Option d 는 rollback."

4.2 v2 결정 — critic 권고를 3안으로 확장 수용

선정 경로: track-f W1 + W2 병렬 실행을 primary, Option d 를 second rollback.

구체적 분기:

Step 1: track-f.0 파일럿 (W1=FC-MLP + W2=Transformer 병렬, 1-seed, Apt6+Apt88, rounds=10)
   ├─ W1 PAPE ≤ 47.1 → track-f.1 W1 primary smoke 진행
   ├─ W2 PAPE ≤ 47.1 (W1 미달 시) → track-f.1 W2 primary smoke 진행
   └─ 둘 다 PAPE > 50 → Option d 발동 (second rollback, §4.3)

Step 2: track-f.1 smoke (선택된 variant, 5-seed, 2 가구, rounds=20~30 조건부)
   ├─ PAPE ≤ 45 on ≥ 4/5 seeds → track-f.2 Stage 1 진입
   └─ PAPE 45~50 gray-zone → 5 가구 확장 smoke (gray-zone 정책 per ADR pending)

Step 3: track-f.2 Stage 1 (B0/B1/B2/B3/B4/A1/W1 또는 W2 × 5 seed)

Step 4 (rollback): track-f.1 실패 시 → Option d 5-seed smoke (3h, v9 노선)

4.3 왜 "track-f W1 단독" 이 아니라 "W1+W2 병렬" 인가

track-f ADR §2 (신규 프레이밍, 2026-04-20 revision) 가 이미 W1/W2 병렬 을 기본 경로로 승격했다. 본 v2 는 이 결정을 계승한다. 이유: - W1 (FC-MLP) 은 v6 precedent 있음 but 개인화 aggregation 누락으로 PAPE 38 재현 보장 안 됨 (track-f ADR 의 F9 disclosure). - W2 (Transformer) 은 설계 미검증 but capacity 회복의 대안 족 (family) 을 제공. - 병렬 smoke workload 증가분은 2h (track-f ADR §2 근거 3) 로, 예산 12h 이내. - W1/W2 둘 다 실패 시 Option d 로 가는 것이 "둘 중 하나 선택 후 실패 시 다시 결정" 보다 총 workload 적음.

4.4 왜 Option d 가 rollback 위치여야 하는가 (critic 권고와 동일)

  1. §2.2-1 (dominant 후보 1) 을 포기하는 선택: Option d 는 decoder/encoder 구조를 그대로 두고 VQ 만 제거한다 — capacity 원인이 real 이라면 PAPE 47 상단에 머문다. 이는 논문 기여의 가장 강한 축(FL + capacity 분리)을 버리는 결정.
  2. 초록 claim 수정 필요: "shared VQ codebook for federated pattern exchange" → "shared low-rank adapter" — workshop submission (2026-05) 이 임박한 상황에서 abstract-first rollback 은 schedule risk. track-f W1/W2 는 VQ 유지로 abstract 축 변경 불필요.
  3. workload 3h 로 가장 작은 편 but "작은 workload" 만으로 primary 선정은 근거 부족 — critic C3 지적.
  4. 대신 rollback 가치는 명확: track-f.0 파일럿이 PAPE > 50 로 실패해도 3h 내 Option d 로 피벗하여 workshop 일정 맞출 수 있음. 즉 Option d 는 "실패 시 안전장치" 로서 유용성이 가장 크다.

4.5 논문 제출 일정 축의 의사결정 영향 (신규, critic C2 영향)

  • 2026-05 workshop (예: FL@FM-IJCAI'26 CFP 5/1 마감) 시 abstract 제출 기한.
  • track-f W1/W2 primary: abstract 문구 그대로 VQ 유지 → schedule risk 없음.
  • Option d primary: abstract 재작성 필요 (VQ → adapter) → 5/1 이전 완료 시에만 가능.
  • 따라서 workshop schedule 에 bind 되어있지 않은 시점이면 critic 권고 그대로, 5/1 전 제출이 확정이면 더더욱 track-f 우선 합리적 (abstract 재작성 risk 없음).

user 결정 축: workshop 제출 확정 여부에 따라 우선순위 고정도가 달라짐. 본 v2 는 "workshop 제출 확정 또는 미정 어느 쪽이든 track-f 우선이 합리적" 으로 판단.

4.6 선정이 바꾸지 못하는 것 (정직한 제한)

  • PAPE 38.40 재현 보장 불가: track-f W1 은 decoder capacity 만 복원. 개인화 aggregation 는 미복원 (decoder-only 변형). user 가 "aggregation 복원 범위" (track-f ADR pending §2) 에서 cos_similarity + personalized memory 까지 확장 을 승인해야 38.40 재현 가능성이 생김. 이 확장은 workload +2~4h.
  • §2.2-3 (BFS overwrite) 은 모든 Option 에서 미해결 — V5 의 RESET 방법이 부분 완화하지만 근본 해결은 별도 track.

§5 v9/track-f phase 전환 계획 — v2 재작성 (m1 반영)

5.1 ADR 번호 재할당 (N3 반영, CLAUDE.md 명명 규칙 준수)

CLAUDE.md 규칙은 ADR-NNN_{제목}.md 로 단일 3-digit 번호만 허용한다. cycle 1 revision 에서 임시 제안했던 ADR-009a / ADR-009b 표기는 이 규칙과 호환되지 않는다. 따라서 v2 에서는 두 가지 호환 경로 중 하나를 user 선택으로 제시한다 (default: 경로 B).

  • 경로 A (번호 유지 + 기존 파일 archive):
  • docs/decisions/ADR-009_v8_to_track_f_decoder_swap.mdADR-009 로 확정 (primary)
  • docs/decisions/ADR-009_v8_to_v9_vq_redesign.mddocs/archive/adr-drafts/ADR-009_v8_to_v9_vq_redesign.md 로 이동 (cycle 1 소산물 보존, Option d 는 track-f 실패 시 second rollback 근거로만 참조)
  • 이점: 단일 ADR-009 유지, cycle 1 소산물 변경 최소
  • 단점: Option d 가 rollback-only 경로로 남지만 별도 ADR 부재 → rollback 발동 시 ADR 신규 작성 필요

  • 경로 B (번호 재할당, default 권고):

  • ADR-009_v8_to_track_f_decoder_swap.md유지 (track-f primary)
  • ADR-009_v8_to_v9_vq_redesign.mdADR-010_v8_to_v9_vq_redesign.md 로 rename + status 를 "rollback-only" 로 전환 (track-f 실패 시 발동 경로)
  • 이점: 두 ADR 모두 독립 번호 보유, rollback 발동 시 신규 ADR 작성 불필요 (ADR-010 재활성화)
  • 단점: 번호 재할당으로 인한 외부 참조 1회 정정 (.claude/agent-memory/, todos/, paper_draft.md 등)
  • default 권고 이유: rollback 경로는 언제든 발동 가능성 있고, ADR 번호로 추적 가능한 편이 의사결정 로그 무결성 유지에 유리.

cycle 1 대비 변경점: cycle 1 의 "ADR-009a / ADR-009b 분리" 제안은 CLAUDE.md 명명 규칙 위배였음 → v2 에서 철회. default 로 경로 B (track-f=ADR-009 / Option d=ADR-010 재할당) 를 권고하되 user 가 A 선호 시 수용.

5.2 산출물 구조

  1. ADR-009a (기존 track-f ADR): track-f pending 5 결정 user 승인 후 Accepted
  2. ADR-009b (신규, rename): Option d rollback-only ADR
  3. Design spec: docs/reference/project_state/track_f_decoder_swap.md (primary) + track_v9_vq_redesign.md (rollback, status 변경)
  4. TODO: todos/track-f_decoder_swap.md (신규) + todos/track-v9_vq_redesign.md (status=rollback)

5.3 CELL_REGISTRY 확장 (track-f ADR 계승)

ID 상태 설명 decoder_type
B0~V5 (기존 12종) 행동 불변 v7_conv (default)
W1 active peak-loss + VQ + DLinear + v6 FC-MLP decoder + CNN-residual encoder v6_fc
W2 active peak-loss + VQ + DLinear + 축소 Transformer decoder tf2_128
V6 (rollback only) archive peak-loss + DLinear + shared linear adapter n/a (Option d)

V4/V5 cell 은 archive (실패 증거 보존).

5.4 Workload 추정 (track-f primary 기준)

단계 시간
ADR-009a/b 분리 + design spec 업데이트 0.5h
engineer: W1 + W2 decoder 포팅 + 테스트 ~5개 (track-f engineer contract 기승인) 5~7h
track-f.0 파일럿 (W1+W2 병렬, 1-seed, Apt6+Apt88, rounds=10) 0.5h
track-f.1 smoke (선택된 variant, 5-seed, 2 가구, rounds=20~30) 2~3h
track-f.2 Stage 1 (B0/B1/B2/B3/B4/A1/W* × 5 seed = 35 runs) 3.5h
소계 (primary 성공 시) ~11~14h
(rollback 발동 시) Option d 5-seed smoke +3h

5.5 성공 기준 — track-f ADR 동적 gate 정합 (N1 반영)

우선 순위 선언: 본 §5.5 는 track-f ADR (ADR-009_v8_to_track_f_decoder_swap.md) §실패 프로토콜 + 미결 사항 4 를 source-of-truth 로 계승한다. 본 보고서 수치는 그 gate 스킴을 재진술할 뿐이며, 충돌 시 track-f ADR 정의가 우선한다.

  • track-f.0 (1-seed 파일럿, empirical 근거 확보용):
  • Cells: W1 + W2 (옵션 γ 전제)
  • Seeds: {42, 123, 456}, Apt6+Apt88, rounds=10
  • 산출: 파일럿 PAPE min / std
  • Dynamic gate 확정 규칙 (track-f ADR §track-f.0 그대로 계승):
    • track-f.1 PAPE threshold = 파일럿 min ± 2pp (고정 수치 아님)
    • track-f.2 std gate = 파일럿 std × 1.5 (고정 수치 아님)
  • Fail-fast: Apt별 val_divergence ratio ≤ 1.5 (변경 없음, 기존 v7 infra 계승)
  • track-f.1 (병렬 W1+W2, 1-seed smoke):
  • Pass: W1 또는 W2 PAPE ≤ 파일럿 min + 2pp (A1 47.1 돌파 요구는 기본 sanity)
  • Stretch: PAPE ≤ 40 (v6 R1b 38.40 근접, aggregation 미복원으로 보장 없음)
  • Inconclusive (45 < PAPE ≤ 50): 5가구 확장 smoke 1회 (user 승인)
  • track-f.2 (5-seed):
  • Pass: 선정 variant PAPE 평균 ≤ 파일럿 min + 2pp, std < 파일럿 std × 1.5, rel_decrease > 0 on ≥ 4/5 seeds
  • stretch/disclosure: v6 R1b 38.40 재현은 aggregation 미복원 하에서는 보장 안 됨 (§4.6).

cycle 1 과의 차이: cycle 1 §5.5 는 PAPE ≤ 45 등 고정 수치를 제시했으나 이는 track-f ADR 의 dynamic gate 와 논리적으로 충돌. v2 에서는 ADR 선행 원칙 을 채택하여 수치를 파일럿 결과에 bind. 파일럿 후 실제 수치가 확정되면 track-f ADR §미결 사항 4 해소와 함께 본 §5.5 의 구체 수치가 backfill 된다.

5.6 실패 시 rollback 경로 (second + third, pre-registered — N5 반영)

5.6.1 Second rollback — Option d 발동

track-f.1 실패 (W1+W2 모두 PAPE > 50) → Option d 발동: - V6 cell 등록 (SharedAdapter), 3h 내 smoke - Pass 기준: PAPE ≤ 47.1 (A1 수준) + adapter_vs_dlinear_ratio ≥ 0.2 (N2 반영) - Option d 도 실패 시third rollback (§5.6.2)

5.6.2 Third rollback pre-register (신규, N5 반영)

발동 조건: track-f W1/W2 모두 실패 + Option d 도 실패 (PAPE > 50 또는 adapter_vs_dlinear_ratio < 0.2).

user 결정 분기 3종 (pre-registered):

  • (α) v10 = Transformer decoder + cos_similarity aggregation 통합 (v6 R1b 완전 복원):
  • 설계: v6 FC-MLP decoder + CNN-residual encoder + aggregation_strategy=cos_similarity + memory_fill_strategy=client_personalized + similarity_threshold=0.7 + gamma=0.95모두 복원.
  • 목적: §2.2-1 (decoder capacity) + §2.2-2 (aggregation) 두 dominant 후보를 동시 복원하여 v6 R1b 38.40 을 실제 재현 시도.
  • workload: +10~14h (aggregation 복원 2~4h + decoder 복원 재실행 5~7h + 5-seed 3.5h). "파라미터 튜닝 금지" 규칙의 엄밀 해석 필요 (user 승인 요): 본 경로는 "구조 + aggregation 두 축 동시 복원" 이므로 튜닝이 아니라 구조적 방법론 복원에 해당. ADR-011 필수.
  • 이름: v10 (신규 버전 번호)
  • 기여 축: FL + decoder capacity + aggregation 3원 복원 (논문 기여 최대)
  • 위험: 성공해도 "v6 재현"에 불과, 신규 기여 축 argumentation 필요

  • (β) FL narrative drop, KD 논문 축만 유지 (paper_draft.md):

  • 설계: v7~v8 전 FL 실험을 negative result 로 처리, paper_draft.md 를 KD (Chronos teacher → lightweight student) 단일 축으로 재구성.
  • workload: 재실험 0h, 글쓰기 +1~2 주 (paper_draft 전면 재작성)
  • 이름: v11-KD-only (신규 버전)
  • 기여 축: KD 단독 (초록 claim (i) 만 유지, (ii) FL claim 전량 철회)
  • 위험: workshop 5/1 마감 물리적으로 가능 (재실험 불필요), 다만 abstract 재작성 긴박

  • (γ) 초록 재작성 (v8 결과 만으로 논문 축 재정의):

  • 설계: v7/v8 V1~V5 결과를 "FL + VQ 결합 어려움의 empirical study" 로 프레이밍. "negative result + 실패 메커니즘 학술 기여" 방향 논문.
  • workload: 재실험 0h, 글쓰기 +1 주 (abstract 재작성)
  • 이름: v11-study (신규 버전)
  • 기여 축: VQ-FL 실패 메커니즘 분석 (novel framing, venue fit 은 불확실)
  • 위험: "negative result" venue 선정 어려움. workshop 에서는 수용 가능할 수 있으나 main conference 확장 불가할 수 있음.

의사결정 기준 (pre-registered): - workshop 5/1 bind 확정 + third rollback 상황 → (β) 우선 (재실험 0h + abstract 재작성만) - workshop bind 미확정 + third rollback 상황 → (α) 고려 가능 (workload 10~14h 수용 가능 시) - (α) 도 실패 가정 시 → (γ) 최후 (paper 완성 불가 시 venue 변경 고려)

본 third rollback 경로는 현 시점에 발동 조건을 pre-register 해두는 것 이 목적이며, 실제 발동은 track-f 와 Option d 모두 실패할 경우에만 고려된다 (likelihood 낮음, 그러나 0 아님).


§6 self-check — cycle 1 오류 해결 확인

6.1 cycle 1 주요 오류 → v2 수정 매핑

cycle 1 오류 v2 수정 위치 증거
v6 decoder = Transformer §2.1 table decoder 행 정정 + §2.2 원인 3층 분해 재작성 v6_0415_fedpm_original.py:126 args.decoder_type="fc", MLflow params/decoder_type=fc, decoder.py:447 FCDecoderBackbone
Decoder capacity 7~8× §2.1 table: 38.6× (decoder) / 20~25× (total) FCDecoderBackbone 파라미터 957K, v7 Conv1d×2 decoder 24,769
Option 집합에 decoder 축 누락 §3.2 6-옵션 table + §3.3 원인 커버리지 matrix critic C2 반영
Option d 45~47 "confident" §3.4 "47.1 합리적, 45 이하 speculative" + adapter_vs_dlinear_ratio 사전등록 critic C3 반영, v9 design spec §7 line 49
"VQ 거의 무시" 단정 §1.3 수정 해석 + §2.3 "부차적 보조 경로" M2 + MLflow vq_magnitude 재독
aggregation 교란 누락 §2.1 table 4 행 추가 + §2.2 (dominant 후보 2) MLflow params/aggregation_strategy=cos_similarity
rounds=10 기각 단정 §2.2 (tertiary) "보류" + track-f 에서 rounds=30 재실행 제안 M4 반영
"파라미터 튜닝 금지" = decoder 금지 §3.0 ADR-008 §5 examples 재해석 M5 반영
Optimizer AdamW §2.1 Adam + differential LR v6_0415_fedpm_original.py:310-313
MemoryAlignmentServer "미통합 반증" §0 condition-ed statement 로 완화 critic m4 반영
2-가구 smoke 단정 §5.5 gray-zone 정책 참조 critic m2 반영
ADR-009 번호 충돌 §5.1 ADR-009a/009b 분리 또는 archive critic m1 반영

6.2 새로 추가된 한계 자기공개 (v1 에 없던 항목)

  • track-f W1 의 PAPE 38.40 재현 보장 불가: aggregation 미복원 하에서는 decoder capacity 단독 효과만 측정됨. track-f ADR §F9 와 동일.
  • Option d adapter_vs_dlinear_ratio 사전등록 임계값 은 현재 제안 단계. user 승인 전엔 gate 아님.
  • workshop schedule 축 은 본 v2 에서 처음 의사결정 factor 로 도입. user 가 workshop 제출 포기/연기 시 Option d 우선으로 회귀할 여지 있음.

6.3 본 v2 에서 남은 모호성 (진정한 한계)

  • track-f W1 과 W2 중 어느 variant 가 실제 PAPE 하강 폭이 큰지 empirical prior 없음. 병렬 실행이 최선.
  • Dominant 후보 1 (capacity) vs 후보 2 (aggregation) 의 상대 기여는 본 v2 에서 판정 불가 — track-f W1 decoder-only 결과가 PAPE 45~47 에 머물면 aggregation 복원 확장이 필요 (track-f ADR pending §2 user 결정).
  • §2.2-3 (BFS overwrite) 는 track-f 의 어떤 variant 로도 직접 해결 안 됨 — V5 RESET 부분 완화만.

§7 결론 요약 (1~3문장)

cycle 1 의 dominant 원인 진단은 v6 decoder 구조 오인 (Transformer ≠ 실제 FC-MLP) 위에서 구성되어 FAIL. v2 에서는 decoder capacity 격차 38.6× (957K FC-MLP vs 24.8K Conv1d×2)개인화 FL aggregation (cos_similarity + personalized) 을 dominant 공동 교란으로 재정의하고, track-f W1+W2 병렬 실행을 primary, Option d 를 second rollback 으로 선정한다. 선정 근거는 (1) 진단 원인 §2.2-1 의 직접 해결, (2) 초록 claim 유지로 workshop schedule risk 회피, (3) track-f 실패 시에도 3h 내 Option d 피벗 가능한 안전장치 보장.


산출물 경로

  • 본 보고서 (v2): report/version8/exp-expert/v8_failure_root_cause_and_redesign_v2.md
  • cycle 1 보고서 (보존): report/version8/exp-expert/v8_failure_root_cause_and_redesign.md
  • critic cycle 1 review: report/version8/exp-critic/v8_0420_failure_analysis_review.md
  • track-f ADR (primary): docs/decisions/ADR-009_v8_to_track_f_decoder_swap.md
  • v9 ADR (cycle 1 소산물): docs/decisions/ADR-009_v8_to_v9_vq_redesign.md (→ rename 또는 archive 제안)
  • track-f design spec: docs/reference/project_state/track_f_decoder_swap.md
  • v9 design spec: docs/reference/project_state/track_v9_vq_redesign.md (status → rollback)
  • track-f engineer contract: report/version8/exp-expert/track_f_engineer_contract.md

근거 MLflow / 소스

  • v6 R1b: mlruns/628304840000878755/5e0409718fd347d085190264e43d4284
  • params/decoder_type = "fc"
  • params/aggregation_strategy = "cos_similarity"
  • params/memory_fill_strategy = "client_personalized"
  • params/similarity_threshold = "0.7"
  • params/gamma = "0.95"
  • metrics/test_avg_codebook_util = 0.04063
  • metrics/test_avg_pape = 38.3965
  • metrics/Apt{6,15,30,51,88}_{vq_magnitude,res_ratio} = 위 §1.3 table
  • params/optimizer — key 없음 (Adam + differential LR 은 소스 직독)
  • v7 V4 seed42: mlruns/488793251950638315/2fab575cef1e470ba8016fd210e9b48f
  • v7 V5 seed42: mlruns/488793251950638315/584cc9a61eba4afe808b677efd4a6c17
  • 소스: experiments/federated/v6_0415_fedpm_original.py:126, 310-313, src/FedUnit-64D1/lib/models/decoder.py:447-491, src/fed_learning/fedpm.py:112, experiments/federated/v7_runner.py:663, 1490

핵심 의사결정 요구 (user 응답 필요)

  1. primary 경로 수용: track-f W1+W2 병렬 → Option d second rollback. 이 분기 수용하는가?
  2. ADR 번호 정리 (N3 반영): 경로 A (ADR-009 유지 + cycle 1 ADR archive) / 경로 B (track-f=ADR-009 + Option d=ADR-010 재할당, default 권고) 중 어느 쪽인가?
  3. aggregation 복원 범위 (track-f ADR pending §2): decoder-only 만 할지, cos_similarity + personalized 까지 복원할지?
  4. workshop schedule bind 여부: 2026-05 FL@FM-IJCAI 제출 확정인가? (→ track-f 우선 확정도 영향)
  5. rounds=30 V4/V5 1-seed 재실행 (M4 검증용): 실행할지 보류할지?
  6. Option d 동시 smoke 여부 (신규, N4 반영): track-f W1+W2 병렬 실행 시점에 Option d (SharedAdapter) 5-seed smoke 를 대기 아닌 동시 병렬로 실행할지 여부.
  7. 수용 (3안 동시): workload +3h (Option d smoke), track-f.0 파일럿과 같은 wall-clock 창에서 완료 → track-f 실패 시 의사결정 대기 시간 ≈ 0.
  8. 거부 (순차 rollback): workload 최소 (track-f 성공 시 Option d smoke 불필요), 다만 track-f 실패 시 3h 추가 대기.
  9. tradeoff 요약: workshop 5/1 마감 bind 확정 시 (user 결정 4 가 "확정") 의사결정 시간 단축이 3h workload 초과 가치 → 수용 권고. bind 미확정 시 순차 rollback 이 기본값.
  10. 기본 default (본 v2): 순차 rollback (Option d 를 track-f 실패 후에만 발동). user 가 workshop bind 확정 시 3안 동시 smoke 로 전환.

Changelog

  • 2026-04-21 cycle 2/2: cycle 2 critic CONDITIONAL PASS → N1~N5 반영 완료. N1 (§5.5 track-f ADR 동적 gate 정합), N2 (§3.4 adapter_vs_dlinear_ratio 0.1→0.2 상향), N3 (§5.1 ADR 번호 경로 A/B 재설계), N4 (의사결정 요구 6번 추가), N5 (§5.6 third rollback pre-register). 자동 중단 — reporter 진입 준비 완료.