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이 문서 링크를 통과 |
오늘의 우선순위
- Google Drive 데이터셋을 versioned archive로 고정하고 서버 로컬 디스크에 직접 다운로드하는 방식 확정.
- 학습 서버 기준 실행 전략 확정: 8 × Tesla P100 16GB에서 single-node DDP, FP32 smoke 후 FP16 AMP.
- 입력 형태 확정: 앱 사용자는 image-only, 모델 학습은 image-text captions를 보조로 사용하는 구조로 가정.
- 모델 비교 gate 확정: DINOv3는 visual teacher, SigLIP2는 image-text teacher로 frozen baseline 비교.
- 학습 평가 지표 확정: Top-3 Accuracy와 rejection/calibration을 모두 primary로 둔다.
- Target runtime 확정: Flutter 앱, local web, desktop demo 중 Sprint 1 기술 시현 표면을 정한다.
- 데이터 업로드 구조를
Datasets/<landmark_id>/labels.json+Datasets/<landmark_id>/images/로 고정하고 master manifest 병합 규칙을 확정한다. - 모델 팀과 앱 팀 사이의
landmark_id, Top-3 output, status contract를 고정한다. - W&B project/entity와 Google Drive backup remote를 서버 환경변수로 확정한다.
지금 필요한 질문
- Google Drive 데이터셋을
tar.zst또는zip단일 archive로 만들 수 있나요? 가능하면 서버에서 직접 다운로드할 공유 링크가 필요합니다. nvidia-smi에서 8장 모두 정상 인식되고, 각 GPU가 비어 있는 시간대를 확보할 수 있나요?- Top-3 confidence percent를 어떤 기준으로 보정할까요? 단순 min-max, softmax, validation calibration 중 선택 필요.
- 10~13개 카테고리의 최종 landmark_id 목록은 고정인가요, Sprint 중에 추가될 가능성이 있나요?
- AI 생성 이미지/비랜드마크/서울 외 장소 negative 데이터가 별도로 있나요?
- W&B entity 이름과 Google Drive backup 대상 폴더 또는 rclone remote 이름은 무엇으로 둘까요?