본문 바로가기

Capstone

[ Meeting ] 5월 3주차 - use pre-quantization model

피드백

1. TinyCLIP 양자화 힘들다

2. 이미 양자화된 모델 쓰는 것 추천

  • 직접 양자화 하는 것보다 이미 INT8/FP16 등으로 제공되는 pretrained 모델 선택하는 게 더 효율적
  • 실시간 응답성과 정확도가 중요하면 더욱

3. PAR 과거 방식 사용하는 것도 괜찮음

  • 실험적으로 옛 방식이 잘 돌아가면 그걸 채택해도 됨
  • 뒷부분(classifier/head)만 파인튜닝하면 됨

4. MSP60 데이터셋과 맞는 사전학습 모델 조사 필요

  • MSP60K와 유사한 목적의 경량 모델 먼저 찾아보고 적용해보기

 

Q. TinyCLIP 전용 인코더가 있는지? 

- TinyCLIP은 CLIP 구조 본떠서 경량화한 별개의 구조 가진 모델

- CLIP: ViT-B/32 RN50 같은 기존 백본 사용해 이미지 인코더 구성, 텍스트 인코더는 GPT-like 구조

- TinyCLIP: 

  • 훨씬 작은 ViT 변종 또는 MobileNet 스타일의 백본 쓰는 이미지 인코더 사용
  • 텍스트 인코더도 작아짐
  • 전체 구조를 더 작고 더 빠르지만 CLIP처럼 멀티모달하게 학습시킨 것

이미 양자화된 모델 사용하자

    -> 전체 모델 재학습 X, MSP60K 데이터셋에 맞춰 파인튜닝

 


MSP60K 데이터셋 활용한 연구에 사용된 모델들

 

1. LLM-PAR (Large Language Model Augmented PAR)

  • Vision Transformer(ViT) 백본 기반으로, 부분 인식 및 속성 분류 위한 Multi-Embedding Query Transformer 도입한 모델
  • LLM 활용해 시각적 특징 보강하고 앙상블 학습 수행

2. Mamba-PAR

  • 선형 복잡도 갖는 Mamba 아키텍처 기반으로 한 모델로, Transformer 대비 연산량 적음
  • 텍스트-이미지 융합 접근 방식과 순수 비전 기반 다중 레이블 인식 프레임워크 제공

3. PromptPAR

  • CLIP 기반 비전-언어 융합 모델
  • 속성 문장 확장해 시각적 특징과 결합
  • Region-aware Prompt Tuning 기법 통해 전체 파라미터의 0.75%만 조정해 효율적인 파인튜닝 가능

4. SNN-PAR

  • 스파이킹 뉴럴 네트워크(SNN) 활용한 에너지 효율적인 PAR 모델
  • 스파이킹 토크나이저와 스파이킹 Transformer 백본 통해 에너지 효율성 극대화

 

MSP60K + 최신 경량화 모델 실험 -> 있음

MSP60K + 양자화 모델 적용 실험 -> 없음 (INT8, FP16, QAT, PTQ 등 포함)

 


ViT-1.58B: Mobile Vision Transformers in the 1-bit Era

  • 1-bit quantization 기반 → 극한의 경량화와 연산 효율성을 목표로 한 모델
  • 기존 ViT 대비 훨씬 적은 메모리 사용, 연산량 절감
  • 논문에 따르면 다양한 vision task에 competitive한 성능 제공
  • 추론용 성능, FLOPs에서 큰 절감 효과가 있음

    하지만..

  • 모델이 공개되어 있지 않음
  • 학습/ 파인튜닝/ 디코더 연동 직접 해야 함

 

Intel/vit-base-patch16-224-int8-static-inc

  • 특징: Intel® Neural Compressor 사용해 정적 양자화된 ViT-B/16 모델
  • 장점: ImageNet-1K에서 미세한 정확도 손실로 INT8 양자화 적용됨
  • 파인튜닝 가능 여부: PyTorch 기반. MSP60K 데이터셋에 맞춰 파인튜닝 가능
  • 링크:  https://huggingface.co/Intel/vit-base-patch16-224-int8-static-inc
 

Intel/vit-base-patch16-224-int8-static-inc · Hugging Face

The INT8 model based on vit-base-patch16-224 which finetuned on imagenet-1k Post-training static quantization This is an INT8 PyTorch model quantized with Intel® Neural Compressor. The original fp32 model comes from the fine-tuned model google/vit-base-pa

huggingface.co

 

 

  • Hugging Face에 올라와 있는 모델 중 이미 양자화되어 있으면서 PAR work에 특화된 모델은 거의 없음
  • yujiepan/internal.swin-base-food101-int8-structured40음식에 파인튜닝됨 -> MSP60K와 맞지 않음
  • 대부분의 모델은 음성, 음식, 의료, OCR, 특정한 이미지 분류에 최적화되어 있음
  • 더 작은 양자화된 모델들은 대부분CPU 최적화 (int8 + ARM 최적화) 되어 있음 

-> intel/vit-base-patch16-224-int8-static-inc 모델로 실험


Baseline Model은 변경없음: CLIP, TinyCLIP

기존 SOTA 기반 대형 모델(CLIP, TinyCLIP)과 비교해 양자화된 경량 이미지 인코더가 속도에서 이득 가져오면서도 성능 얼마나 유지할 수 있는지 분석


Baseline CLIP, TinyCLIP (FP32) 성능 기준
시도됨 FP16, ONNX-FP32/FP16 성능 저하 확인
진행 intel/vit-base-patch16-224-int8-static-inc 양자화된 모델 성능 해야 함

 

-> 해당 모델 ONNX 파일 제공하지 않음,

     PyTorch 로딩 안 됨 - weight decoding 실패 (QuantizedMeta 관련)

 


1. LightCLIP

  • 논문: arXiv:2312.00674
  • 장점: CLIP 성능 유지하면서 Vision encoder 축소, Multi-level interaction 구조 사용
  • 적용 가능성: 높음 (MSP60K에서 시도된 적 없지만 PAR 같은 fine-grained task에도 적합할 듯)
  • 파인튜닝: 가능 (Image encoder + classifier 부분)
  • 단점: HuggingFace에 배포된 사전학습 모델이 없을 수 있음 → 직접 구현 필요

2. MoPE-CLIP

  • 논문: CVPR 2024 논문 링크
  • 장점: 구조적 프루닝으로 encoder 정밀도 조정 + 성능 유지
  • 단점: 코드 구현체가 HuggingFace에 직접 제공되지 않음 → clone 후 파인튜닝 필요
  • 적합성: 보행자 세부 속성과 같이 레이블이 많은 multi-attribute task에 적합

3. DeiT-Tiny + Custom Head

  • HuggingFace: facebook/deit-tiny-patch16-224
  • 장점: ViT 구조 기반의 이미지 인코더 중 가장 작고 빠름 
  • 전략: CLIP처럼 텍스트 인코더 없이 image encoder + classification head 구성
  • 양자화 필요 (PyTorch Dynamic Quantization 또는 ONNX FP16)
  • 적합성: 매우 높음 (이미 실험 많음, MSP60K에도 적합)

 

사전 양자화 모델 검토 결과

도메인 부적합, 호환성 문제, 성능 저하 등으로 실험 불가능하거나 의미 있는 결과 도출 어려움

 

실시간성과 경량화 모두 충족할 수 있는 DeiT-Tiny 선택

-> DeiT-Tiny + MSP60K Head Fine-tuning

 


1. DeiT 기본 구조

Input: 224×224 RGB 이미지

Patch Embedding: 이미지를 16×16 패치로 나누고, 각각을 linear projection (즉, 14×14 = 196개의 토큰 생성)

Positional Encoding: 각 패치에 위치 정보 더함

Transformer Encoder Blocks:

  • Multi-head Self-Attention
  • MLP (Feed Forward Layer)
  • LayerNorm + Residual 연결

[CLS] Token: 최종 분류 결과 뽑는 특수 토큰 사용

 

 

2.  주요 개선점

Knowledge Distillation 활용

  • Distillation Token을 하나 더 넣어서 CNN 기반 teacher 모델에게 지식 배울 수 있도록 함

No need for huge datasets

  • ViT는 JFT-300M 같은 초대형 데이터셋 필요하지만 DeiT는 ImageNet-1K만으로도 SOTA급 성능 가능

 

3. DeiT 모델  종류

모델 이름  Heads Hidden Dim Layers Params
DeiT-Tiny 3 192 12 ~5M
DeiT-Small 6 384 12 ~22M
DeiT-Base 12 768 12 ~86M

 

DeiT는 ViT 구조

경량화 + Distillation 기반 지식 전수

-> 적은 데이터로도 고성능 낼 수 있는 이미지 분류용 Transformer 

 


실험 순서

1단계 DeiT-Tiny로 MSP60K 이미지 인퍼런스 속도 측정  
2단계 MSP60K 클래스 수에 맞게 classification head 변경 후 fine-tune  
3단계 fine-tuned 모델 성능 측정 (mAP, F1 등)  
4단계 속도 vs 성능 트레이드오프 분석 및 시각화  

 


1. DeiT-Tiny로 MSP60K 이미지 인퍼런스 속도 측정

 

1. Mean Latency (단일 샘플 처리 시간)

  • TinyCLIP: 0.000194 sec/sample
  • CLIP: 0.000262 sec/sample
  • DeiT-Tiny: 0.000290 sec/sample
  • MobileCLIP: 0.001326 sec/sample

DeiT-Tiny는 CLIP보다 느리고, TinyCLIP보단 더 느림

MobileCLIP보단 4배 이상 빠름

 

2. Throughput (초당 처리 가능한 이미지 수)

  • TinyCLIP: 5165.60 samples/sec 
  • CLIP: 3815.59 samples/sec
  • DeiT-Tiny: 3445.45 samples/sec
  • MobileCLIP: 754.43 samples/sec

DeiT-Tiny는 단일 샘플보단 다수 처리할 때 효율적

 

3. Total Inference Time 

  • DeiT-Tiny: 310.12 sec 
  • MobileCLIP: 404.06 sec
  • TinyCLIP: 422.08 sec
  • CLIP: 441.90 sec

기존 베이스라인 (CLIP, TinyCLIP, MobileCLIP) 대비 DeiT-Tiny가 현재 모델 중 가장 빠른 인퍼런스 시간 기록

 


2. MSP60K 클래스 수에 맞게 classification head 변경 후 fine-tune

 

DeiT-Tiny 모델 파인튜닝

  • 속성 분류 성능 (mAP, F1, Recall 등) 측정

베이스라인 모델들과 정확도 성능 비교

결과 비교 시각화, 최종 성능-속도 trade-off 제시

 

 


Tiny Star