티스토리 뷰
FROM CLIP TO DINO: VISUAL ENCODERS SHOUT IN MULTI-MODAL LARGE LANGUAGE MODELS, CLIP과 DINOv2 모델을 잘 Ensemble해보자
developer0hye 2024. 12. 9. 23:35FROM CLIP TO DINO: VISUAL ENCODERS SHOUT IN MULTI-MODAL LARGE LANGUAGE MODELS
CLIP 의 서로 다른 블락에서 나오는 피쳐들을 잘 Ensemble 해주고, DNIOv2 의 서로 다른 블락에서 나오는 피쳐들을 잘 Ensemble해주고 Concat 해주고 Embedding 해준 피쳐들을 Text Embeddings이랑 잘 LLM 에 넣어주면 VLM의 성능이 올라간다고한다.
w/ MFM 은 하나의 모델에서 여러 블락에서 나온 피쳐를 Ensemble 해줬을때의 결과, 같은 모델에서 서로 다른 레이어에서 나오는 피쳐들을 활용하는거라 Ensemble이라고 하긴 뭐하긴하지만 merge보단 ensemble이라는 표현이 더 맞긴한 거 같아서 블로그에 정리할때는 ensemble이라고 해둠
- Fig 2 MAE는 별로 안좋다는 거 같다.
- Fig 3 그럼 같은 백본에서 서로 다른 블록에서 나오는 피쳐를 어떻게 버무려야하냐? LLN-Layerscale(all) 이 평균적으로 여러 태스크(2개 지만...), 여러 모델(CLIP, DINOv2 2개 지만...)에서 평균적으로 괜찮게 나오더라
- LLN-Layerscale 이뭐냐
- 각 블럭에서 나온 피쳐에다가 Layer Norm -> Linear Layer거치고 각 블럭에서 나오는 피쳐에 곱해지는 Trainable Weights(w1, ..., wN) 를 학습시켜서 Weighted sum 되게 만들어준다.
- DINOv2는 Text 없이 오로지 Visual Data로만 학습됐기 때문에, Text Embedding과 Align을 시켜주기 위한 목적으로 MLP Layer 를 거치게한다.
- MLP Layer가 너무 많아지면 성능이 저하한다. MLP Ratio는 4가 적당. 그냥 Linear Layer로만 Align시켜주려고 해도 성능이 잘 안나온다.
의문, 왜 dinov2는 모든 block에서 나오는 피쳐를 사용하지 않았냐? fig3 (c), (d) 잘보면 모든 feature 다 mean 해버렸을때 뒤에 일부 block에서 나오는 피쳐를 mean 했을때보다 성능이 낮은 걸 확인할 수 있다. 그래서 뒤에 몇 block에서 나오는 피쳐만 추출해준것이다. 반대로 (a), (b) 보면 CLIP은 모든 block에서 나오는 피쳐를 mean해도 크게 성능 드랍이 없는 것을 확인할 수 있다.
아 그리고 CLIP 도 Eva02 clip도 있고 종류가 많은데 논문 보면 Shikra 를 베이스라인으로 해서 구현했다는데 Shikra 논문에서는 ViT-L/14 of CLIP 이라고 표현하는걸로보아 OpenAI의 CLIP을 사용한 거 같다.
구현 해봐야지
CLIP-VG: Self-paced Curriculum Adapting of CLIP for Visual Grounding 란 논문인데 여기서도 CLIP 모델의 여러 Block에서 나오는 피쳐를 활용하고있다.
Ferret-v2: An Improved Baseline for Referring and Grounding with Large Language Models
이 논문에서도 CLIP과 DINOv2를 함께 사용한다.
https://github.com/YuchenLiu98/COMM
Official repo인데 아직 코드는 안올라와있다.
'Deep Learning' 카테고리의 다른 글
register 기법 적용된 ViT 사용시 유의 사항 (1) | 2024.12.15 |
---|---|
그냥 드는 의문 SWIN은 왜 CLIP 모델이 없을까 (1) | 2024.12.15 |
Qwen2vl 7b 파인튜닝 최적의 하이퍼 파라미터를 찾아서... (2) | 2024.12.05 |
runpod 또 추가 결제 가즈앗!!! 장시간 학습시키니 비용이 쭉쭉 나간다. (0) | 2024.12.04 |
Qwenvl2 7b 파인튜닝 실마리를 찾다!!! (0) | 2024.12.02 |
- Total
- Today
- Yesterday
- 백준 11053
- PyCharm
- 순열
- 문제집
- 파이참
- 자료구조
- C++ Deploy
- 조합
- ㅂ
- 이분탐색
- 가장 긴 증가하는 부분 수열
- cosine
- FairMOT
- 백준 11437
- 위상 정렬 알고리즘
- 백준
- 백준 1766
- LCA
- Lowest Common Ancestor
- MOT
- 백트래킹
- 인공지능을 위한 선형대수
- 단축키
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |