Multimodal Model Selection Plan

작성일: 2026-05-14 · 목적: 이미지 인식, 텍스트 검색, fusion 모델의 최종 결정 기준

Goal

최종 모델은 단일 accuracy로 고르지 않는다. 이미지 인식, 자연어 검색, 범위 외 거절, 배포 가능성을 함께 평가해 Sprint 1 데모와 Sprint 2 확장 모두에 설득력 있는 후보를 선택한다.

Current Evidence

후보 현재 fold0 내부 test 관찰 해석
MobileCLIP2-B Top-1 약 98.9%, Top-3 100%, ONNX export 성공. 현재 1순위 후보. 단, 4-class 내부 test라 일반화 성능으로 과장 금지.
MobileCLIP2-S4 Top-1 약 98.2%, Top-3 약 99.3%. 강하지만 크기 대비 B보다 우위가 뚜렷하지 않다.
MobileNetV4 Hybrid Large Top-1 약 97.8%, Top-3 100%. 강한 image-only baseline. 자연어 검색은 별도 text engine 필요.
MobileCLIP2-S3 Top-1 약 95.7%, Top-3 약 99.3%. 현 결과 기준 우선순위 낮음. checkpoint selection 수정 후 재확인.
현재 결과는 기존 checkpoint selection이 val_top3 중심이던 run을 포함한다. 4-class에서 Top-3는 너무 쉬우므로, 이후 실험은 val_top1 우선으로 checkpoint를 선택한다.

Evaluation Tracks

Track 질문 주요 지표 필수 데이터
Vision closed-set 지원 범위 내 사진을 얼마나 정확히 맞히는가? Top-1, Top-3, macro-F1, confusion matrix. strict train/val/test split, class-balanced test.
Vision reject 지원 범위 밖 사진을 아는 척하지 않는가? AUROC, FPR@95TPR, rejection accuracy, top1-top2 margin. non-target landmark, 실내/사람/음식/일반 여행 사진.
Text retrieval 랜드마크 이름을 몰라도 설명으로 찾을 수 있는가? Recall@1, Recall@3, MRR, nDCG, unknown query rejection. query set: exact, alias, descriptive, no-name, typo, bilingual.
Fusion 사진과 텍스트 힌트를 같이 넣으면 더 좋아지는가? scenario success rate, Top-1 improvement, false accept rate. image + hint pairs, ambiguous/hard case set.
Deployment 실제 기기/노트북에서 감당 가능한가? model size, RAM, latency p50/p95, export success. phone if available, otherwise ONNX Runtime laptop fallback.

Strict Data Checks

  1. Exact duplicate: SHA1이 같은 이미지는 split을 가로지르지 않는다.
  2. Near duplicate: pHash 또는 image embedding cosine으로 train-test nearest neighbor를 점검한다.
  3. Source/session split: 같은 촬영 세션, 같은 웹 출처, 같은 연속 이미지가 가능하면 같은 split에 머물게 한다.
  4. Blind test: 팀원이 새로 스마트폰으로 찍은 사진 100~200장을 최종 외부 test로 따로 둔다.
  5. Hard cases: 전통 건축물 유사군, 멀리서 찍은 사진, 야간, 부분 가림, 군중/배경 clutter를 slice로 태깅한다.

Text Query Set

각 landmark마다 최소 10개 query를 만든다. 15개 landmark면 150개 이상이다.

유형 예시 목적
Exact name 낙산공원, Naksan Park 이름 검색 기본선.
Alias 서울성곽길, 한양도성 공원 별칭과 관광객 표현 확인.
No-name descriptive 성의 외곽같은 모양의 돌담이 있는 공원 이번 변경의 핵심 기능 검증.
English descriptive a park with stone walls that look like a fortress wall 외국인 관광객 검색 시나리오.
Unknown/OOD 바다가 보이는 등대, 놀이기구가 있는 공원 지원 범위 밖 텍스트 query 거절.

Model Comparison Protocol

  1. Vision 후보는 동일 split, 동일 epoch budget, 동일 early stopping rule로 비교한다.
  2. Vision checkpoint는 val_top1 우선, val_top3 보조로 선택한다.
  3. Text 후보는 BM25, MobileCLIP2 text encoder, multilingual-e5-small을 같은 query set에서 비교한다.
  4. Fusion은 image-only, text-only, image+text 세 가지를 분리해 ablation으로 보고한다.
  5. Locked test는 최종 후보 1~2개 선정 전까지 threshold tuning에 사용하지 않는다.

Final Scorecard

항목 가중치 평가 기준
Vision recognition 30% strict split Top-1, macro-F1, hard-case 성능.
Reject reliability 20% 지원 범위 외 false accept를 얼마나 줄이는가.
Text retrieval 20% 이름 없는 설명형 query와 bilingual query의 Recall@1/3.
Fusion benefit 10% 사진만 애매한 경우 텍스트 힌트가 실제로 개선하는가.
Deployment 15% 모델 크기, latency, ONNX/TFLite/CoreML 변환 가능성.
Explainability 5% 오답 분석, confusion, confidence log가 보고 가능한가.

Stop Criteria

아래 조건을 만족하면 최종 모델 결정을 내릴 수 있다.

  1. 최소 8개 이상 landmark가 포함된 strict split 기준 vision 성능이 안정적이다.
  2. near-duplicate audit 결과를 보고서에 포함했다.
  3. text query set에서 BM25 baseline보다 text encoder가 유의미하게 우수하거나, BM25가 충분하면 그 이유를 설명했다.
  4. reject threshold가 known/unknown validation set에서 정해졌고 locked test에 재튜닝하지 않았다.
  5. 최종 artifact package와 앱/노트북 데모 경로가 존재한다.

Immediate Commands and Work Items

# server side, after pulling latest checkpoint-selection fix
git pull
export DATA_ROOT=/workspace/landmark-assistant-model/Dataset

# vision candidate screening, no ONNX during comparison
EXPORT_ONNX=0 GPUS=1,2,3,4 NPROC=4 bash scripts/run_candidate_tmux.sh mobileclip2_b 0
EXPORT_ONNX=0 GPUS=1,2,3,4 NPROC=4 bash scripts/run_candidate_tmux.sh mobileclip2_s4 0
EXPORT_ONNX=0 GPUS=1,2,3,4 NPROC=4 bash scripts/run_candidate_tmux.sh mobilenetv4_hybrid_large 0

# next implementation tasks
# 1. landmark_info.json schema
# 2. text query evaluation set
# 3. BM25 baseline
# 4. text encoder embedding baseline
# 5. fusion score evaluator