Zettelkasten

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만으로 도달 가능한 수준이었다.

방법

  1. 학습 데이터의 이미지 컬럼만 랜덤 셔플 (라벨은 그대로 유지)
  2. 정상 데이터와 셔플 데이터로 동일 설정, 동일 iter 학습
  3. 각 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 하락만 보고 진행했다면 "모델이 이미지를 안 보는" 상태로 계속 학습했을 것이다.

참고