Index
2026-10-07 — Experiment

EgoX long video: prefix 조건 LoRA pilot

EgoX_H200 (Wan2.1 I2V 14B + LoRA) | 300클립, 4 GPU, 1,500 step, 평가 3클립

TL;DR

0.9–2.7x
경계 차이 (학습 후)
3.5–5.3x
경계 차이 (학습 전)
75 → 29
대장간 첫 chunk 밝기
16 s
step당 (4 GPU)

1 배경 / 목적

학습 없는 overlap 고정은 3클립 모두 실패했다. 모델이 고정된 앞 프레임을 이어받도록 학습된 적이 없기 때문으로 보고, ego 앞 K개 latent를 clean 조건으로 주는 미세조정을 pilot으로 먼저 검증했다.

통과 기준: (1) 경계 차이가 chunk 내부 중앙값의 1.5배 이하, (2) 처음부터 생성하는 첫 chunk 품질이 기존 LoRA 대비 나빠지지 않을 것.

2 작업 내용

학습: checkpoint-10000에서 시작, rank 256 / alpha 256, lr 2e-5, batch 1 x 4 GPU, 1,500 step prefix: step의 1/4은 K=0, 나머지는 K=1..5개 ego latent를 clean으로 두고 loss에서 제외 데이터: dataset/train 300클립 (49f) 추론: overlap 9프레임을 clean 상태로 고정 (OVERLAP_CLEAN=1), 89f = 2 chunk, seed 42 스크립트: scripts/finetune_prefix.sh, tmp/long/submit_eval.sh, tmp/long/eval_tag.sh SLURM: pilot 177136 (preempt) -> 177275 (checkpoint-250에서 자동 재개, 5:36:47)

학습 경로에서 기존 버그 3건을 고쳤다: I2V 데이터셋의 is_t2v 미설정(무한 재시도로 1시간 30분 손실), attention map 캐시가 없을 때의 미정의 변수, 학습에서 켜져 있던 kv cache.

판단이 들어간 변경: 학습의 do_kv_cache를 True에서 False로 바꿨다. cache가 리셋되지 않아 학습에서는 첫 샘플의 exo 값이 재사용되기 때문이다. checkpoint-10000의 원래 학습 설정은 확인하지 못했다.

3 결과

경계 차이 (배수)학습 전step 250step 750step 1,500
호떡31.63 (3.5x)14.29 (0.9x)27.01 (2.1x)17.98 (1.2x)
야구장18.52 (4.4x)8.76 (2.3x)5.41 (1.6x)8.52 (2.7x)
대장간33.44 (5.3x)14.90 (1.7x)7.97 (1.5x)4.99 (1.6x)
step 250 경계
Figure 1: step 250 LoRA(pfx250)와 학습 전(free)의 경계 주변 프레임 45–52. 위에서부터 호떡, 야구장, 대장간.
첫 chunk 평균 밝기기존 LoRAstep 250step 750step 1,500
호떡62.176.375.171.0
야구장59.954.752.247.6
대장간75.287.950.429.0
첫 chunk 비교
Figure 2: 처음부터 생성한 첫 chunk의 프레임 0/24/48. 왼쪽부터 기존 LoRA, step 250, 750, 1,500.
확인된 것: 9개 측정 모두 학습 전보다 경계 차이가 작고, 눈으로 봐도 장면이 이어진다.
실패: step 1,500에서 첫 chunk가 어두워지고 디테일이 사라진다. 기준 1.5배 이하는 9개 중 3개뿐이고 step에 따라 단조롭게 줄지 않는다(seed 1개).

3b 추가: 3,510클립 세트로 재실행

상세 캡션(captions_train.txt, 3,510줄)이 이미 있어 그대로 연결했다. 같은 설정(4 GPU, 1,500 step)으로 약 1.7 epoch 학습했다. 도중에 캐시 이름 충돌 버그(3,510클립이 1,394개 latent로 뭉개짐)를 발견해 고치고 다시 돌렸다.

경계 차이 (배수)학습 전step 250step 750step 1,500
호떡3.5x3.9x0.9x2.0x
야구장4.4x1.5x2.2x2.3x
대장간5.3x1.7x1.5x1.2x
첫 chunk 밝기 / 선명도기존 LoRAstep 250step 750step 1,500
호떡62.1 / 6862.7 / 6574.3 / 17859.2 / 100
야구장59.9 / 13947.4 / 14656.6 / 16340.2 / 70
대장간75.2 / 14675.4 / 15252.5 / 12442.0 / 53
3,510클립 첫 chunk 비교
Figure 3: 3,510클립 학습의 첫 chunk 프레임 0/24/48. 왼쪽부터 기존 LoRA, step 250, 750, 1,500. step 1,500에서 어둡고 흐려지며, 호떡 클립은 ego 시점이 아닌 장면이 나온다.
과적합 가설 기각: 데이터가 11.7배여도 같은 step 수에서 같은 붕괴가 난다. 후보는 학습에서 kv cache를 끈 것, prefix 조건의 부작용, 학습률이며 구분하지 못했다.

4 Takeaway

의미

prefix 조건을 학습에 넣으면 chunk 간 연속성이 생긴다는 것은 확인됐다. 문제는 데이터다. 300클립을 약 20 epoch 반복하면서 처음부터 생성하는 품질이 무너졌다. 과적합이 가장 유력하지만 학습률, kv cache 설정 변경과는 분리하지 못했다.

5 Next Steps

붕괴 원인 분리

prefix 없이(--max_prefix_latents 0) 같은 학습을 750 step 돌리는 대조 실험. 이것도 무너지면 학습 설정(kv cache, 학습률) 문제, 아니면 prefix 조건의 부작용이다. checkpoint-10000의 원래 학습 설정을 확인하는 것이 가장 빠르다.

평가 보강

seed 3개 이상, 3 chunk(129프레임) 누적 drift, 첫 chunk 품질의 정량 지표.