Sprint 1 Status Report
작성일: 2026-05-14 22:00 KST · 시연 목표일: 2026-05-18
한 줄 요약
MobileCLIP2-S4를 image recognizer로 확정(ADR-0004), 13-class 데이터셋 split 완료, 학습 config v2(ADR-0005) 적용 완료. 서버에서 fold0 학습 시작 직전 상태.
완료된 작업
| 작업 | 결과 | 산출물 |
|---|---|---|
| ✓ 데이터셋 수집 및 정제 | 13 landmarks, 4,699 records, 4,457 confirmed | Dataset/ 13 폴더 + labels_master.json |
| ✓ 한글 파일명 ASCII 변환 | gwanghwamun 53장, gyeongbokgung_geunjeongmun 98장 rename 완료 | labels.json 동기화, 검증 통과 |
| ✓ Split 생성 (서버) | 13 classes, trainval 3,788, test 669, holdout 242 | splits/kfold_seed20260513.json, fingerprint 3bd290fc |
| ✓ 4-class pilot 학습 (fold0) | 4 모델 비교 완료. val_top3 saturated, test_top1 mc2_s4 1위 | W&B runs, wandb_exports/ CSV |
| ✓ 모델 선정 결정 | MobileCLIP2-S4 단일 후보 확정, MobileNetV4-Hybrid fallback | ADR-0004 |
| ✓ 학습 config v2 설계 | batch 14, cosine+warmup, aug 완화, sqrt-weighted CE, per-class metric | ADR-0005, 수정된 train.py |
| ✓ 서버 환경 준비 | 4 GPU 기본, EXPORT_ONNX=0, tmux 스크립트 | commit b69c04d |
진행 중
| 작업 | 상태 | 다음 단계 |
|---|---|---|
| ▶ 13-class fold0 학습 | 서버에 코드 push 후 실행 대기 | git pull → bash scripts/run_candidate_tmux.sh mobileclip2_s4 0 |
남은 작업 (우선순위 순)
| # | 작업 | 예상 소요 | 의존성 |
|---|---|---|---|
| 1 | fold0 학습 완료 → metrics.json 확인, per-class 분석 | ~30분 (학습 자체) | 서버 실행 |
| 2 | per-class gate 검증: 최저 클래스 val_top1 ≥ 0.90 | 5분 | #1 |
| 3 | fold 1-4 학습 (5-fold mean ± std 확보) | ~2시간 | #2 통과 |
| 4 | ONNX export + reparameterize smoke test | 15분 | #3 완료 |
| 5 | Python local inference demo (사진 → Top-3 출력) | 30분 | #4 |
| 6 | OOD gate: holdout 242장 cosine similarity 분포 확인 | 15분 | #4 |
| 7 | Flutter/노트북 demo 연동 (Demo Ladder) | 1-2시간 | #5 |
데이터셋 현황
| 클래스 | trainval | test | holdout | 비고 |
|---|---|---|---|---|
| bohyunsanshingak | 212 | 38 | 0 | |
| changgyeonggung | 505 | 89 | 6 | |
| cheonggyecheon | 60 | 10 | 1 | ⚠ 매우 적음 |
| cheongwadae | 196 | 35 | 10 | |
| deoksugung | 432 | 76 | 2 | |
| gwanghwamun | 44 | 8 | 1 | ⚠ 매우 적음 |
| gyeongbokgung_geunjeongmun | 83 | 15 | 0 | 주의 |
| jogyesa | 161 | 28 | 0 | |
| jongmyo_shrine | 502 | 88 | 0 | |
| mmca_seoul | 406 | 72 | 105 | |
| myeongdong_cathedral | 504 | 89 | 98 | |
| naksan_park | 458 | 81 | 19 | |
| statue_of_king_sejong | 225 | 40 | 0 | |
| 합계 | 3,788 | 669 | 242 |
dataset_fingerprint: 3bd290fcd8bb73f5b7fe3a0694ef50b1c6597dba
의사결정 트레일
| 문서 | 핵심 결정 |
|---|---|
| ADR-0001 | Retrieval-first + auxiliary classification 구조 |
| ADR-0002 | Teacher-assisted student, CE+ArcFace+KD loss 단계적 적용 |
| ADR-0003 | Dual-engine retrieval (image + text + keyword fusion) |
| ADR-0004 | MobileCLIP2-S4 단일 후보 확정, verification gates 정의 |
| ADR-0005 | Batch 14, cosine+warmup, aug 완화, sqrt-weighted CE |
리스크
| 리스크 | 영향 | 완화 |
|---|---|---|
| gwanghwamun 44장 / cheonggyecheon 60장 per-class 성능 불안정 | test 1장 틀리면 12.5% / 10% 하락 | sqrt-weighted CE 적용, per-class metric 모니터링, 데이터 추가 수집 검토 |
| batch 14에서 P100 OOM | 학습 중단 | 12로 즉시 fallback, yaml만 수정 |
| MobileCLIP2-S4 ONNX export 실패 (reparameterize 이슈) | Demo Ladder 차질 | MobileNetV4-Hybrid fallback 보유, export smoke를 fold0 직후 실행 |
| 시연일(05-18)까지 5-fold 완료 불가 | fold0 단일 결과로 시연 | fold0 per-class gate 통과 시 시연 진행, 5-fold는 사후 보완 |
서버 실행 명령 (즉시)
cd /workspace/landmark-assistant-model
git pull
source .venv/bin/activate
export DATA_ROOT=/workspace/landmark-assistant-model/Dataset
bash scripts/run_candidate_tmux.sh mobileclip2_s4 0
로그 확인: tail -f logs/jongno-mobileclip2_s4-fold0.log
GPU 확인: watch -n 2 nvidia-smi
완료 후: cat $(ls -td runs/mobileclip2_s4_fold0_* | head -1)/metrics.json