Sprint 1 모델 학습 Goal

상태: Active · 작성일: 2026-05-13 · Owner: 6조 모델/온디바이스 담당

Goal Statement

오늘 안에 Google Drive 데이터셋을 학습 서버에 고정 스냅샷으로 가져오고, 10~13개 랜드마크에 대해 retrieval-first baseline을 실행한 뒤, Sprint 1 앱 탑재를 위한 경량 student 모델 학습을 시작한다. 설계 문서 준비도는 별도 scorecard에서 95/100 이상이면 종료 가능 상태로 본다.

Sprint 1의 최종 데모는 앱 형태가 아니어도 되지만, 외부 inference server 없이 local/on-device runtime에서 모델이 실행되고 사용자 사진 입력, Top-3 검색 결과 출력, 범위 외 안내 문구까지 연결되어야 한다. 다음 시연일은 2026-05-18로 보고, 휴대폰 탑재가 안 되면 노트북 ONNX runtime 데모를 fallback으로 사용한다. 학습 서버는 Ubuntu 20.04 LTS, 8 × NVIDIA Tesla P100 PCIe 16GB, 128GB RAM, CUDA 12.2 기준으로 설계한다. 앱 구현과 상세정보 DB는 팀원이 담당하고, 모델 팀은 모델 개발, ONNX 변환, local/on-device inference, serving contract에 집중한다. Sprint 1 handoff package는 landmark_encoder.onnx, preprocessing.json, prototype_index.json, labels_master.json로 고정한다.

완료 기준

완료 항목 검증 방법 오늘의 최소 기준
데이터 스냅샷 고정 labels.json, image count, class count, missing file count, split manifest 저장 class별 train/val/test 개수 확인
Baseline embedding 평가 DINOv3 visual teacher와 SigLIP2 image-text teacher를 frozen baseline으로 비교 Top-3 Accuracy, Recall@K, confusion matrix를 baseline으로 기록
Rejection/calibration 평가 reject/not_landmark 또는 out-of-scope 세트로 Top1 score, Top1/Top2 margin, reject AUROC 또는 coverage@accuracy 산출 negative가 부족하면 부족 사실과 추가 수집 항목을 기록
Fine-tuning 시작 1 batch overfit, single-GPU smoke, small epoch baseline 후 학습 로그와 config 저장 1개 실험이 실제 train step을 통과
Experiment tracking W&B run config, metrics, dataset/split artifact, checkpoint artifact 기록 W&B run URL 또는 run id 확보
자동 백업 run directory를 rclone으로 Google Drive backup path에 업로드 backup URI와 업로드 로그 확보
배포 경로 검증 student 모델 후보의 ONNX export, target runtime, preprocessing parity 확인 dummy input과 실제 validation image로 ONNX Runtime 추론 성공
기술 시현 UI Flutter 앱 또는 Python local demo에서 사진 입력, percentage Top-3 출력, 상세정보 연결 확인 휴대폰 ONNX가 최선, 실패 시 노트북 ONNX local runtime으로 동작
문서화 ADR, runbook, dataset contract, goal 문서 갱신 commit 전 hook이 문서 링크를 통과

오늘의 우선순위

  1. Google Drive 데이터셋을 versioned archive로 고정하고 서버 로컬 디스크에 직접 다운로드하는 방식 확정.
  2. 학습 서버 기준 실행 전략 확정: 8 × Tesla P100 16GB에서 single-node DDP, FP32 smoke 후 FP16 AMP.
  3. 입력 형태 확정: 앱 사용자는 image-only, 모델 학습은 image-text captions를 보조로 사용하는 구조로 가정.
  4. 모델 비교 gate 확정: DINOv3는 visual teacher, SigLIP2는 image-text teacher로 frozen baseline 비교.
  5. 학습 평가 지표 확정: Top-3 Accuracy와 rejection/calibration을 모두 primary로 둔다.
  6. Target runtime 확정: Flutter 앱, local web, desktop demo 중 Sprint 1 기술 시현 표면을 정한다.
  7. 데이터 업로드 구조를 Datasets/<landmark_id>/labels.json + Datasets/<landmark_id>/images/로 고정하고 master manifest 병합 규칙을 확정한다.
  8. 모델 팀과 앱 팀 사이의 landmark_id, Top-3 output, status contract를 고정한다.
  9. W&B project/entity와 Google Drive backup remote를 서버 환경변수로 확정한다.

지금 필요한 질문

  1. Google Drive 데이터셋을 tar.zst 또는 zip 단일 archive로 만들 수 있나요? 가능하면 서버에서 직접 다운로드할 공유 링크가 필요합니다.
  2. nvidia-smi에서 8장 모두 정상 인식되고, 각 GPU가 비어 있는 시간대를 확보할 수 있나요?
  3. Top-3 confidence percent를 어떤 기준으로 보정할까요? 단순 min-max, softmax, validation calibration 중 선택 필요.
  4. 10~13개 카테고리의 최종 landmark_id 목록은 고정인가요, Sprint 중에 추가될 가능성이 있나요?
  5. AI 생성 이미지/비랜드마크/서울 외 장소 negative 데이터가 별도로 있나요?
  6. W&B entity 이름과 Google Drive backup 대상 폴더 또는 rclone remote 이름은 무엇으로 둘까요?