[컬럼리뷰] A Dive into Vision-Language Models

2025. 3. 12. 10:21Paper Review/Vision Language Model (VLM)

728x90

벌써 1월, 아니 2월, 아니 3월입니다.

2025년을 너무 정신 없이 살다보니 블로그 글 업데이트는 계속 늦어졌네요.

오늘은 토마토에게 한소리 듣고 작성해보는 Vision Language Model (VLM) 리뷰입니다.

VLM 관련 연구를 하면서 정작 VLM에 대해서는 돌아보지 않는다구 박.. 은 아니고 뭐 그렇습니다.

 

이번에 리뷰할 글은 논문은 아니고 허깅페이스에 올라온 컬럼(?)입니다.

https://huggingface.co/blog/vision_language_pretraining#supporting-vision-language-models-in-%F0%9F%A4%97-transformers

 

A Dive into Vision-Language Models

 

huggingface.co

VLM 모델을 가볍게 이해하기에 좋을 것 같아 가지고 왔습니다.

우리 신학기라 바쁘잖아요? VLM에 대한 인트로는 넘어가고 바로 학습 기법으로 들어가볼게요.

Learning Strategies

비전 언어 모델에는 세가지 주요한 피처가 있습니다.

an image incoder, a text encoder, and a strategy to fuse information from two encoders.

 

컬럼에서는 이 두 가지 인코더의 정보를 결합할 때 진행하는 학습 기법으로 크게 5가지를 설명합니다.

(마지막 하나는 학습을 안 하는 방법론이기 때문에 정확히는 4가지!)

  • Contrastive Learning
  • PrefixLM
  • Multi-modal Fusing with Cross Attention
  • MLM / ITM
  • No training

1) Contrastive Learning

Contrastive learning (대조학습)의 핵심은 유사한 데이터는 임베딩 공간에서 가깝게 유지하고, 서로 관련 없는 데이터더 멀리 떨어질 수 있도록 학습하는 방식입니다. 저는 BERT와 같은 언어 모델의 STS (Semantic Textual Similarity) 능력을 키우기 위해, 해당 기법을 이용했었는데, 사실 contrastive learning이 처음 나온건 이미지 분야였어요. 이번에는 두 모달리티를 결합하는 과정에서도 쓰이는 것을 보니, 상당히 유용한 학습 기법이 아닐 수 없습니다.

이때 이미지와 텍스트의 임베딩 거리를 계산하는 방식에 따라 서로 다른 모델로 나뉘게 됩니다. 대표적으로 OpenAI의  CLIP은 거리 계산 방식으로 cosine similarity를 사용합니다. 이 외에도 이미지 인코더는 고정한채, CLIP 방식으로 텍스트 인코더만 추가 학습을 진행하는 LiT, 대조학습과 다른 학습 기법을 동시 적용한 FLAVA 등이 있습니다.

 

(이제 보니 CLIP은 2021년도에 나온 논문이었어요. 아니... OpenAI 너란 녀석 빠르다..)

Contrastive 설명 추가: 참조하면 좋을만한 블로그

 

🧐 LiT (Locked-image Tuning)?

- 기존 CLIP은 이미지 인코더와 텍스트 인코더를 함께 학습하지만, LiT는 이미지 인코더를 고정 (freeze)하고, 텍스트 인코더만 미세 조정함

- 해당 방식으로 학습할 경우, 텍스트 인코더가 이미지 임베딩을 더 잘 읽도록 최적화되며, 샘플 효율성이 증가하여 적은 데이터로도 높은 성능을 달성할 수 있음

(저는 VLM 학습 시, 이미지 인코더와 텍스트 인코더를 함께 학습해야 더 좋은 결과가 나올거라고 철썩같이 믿고 있었는데, 이걸 보면 꼭 그런건 아닌가봐요. 이미지 인코더를 괜히 학습 시켜서 성능을 더 떨어트리는 일이 될 수 있겠다는 생각이 드는 내용이었습니다.)



2) PrefixLM

PrefixLM은 기존의 언어 모델이 다음 단어를 예측하는 방식과 유사하게 작동합니다. 하나의 차이가 있다면, 기존 언어 모델의 경우, 다음에 올 단어를 하나씩 순차적으로 예측한다면, prefixLM은 이 앞 단어가 특정 prefix로 고정되는 것을 의미합니다. 멀티모달 학습의 경우, 텍스트+이미지 패치가 하나의 prefix입니다. Auto-regressive한 성향을 띄기 때문에 image captioning, visual question answering (VQA)에서는 좋은 성능을 보일 수 있지만, 이미지 자체의 표현 방식이 더 중요한 object detection이나 image segmentation과 같은 태스크에는 어울리지 않는 방식입니다.

이미지 출처: PaliGemma2: A Family of Versatile VLMs for Transfer

- Frozen PrefixLM

PrefixLM은 이미지 인코더, 텍스트 인코더 중 어떤 인코더를 고정 (학습 시, 파라미터 업데이트 없음)하여 사용하느냐에 따라 모델이 달라집니다.

Frozen, ClipCap의 경우, 학습 시 언어 모델은 고정한채 이미지 인코더만 업데이트 합니다. 다음, 이미지 임베딩을 텍스트의 prefix처럼 활용해 캡션을 생성합니다. (아마 요즘 개발된 LLM 모델의 성능을 믿는 거겠죠?) 반면, MAPL과 Flamingo는 이미지 인코더와 텍스트 인코더 모두를 고정한채 학습합니다. 이미지 데이터를 처리할 수 있는 어떤 모듈만 더한 뒤 이를 언어 모델이 활용할 수 있게끔 cross attention을 활용하는 기법입니다. (이런 방식을 활용할 경우, 새로운 데이터에 대한 학습은 거의 안된다고 보여져서 사실상 정말 alignment?와 같은 역할만 하는게 아닐까 하는 생각이 들었습니다.)

 

3) Multi-modal Fusing with Cross Attention

Cross attention 매커니즘을 활용해서 언어 모델 디코더 레이어에 직접 시각 정보를 융합하는 방법입니다. 대표 예시로는 VisualGPT, VC-GPT, Flamingo 가 있습니다. (언어 모델 디코더 레이어에서 이미지 임베딩을 조금 더 직접적으로 참고한다고 생각이 드는 방법입니다. 정보 활용 측면에서는 이게 당연한게 아닌가 생각이 들기도 하는데, 어떻게 cross-attention이 되냐에 따라 성능에 차이가 많이 날 수도 있다고 생각해요.)

 

이미지 출처: LLaVA: Large Language and Vision Assistant Visual Instruction Tuning

 

4) Masked Language Modeling (MLM) / Image Text Matching (ITM)

MLM 학습 기법은 기본적으로 언어 모델에서 사전 학습 시 사용하는 학습 기법입니다. 멀티모달에서의 차이점은 멀티모달의 경우, 이미지 정보를 해당 [MASK] 예측에 사용한다는 점입니다. 즉, 보통 언어 모델의 경우 [MASK] 토큰의 앞과 뒤를 살펴보고 문맥적으로 가장 적절한 토큰을 찾는 방식이었다면, 멀티모달의 경우 이미지를 보고 답을 작성하는 방식입니다. 따라서 학습을 위해서는 데이터셋 내에 바운딩 박스 정보가 풍부하게 주석된 멀티모달 데이터셋이 필요합니다. ITM은 주어진 이미지와 캡션 쌍이 서로 의미적으로 일치하는지 예측하는 기법입니다. 부정 샘플 (이미지와 캡션 쌍이 의미적으로 일치하지 않는 샘플)을 주어진 데이터셋에서 무작위로 샘플링 한 뒤, 캡션이 올바르게 연결되지 않은 경우 학습합니다. 멀티모달 학습에서는 MLM, ITM 등의 기법들을 결합하여 학습에 사용합니다. (각 학습 기법에 따라 생기는 능력이 다르니, 그 중 하나를 선택하기보다 여러가지를 골고루 학습시키는게 아무래도 더 도움되겠죠?)

 

No training 기법은 뭔가 VLM의 성능을 올린다기 보다 VLM을 활용하여 특정 태스크를 수행할 때, 필요한 추가 연산을 학습 없이 진행하는 기법이라 설명은 생략할게요. 컬럼에서 소개하는 태스크와 내가 하고자 하는 태스크가 일치한다면 한 번쯤 시도해볼 수 있는 내용인 것 같습니다.

 

 

이번 글에서는 VLM pre-training 방법을 아주 간략하게 살펴봤는데요.

제가 VLM을 굽는다고 가정했을 때, 어떤 방법을 어떻게 결합해서 사용해야할지 아직 꿀팁(?)같은게 떠오르지 않네요.

그래도 각 학습 기법이 어느 정도 다 유의미하다고 느껴지기 때문에 여러개를 결합해서 실험해보는 것이 중요할 것 같아요.

모달리티가 딱 하나가 더 추가된것 뿐인데 뭔가 해야할 일은 10배쯤은 늘어난 느낌이네요.

 

 

난 몰오라리

728x90