Skip to content

jayn2u/lab_siglip

Repository files navigation

lab-siglip

출력 구조

학습 체크포인트

학습 결과는 아래 경로에 저장됩니다.

model/<model_id>/<run_dir>/epoch-XX

  • model_id: 모델 이름의 마지막 토큰 (예: siglip-base-patch16-384)
  • run_dir 형식: YYYYMMDD-HHMMSS__<hparam-slug>
  • epoch-XX: 에폭별 체크포인트 폴더 (예: epoch-03)

예시:

model/siglip-base-patch16-384/20260220-201327__alpha-0p5__bs-16__epochs-3__lr-1e-05__teacher-siglip-large-patch16-384__temp-2__wd-0p01/epoch-03

epoch-XX 폴더에는 다음과 같은 파일이 포함됩니다.

  • config.json
  • model.safetensors
  • preprocessor_config.json
  • metrics.json

로그 파일

로그는 아래 경로에 저장됩니다.

logs/<YYYY-MM-DD>/<logger_name>/<run_group>/<YYYY-MM-DD_HH-MM-SS>_<logger_name>.log

KD 학습 로그는 아래처럼 teacher/student 기준으로 한 단계 더 그룹화됩니다.

logs/<YYYY-MM-DD>/kd/<teacher_model>_<student_model>/<YYYY-MM-DD_HH-MM-SS>_kd.log

  • 날짜 폴더로 로그를 구분해 가독성을 높였습니다.
  • run_group가 없는 기본 학습 로그는 <logger_name>과 동일한 이름의 하위 폴더를 한 단계 더 사용합니다.
  • 파일명에는 날짜, 시간, logger/model id가 포함됩니다.

예시:

logs/2026-02-22/eval_recall/siglip-base-patch16-384/2026-02-22_14-37-52_eval_recall.log

기본 학습 로그 예시:

logs/2026-02-22/siglip-base-patch16-384/siglip-base-patch16-384/2026-02-22_09-12-10_siglip-base-patch16-384.log

파인튜닝 체크포인트로 평가할 경우, 로그명에 모델 id + run timestamp + epoch가 포함됩니다.

logs/2026-02-22/eval_map/ft-siglip-so400m-patch14-384__20260222-135834__epoch-03/2026-02-22_17-00-37_eval_map.log

스크립트 구성

  • 학습 스크립트: src/train/
  • 평가 스크립트: src/eval/
  • ONNX 배포 스크립트: export/onnx_export/

ONNX Export (배포)

단일 백본(HF 모델 ID) export:

uv run export/onnx_export/export_siglip_onnx.py \
  --model-name google/siglip-base-patch16-384

단일 파인튜닝 체크포인트 export:

uv run export/onnx_export/export_siglip_onnx.py \
  --model-path model/siglip-base-patch16-384/<run_dir>/epoch-03

기본 백본 전체(base, large, so400m) export:

uv run export/onnx_export/export_all_backbones.py

아티팩트 저장 경로: export/onnx_export/artifacts/<model_tag>/

포함 파일:

  • text_encoder.onnx
  • image_encoder.onnx
  • export_meta.json

배치 평가 (All-in-One)

여러 평가 스크립트를 한 번에 실행:

uv run src/eval/run_all_evals.py \
  --backbone-name google/siglip-base-patch16-384

학습 체크포인트로 실행:

uv run src/eval/run_all_evals.py \
  --model-path model/siglip-base-patch16-384/<run_dir>/epoch-03

기본 실행 메트릭: recall, precision, f1, accuracy, map

일부 메트릭만 선택하고 Top-K 제어:

uv run src/eval/run_all_evals.py \
  --backbone-name google/siglip-so400m-patch14-384 \
  --metrics recall,precision,f1 \
  --topk 1,10

Recall@K 평가

사전학습 백본 평가:

uv run src/eval/eval_recall.py --model-name google/siglip-base-patch16-384

--topk를 생략하면 기본값 1,5,10을 사용합니다.

학습 체크포인트 평가:

uv run src/eval/eval_recall.py \
  --model-path model/siglip-base-patch16-384/<run_dir>/epoch-03 \
  --topk 1,5,10

특정 K만 평가:

uv run src/eval/eval_recall.py \
  --model-name google/siglip-so400m-patch14-384 \
  --topk 1,10

mAP 평가

사전학습 백본 평가:

uv run src/eval/eval_map.py --model-name google/siglip-base-patch16-384

학습 체크포인트 평가:

uv run src/eval/eval_map.py \
  --model-path model/siglip-base-patch16-384/<run_dir>/epoch-03

Precision@K 평가

사전학습 백본 평가:

uv run src/eval/eval_precision.py --model-name google/siglip-base-patch16-384

--topk를 생략하면 기본값 1,5,10을 사용합니다.

학습 체크포인트 평가:

uv run src/eval/eval_precision.py \
  --model-path model/siglip-base-patch16-384/<run_dir>/epoch-03 \
  --topk 1,5,10

Accuracy 평가

사전학습 백본으로 retrieval Accuracy(Top-1) 평가:

uv run src/eval/eval_accuracy.py --model-name google/siglip-base-patch16-384

학습 체크포인트로 retrieval Accuracy(Top-1) 평가:

uv run src/eval/eval_accuracy.py \
  --model-path model/siglip-base-patch16-384/<run_dir>/epoch-03

F1@K 평가

사전학습 백본 평가:

uv run src/eval/eval_f1.py --model-name google/siglip-base-patch16-384

--topk를 생략하면 기본값 1,5,10을 사용합니다.

학습 체크포인트 평가:

uv run src/eval/eval_f1.py \
  --model-path model/siglip-base-patch16-384/<run_dir>/epoch-03 \
  --topk 1,5,10

About

Knowledge Distillation with Google SigLIP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors