본문 바로가기

Capstone

(22)
[ Presentation ] 보행자 속성 인식을 위한 CLIP Image Encoder 양자화 적용 가능성 탐색 “보행자 속성 인식을 위한 CLIP Image Encoder 양자화 적용 가능성 탐색” 1. 연구 배경 및 목적최근 CCTV나 스마트시티 시스템에서는 단순한 객체 탐지가 아니라, 보행자의 성별, 연령대, 복장, 소지품과 같은 속성 정보를 실시간으로 파악하는 기술이 점점 중요해지고 있습니다. 여기서 저는 CLIP 모델에 주목했습니다. CLIP은 OpenAI에서 개발한 멀티모달 모델로, 자연어와 이미지를 같은 임베딩 공간에 매핑해줍니다.“사람이 가방을 들고 있다”는 문장을 임베딩하면, 그와 유사한 특징을 가진 이미지를 높은 유사도로 찾아낼 수 있습니다. 2. 문제 하지만 문제는 이 CLIP 모델이 FP32 기반으로, 계산량이 매우 크고 실시간 사용에는 부적합하다는 점입니다.특히 CCTV 같은 에지 디바이스..
[ Meeting ] 5월 4주차 - 그래도 Quantization ..! 피드백1. 경량화된 모델 vs. 양자화 모델Lightweight Model→ TinyCLIP, MobileNet, DeiT-Tiny 등→ 모델 구조 자체를 작고 간단하게 설계해 연산량과 파라미터 수 줄인 것Quantized Model→ ViT INT8, Q-BERT, ResNet-50-INT8 등→ 이미 학습된 모델을 INT8, FP16 등의 낮은 비트로 변환해서 추론 속도 및 크기 최적화 2. DeiT를 굳이 써야하는 이유?DeiT 써서 TinyCLIP보다 눈에 띄게 좋은 성능이 나올까?TinyCLIP: 텍스트-이미지 쌍 이해하기 위한 CLIP 구조 기반 경량 모델DeiT-Tiny: 순수 Vision Transformer 경량화한 구조. 텍스트 이해 없음흠냠냐.. 압도적 이점은 없어서 설득력이 떨어지긴..
[ Meeting ] 5월 3주차 - use pre-quantization model 피드백1. TinyCLIP 양자화 힘들다이미 학습된 모델이라 양자화하는 것과 정밀도 낮추는 것 어려움학습단계에서 정밀도 줄이도록 설계된 모델 쓰는 게 나음 (ex. Low-precision 모델)CLIP이 아니더라도, 예를 들어 ViT-1.58B 같은 모델 구조에서 찾는 게 더 나을 수도 있음https://arxiv.org/abs/2406.18051 리뷰: https://www.themoonlight.io/ko/review/vit-158b-mobile-vision-transformers-in-the-1-bit-era구조적으로 더 경량화된 아키텍처 고려해보기2. 이미 양자화된 모델 쓰는 것 추천직접 양자화 하는 것보다 이미 INT8/FP16 등으로 제공되는 pretrained 모델 선택하는 게 더 효율적실..
[ Meeting ] 5월 2주차 - 정밀도 낮추기 실험 https://onnxruntime.ai/docs/performance/model-optimizations/quantization.html? Quantize ONNX modelsONNX Runtime: cross-platform, high performance ML inferencing and training acceleratoronnxruntime.ai ONNX 동적 양자화 (Dynamic. Quantization)특징가중치(weight)만 INT8로 양자화되고 활성값(activation)은 FP32 상태로 남아 있음모델 쉽게 변환할 수 있고, 캘리브레이션 데이터 필요 없음CPU 실행 기준으로 최적화되어 있음장점빠른 적용 가능 (학습된 모델만 있으면 됨)변환 속도 빠르고 유지보수 편함오차 작고 안정적단..
이쯤에서 다시 보는 목표 CLIP은 범용적이지만 느림-> CLIP를 quant 해서 Edge에서도 잘 돌아가게 만드는 게 목표나중엔 YOLO 같은 detector로 보행자 위치도 잡고탐지된 bbox에 대해 CLIP-based 양자화 모델로 속성 인식영상 위에 bbox + ‘wearing backpack’ 이런 거 띄워주기① 보행자 검출 (Detection)YOLO, EfficientDet 등 경량 보행자 탐지 모델 사용해서프레임마다 사람 bbox 뽑아냄예시: person_detections = detector(image) → [bbox1, bbox2, ...]② 각 보행자 영역을 CLIP or PAR 모델에 넣어 속성 인식bbox 크롭 → CLIP/PAR 인퍼런스입력 문장 리스트 (예: ["wearing backpack", "h..
[ Meeting ] 5월 1주차 - Baseline 측정(PyTorch FP32) 실험 순서 Baseline (Image+Text 모두 FP32)이미지 인코더만 INT8 양자화텍스트 인코더만 INT8 양자화둘 다 INT81: Baseline 측정 (Image + Text 인코더 모두 FP32)이미지 인코더와 텍스트 인코더 모두 FP32 상태에서,이미지 ⟶ image encoder ⟶ image feature텍스트 ⟶ text encoder ⟶ text feature두 feature 간 cosine similarity or matching score 측정dataset_ms_split_1.pkl과 dataset_ms_split_2.pkl은 각각 전체 데이터셋의 “절반씩 분할된 버전”→ “split 1 + split 2 = 전체 MSP60K” 원하는 흐름dataset_ms_split_1...
[ Meeting ] 4월 3주차 - Quantized clip 조사, Baseline 성능 측정 Clip text encoder가 지금 프로젝트에 꼭 필요한 건지?Image encoder 경량화 하는 work는 많음 text encoder 경량화만 생각하지 말고 quantized clip에 대해 더 찾아보자 ! CLIP‑android‑demohttps://github.com/greyovo/CLIP-android-demo GitHub - greyovo/CLIP-android-demo: A demo for running quantized CLIP model (ViT-B/32) on Android.A demo for running quantized CLIP model (ViT-B/32) on Android. - greyovo/CLIP-android-demogithub.com A demo for runni..
[ Meeting ] 4월 2주차 - 데이터셋 구성, 모델별 Inference Time 측정 PAR을 CLIP/ LLM 중 어떤 타입으로 해야 하는지?프로젝트에 LLM이 사용되는지?-> LLM은 이미지와는 관련 없고, 텍스트 기반 모델이기에 이번 PAR 프로젝트에서 CLIP의 텍스트 인코더를 경량화하는 방법으로 진행하기로 했다. 1. pkl 파일 까보기 공통점 두 유형의 pkl 파일은 모두 MSP60K 데이터셋의 전처리된 정보를 담고 있다.• root• 이미지 데이터가 저장된 경로.• attr_vectors, attr_words, attributes• 57개 속성에 대한 정보:• attr_vectors: 각 속성을 표현하는 768 차원 벡터 (numpy.ndarray, shape: (57, 768)).• attr_words: 속성 이름 배열 (numpy.ndarray, shape: (57,..

Tiny Star