CUHK-PEDES 기반 MobileCLIP 학습/평가 실험 레포입니다.
../lab_clip의 파이프라인 구조를 가져오고, 모델 로딩은 demo.py 기준 MobileCLIP(OpenCLIP) 방식으로 맞춘 버전입니다.
- 기본 모델 포맷:
MobileCLIP-<variant>::<pretrained_tag> - 기본 프리셋:
MobileCLIP-S1::datacompdr,MobileCLIP-S2::datacompdr,MobileCLIP-B::datacompdr,MobileCLIP-B::datacompdr_lt,MobileCLIP2-S0::dfndr2b,MobileCLIP2-S2::dfndr2b,MobileCLIP2-S3::dfndr2b,MobileCLIP2-S4::dfndr2b,MobileCLIP2-B::dfndr2b,MobileCLIP2-L-14::dfndr2b - 호환 레이어:
src/utils/mobileclip_compat.py- 기존
CLIPModel/CLIPProcessor인터페이스를 유지하면서 MobileCLIP으로 동작
- 기존
src/train: 학습 스크립트src/eval/torch: 평가 스크립트src/core: 공통 train/eval 로직src/utils: 데이터로더, 로거, 체크포인트, MobileCLIP 어댑터src/demo.py: 단일 이미지 데모 추론
uv sync또는 이미 생성된 venv 사용:
.venv/bin/python --version- 기본 경로:
data/CUHK-PEDES - 사용 파일:
data/CUHK-PEDES/caption_all.jsondata/CUHK-PEDES/imgs/...
.venv/bin/python src/demo.py커스텀 이미지:
.venv/bin/python src/demo.py --image-path /path/to/image.png백본 모델과 학습 체크포인트 구조를 함께 출력:
.venv/bin/python src/print_model_structure.py \
--model-name MobileCLIP2-S4::dfndr2b \
--model-path model/<model_id>/<run_dir>/epoch-03- S1:
.venv/bin/python src/train/mobileclip-s1.py- S2:
.venv/bin/python src/train/mobileclip-s2.py- B:
.venv/bin/python src/train/mobileclip-b.py- B (lt):
.venv/bin/python src/train/mobileclip-b-lt.py- MobileCLIP2-S0:
.venv/bin/python src/train/mobileclip2-s0.py- MobileCLIP2-S2:
.venv/bin/python src/train/mobileclip2-s2.py- MobileCLIP2-S3:
.venv/bin/python src/train/mobileclip2-s3.py- MobileCLIP2-S4:
.venv/bin/python src/train/mobileclip2-s4.py- MobileCLIP2-B:
.venv/bin/python src/train/mobileclip2-b.py- MobileCLIP2-L-14:
.venv/bin/python src/train/mobileclip2-l-14.py.venv/bin/python src/train/knowledge_distillation.py \
--teacher-name MobileCLIP-B::datacompdr \
--student-name MobileCLIP-S2::datacompdrRecall 단일 실행:
.venv/bin/python src/eval/torch/eval_recall.py \
--dataset-root data/CUHK-PEDES \
--model-name MobileCLIP-S2::datacompdr \
--topk 1,5,10전체 평가 일괄 실행:
.venv/bin/python src/eval/torch/run_all_evals.py \
--dataset-root data/CUHK-PEDES \
--model-name MobileCLIP-S2::datacompdr \
--metrics all \
--topk 1,5,10학습 체크포인트 평가:
.venv/bin/python src/eval/torch/run_all_evals.py \
--dataset-root data/CUHK-PEDES \
--model-path model/<model_id>/<run_dir>/epoch-03 \
--metrics all이미지/텍스트 백본 ONNX 내보내기:
.venv/bin/python export/onnx/export_clip_backbone_onnx.py \
--model-name MobileCLIP2-S4::dfndr2b로컬 체크포인트 기준 내보내기:
.venv/bin/python export/onnx/export_clip_backbone_onnx.py \
--model-path model/<model_id>/<run_dir>/epoch-03- 체크포인트:
model/<model_id>/<run_dir>/epoch-XX - 로그:
logs/<logger_name>/<run_group>/<YYYY-MM-DD>/<timestamp>_<logger_name>.log
- 처음 실행 시 모델 가중치 다운로드를 위해 네트워크가 필요합니다.
- 오프라인 환경에서는 사전 캐시된 모델 또는 저장된 로컬 체크포인트(
--model-path)를 사용하세요.