Zettelkasten

VLM에서 극단적 aspect ratio는 리사이즈해도, 원본을 넣어도 학습을 실패시킨다

·수정 2026.05.05·수정 3

요약

  • 극단적 aspect ratio 이미지(5000×150급)는 리사이즈해도, 원본을 넣어도 VLM 학습이 실패한다
  • 두 경로 모두 실패하는 이유가 다르며, Fold 전처리로 동시에 해결할 수 있다

본문

배경

합창 악보 OMR을 위해 Qwen2.5-VL-3B를 fine-tuning했다. System crop 이미지는 가로로 매우 긴 형태(5313×142, aspect ratio 37:1)다. 이걸 VLM에 넣는 방법이 두 가지인데, 둘 다 실패한다.

경로 A: 리사이즈 → 정보 소실

--image-resize-shape 784 1120으로 aspect ratio를 유지하면서 맞추면:

  • 5313×142 → 784×21px (가로 기준 스케일 0.147)
  • smart_resize 후 784×28 → grid 28×1 → 7 vision tokens
  • 오선지 5줄이 21px에 압축되면 줄 간격 구분 불가 → 피치를 읽을 수 없음

결과: shuffle test diff +0.67 (이미지를 보긴 함), loss 2.16까지 도달하지만 추론에서 피치/리듬 부정확.

경로 B: 원본 유지 → PatchMerger 실패

리사이즈를 제거하면:

  • 5313×142 → smart_resize 5320×140 → grid 200×5 → 231 vision tokens
  • 정보는 충분하지만, grid가 극단적으로 가로로 긴 1D-like 배열
  • PatchMerger는 사전학습 때 정사각형에 가까운 grid를 봤으므로 이 배열을 의미있게 처리 못 함

결과: shuffle test diff +0.07 (이미지를 거의 안 봄), loss 4.0 plateau.

핵심 대비

경로 A (리사이즈) 경로 B (원본)
정보량 7 tokens (없음) 231 tokens (충분)
Grid 형태 28×1 (작지만 처리 가능) 200×5 (극단적, 처리 불가)
Shuffle diff +0.67 (봄) +0.07 (안 봄)
실패 원인 정보 소실 처리 실패

"정보 있지만 처리 못 함" vs "처리하지만 정보 없음" — 두 경로가 서로 다른 이유로 실패한다.

해결: Fold 전처리

가로로 긴 이미지를 K등분하여 세로로 쌓는다:

  • 5313×142 → 4 strips (1329×142) → 세로 스택 + 28px white gutter → 1329×624
  • Grid: 46×18 — 거의 정사각형
  • 정보 보존 + PatchMerger가 처리할 수 있는 형태

결과: loss 4.0 plateau를 돌파하여 2.97까지 하락 (아직 하락 중, 1200 iter 기준).

참고