Image Shuffle Test는 VLM이 이미지를 보는지 검증하는 필수 sanity check다
·수정 1회
요약
- VLM fine-tuning에서 loss가 떨어져도 모델이 이미지를 무시하고 텍스트 패턴만 학습할 수 있다
- 이미지-라벨 매칭을 의도적으로 깨뜨린 셔플 데이터와 정상 데이터의 loss를 비교하면 이를 검증할 수 있다
본문
왜 필요한가
Loss만 보면 함정에 빠진다. LoRA-only 실험에서 loss가 3.5까지 떨어졌지만, 실제로 모델은 이미지를 완전히 무시하고 compact notation의 문법/패턴만 외우고 있었다. Loss 3.5 = perplexity 33은 텍스트 문법 prior만으로 도달 가능한 수준이었다.
방법
- 학습 데이터의 이미지 컬럼만 랜덤 셔플 (라벨은 그대로 유지)
- 정상 데이터와 셔플 데이터로 동일 설정, 동일 iter 학습
- 각 iter에서 loss 비교
한쪽만 섞으면 이미지-라벨 매칭이 깨지므로 충분하다.
판정 기준
| Shuffle diff (정상 - 셔플) | 판정 |
|---|---|
| ≈ 0 | 모델이 이미지를 무시하고 있음 |
| 양수이고 커질수록 | 모델이 이미지를 보고 있음 |
실험 결과
| 접근법 | Shuffle diff @iter 100 | 판정 |
|---|---|---|
| LoRA-only (frozen projector) | +0.05 | 이미지 무시 |
| Projector unfreeze (784×1120) | +0.67 | 이미지 봄 |
| No-resize (원본) | +0.07 | 이미지 무시 |
| Fold 전처리 | +0.16 | 미약하지만 있음 |
의사결정에 미친 영향
- LoRA-only에서 diff ≈ 0 발견 → projector unfreeze로 전환 (loss 3.5 plateau 돌파)
- No-resize에서 diff ≈ 0 발견 → 원본 이미지의 극단적 grid가 문제임을 확인 → fold 전처리 도입
loss 하락만 보고 진행했다면 "모델이 이미지를 안 보는" 상태로 계속 학습했을 것이다.