인공지능/논문 리뷰 or 진행

Multi-Modal Generative Embedding Model

이게될까 2025. 8. 27. 02:44
728x90
728x90

https://arxiv.org/abs/2405.19333

 

Multi-Modal Generative Embedding Model

Most multi-modal tasks can be formulated into problems of either generation or embedding. Existing models usually tackle these two types of problems by decoupling language modules into a text decoder for generation, and a text encoder for embedding. To exp

arxiv.org

여기선 Multi modal에서 gen과 emb를 동시에 진행하는 모델을 만드려고 했습니다. 

  파이프라인(예: BLIP류/하이브리드)  MM-GEM
비전 경로 ViT 등 Vision encoder 동일: Vision encoder 유지
텍스트 경로(임베딩) Text encoder로 문장 임베딩 생성 LLM 한 개가 [EMB] 토큰의 마지막 히든을 문장 임베딩으로 사용(= 인코더 역할)
텍스트 경로(생성) Text decoder로 캡션 생성 같은 LLM이 [CAP] + Vin(이미지 컨텍스트)로 오토레그 생성(= 디코더 역할)
접합/정렬 보통 별도 헤드/크로스어텐션 얇은 프로젝션 h1/h2/h3 공간 정렬

Vision Encoder는 그대로 존재하고, 토큰을 통해 Embedding과 Generation을 진행하려고 한 점은 GRIT과 비슷한 것 같네요 ㅎㅎ

 

결국  NCE Loss를 사용하는 것은 동일하네요 

 

사진에 대한 캡션을 생성하는 것을 볼 수 있다. 

text와 사진의 유사도를 보여준다 
제대로 학습된 것을 보여준다.

파란색은 1단계만 학습되었을 경우로, 제대로 유추하지 못하는 모습을 보인다.

 

 

 

문제 상황 (Problem) 멀티모달 모델에서 텍스트 인코더(임베딩)텍스트 디코더(생성)를 따로 두면 파라미터/파이프라인이 중복되고, 사전학습 LLM 재사용이 번거로움. 임베딩과 생성 목적을 하나의 LLM 안에서 충돌 없이 공동 학습·활용할 수 있는가?
핵심 아이디어 (Method – 개요) 텍스트 모듈을 완전 단일화. 동일 LLM 경로를 공유하되 두 개의 모드 토큰으로 역할을 전환:
[EMB](임베딩용, 마지막 히든을 문장 임베딩으로 사용) vs [CAP](생성용, 오토레그 캡셔닝).
비전 특징은 얕은 선형 프로젝션( h1/h2/h3 )PoolAggregator로 LLM 내부 공간과 결합.
최종 손실은 L = LEmb(InfoNCE) + LGen(CE), 가중치 없이 단순 합.
구성요소 (Method – 모듈) h1: ViT 특징 → 이미지 임베딩 VEmb (대조학습용)
h2: LLM 출력 헤드 Wout → 텍스트 임베딩 WEmb (대조학습용)
h3: VEmb → LLM 입력에 붙일 비전 컨텍스트 Vin (캡셔닝용)
h4: (Stage-2 전용) 얇은 선형 헤드, 지역 리트리벌만 미세 업데이트
PoolAggregator: 전역 MeanPool(Stage-1) ↔ RoIAlign(Stage-2, 박스/마스크).
학습 목표 (Loss) 임베딩 경로: 이미지–텍스트 임베딩 v,tv,tInfoNCE(v→t, t→v). 텍스트 임베딩은 [EMB] 마지막 히든.
생성 경로: 입력에 [CAP]을 붙이고 VinVin을 텍스트 토큰과 연결해 다음 토큰 예측(CE).
동일 배치에서 두 경로를 동시에 학습, 합산 손실로 최적화.
2-Stage 전략 (Method – 학습 절차) Stage-1(전역, 스케일링): ViT 특징맵을 MeanPool로 요약 → VEmb=h1(⋅), Vin=h3(VEmb).
대규모 배치로 LEmb+LGen을 함께 학습(전역 정렬+기본 캡션 능력 확보). 

Stage-2(영역, 경량 미세화):
RoIAlign(V,R)으로 영역 특징을 사용.
캡션은 h3/소프트 프롬프트만 업데이트, 리트리벌은 h4만 학습해 전역 정렬을 보존하면서 세밀 능력(영역 캡션·지역 검색)을 부착.
데이터 (Training Data) Stage-1: LAION-2B + COYO-700M ≈ 2.3B 이미지–텍스트 쌍(alt-text 중심).
Stage-2: CC3M/CC12M/SBU/BLIP-filtered LAION의 캡션과 Visual Genome dense(영역 캡션) 혼합.
학습법/하이퍼 (Training Setup) 백본: ViT-B/L/L-336(OpenCLIP init) + TinyLlama(LLM).
옵티마이저: LAMB, wd=0.05.
러닝레이트: 프로젝션 5e-4, 백본·LLM 5e-5.
텍스트 길이: max 50(장문 실험 시 ↑).
온도 τ: 0.07→0.01 스케줄.
총배치 ≈ 81,920, 80k iters, 64×H800(분산 대규모).

Stage-2: 소프트 프롬프트=64, 캡셔닝 배치≈2,048(60k iters), 지역 리트리벌 배치≈49,152(15k iters), 업데이트 범위 제한(h3/soft-prompt 또는 h4만).
실험 설정 (Evaluation) 리트리벌: COCO(5k), Flickr30k(1k), R@{1,5,10}.
분류: ICinW(ELEVATER) 제로샷.
캡셔닝: COCO/NoCaps.
정밀 능력: Dense Caption/지역 리트리벌(+ 시각화), L-DCI(장문 캡션 기반 리트리벌).
주요 결과 (Results) 리트리벌/분류: OpenCLIP급(ICinW 평균 ≈ 66.3%), CLIP 상회.
캡셔닝: Flamingo-9B보다 우수;
COCO에 특화된 ClipCap보단 COCO에서 낮을 수 있으나 NoCaps에선 우위.
장문 리트리벌(L-DCI): R@1 +5%p 이상 개선, 해상도 336에서 추가 이득.
Stage-2 효과: 동일 백본에서 L-DCI R@1 ≈ +5%p(예: 49.4→54.1) 및 영역 국소화 시각화 개선.
해석/결론 (Conclusions) 하나의 LLM에서 임베딩(InfoNCE)생성(CE)동시에 학습해도 성능 충돌이 작다는 실증.
PoolAggregator + 2-Stage로 전역 정렬을 보존하면서 영역 단위의 세밀 능력을 저비용으로 부착 가능.
LLM 텍스트 모듈장문 질의/설명 기반 리트리벌에 특히 유리.
기여 (Contributions) 텍스트 모듈 완전 단일화: [EMB]/[CAP] 토큰 & h1/h2/h3로 임베딩·생성 공존을 실증.
경량 미세화 레시피: MeanPool→RoIAlign, 일부 모듈만 업데이트(h3/soft-prompt, h4)세밀 능력 추가.
균형 성능: 리트리벌/분류(OpenCLIP급)과 캡셔닝(경쟁력)을 동시에 달성.
장문 리트리벌 이득: LLM 텍스트 모듈의 이점을 정량화.
한계 (Limitations) Stage-1 데이터 노이즈(alt-text)로 세부 캡션 품질 한계.
영역 데이터 부족파인그레인드 능력이 즉시 발현되지 않음(소량 영역 데이터로 부트스트랩 가능).
• 생성 과제는 캡셔닝 중심으로 검증—일반 언어 데이터 추가, 멀티턴 대화 등은 후속 과제.
재현 체크리스트 (바로 적용용) 1) 토큰 주입: 임베딩은 항상 [EMB] 마지막 히든, 생성은 [CAP]+Vin.
2) Stage-1: MeanPool + LEmb+LGen 함께, 큰 배치·τ 스케줄 설정.
3) Stage-2: RoIAlign로 영역/밀집 캡션·지역 리트리벌; 캡션=h3/소프트프롬프트만, 리트리벌=h4만 업데이트.
4) 정렬 보존: h4는 Identity 초기화, 본체 동결 범위 유지.
5) 장문 과제: 텍스트 maxlen↑, 입력 해상도 336 옵션 병행.

 

더보기
  • 목표: “하나의 LLM” 안에서 임베딩(대조학습)생성(캡셔닝) 목적을 동시에 학습·활용하는 텍스트 모듈 단일화(text encoder/decoder 통합). 이를 위해 Projection 층 h1/h2/h3PoolAggregator로 비전 특징과 LLM의 내부 공간을 연결.
  • 핵심 아이디어:
    1. 동일 LLM 경로를 공유하면서 임베딩용 [EMB] 토큰의 마지막 히든 상태로 문장 임베딩을 만들고(InfoNCE), 생성은 [CAP] 토큰을 붙여 비전 특징 Vin과 함께 오토레그로 캡셔닝(CE Loss). 최종 손실은 단순 합.
    2. PoolAggregator + 2단계 학습: 1단계는 MeanPool로 글로벌 특징에 두 손실을 함께 걸어 대규모 효율 학습, 2단계는 RoIAlign으로 영역 단위(dense caption, regional pair) 미세화·강화(일부 모듈만 업데이트).
  • 핵심 결과: ViT-L+TinyLlama 기준, COCO/Flickr 리트리벌 성능은 OpenCLIP과 비슷, CLIP보다 뚜렷한 향상. 장문 캡션 기반 L-DCI에서는 R@1이 +5%p 이상 개선, 336 해상도에서 추가 이득.

1) 문제 설정

멀티모달 파이프라인에서 텍스트 인코더(임베딩)텍스트 디코더(생성)를 따로 두면 파라미터/파이프라인이 중복되고, 사전학습 텍스트 모델을 그대로 활용하기 어려움. 본 연구는 텍스트 모듈을 하나로 통합해 효율·단순화를 달성할 수 있는지, 그리고 임베딩/생성 목적이 충돌하지는 않는지를 실증적으로 검증.


2) 방법론(설계와 학습 절차)

2.1 모듈 연결: h1/h2/h3와 단일 LLM 경로

  • 가정: LLM의 입력/출력 임베딩 공간(Win/Wout) 간 변환은 근사 선형이므로, 가벼운 선형 프로젝션(h1,h2,h3)로 비전 V ↔ LLM 내부 공간을 연결 가능.
    • VEmb=h1(V), WEmb=h2(Wout), Vin=h3(VEmb).
  • 임베딩 경로: 텍스트는 시퀀스 끝의 [EMB] 토큰 히든을 문장 임베딩으로 사용, 이미지 임베딩과 InfoNCE(v2t,t2v)로 정렬. 최종 임베딩 손실 L_Emb=L_v2t+L_t2v.
  • 생성 경로: 입력에 [CAP]을 붙이고 VinVin(비전 특징)과 함께 다음 토큰 예측(캡션 CE). 손실 L_{Gen}. 두 목적은 동일 LLM 전방경로를 공유, 최종 손실은 단순합 L=L_{Emb}+L_{Gen}.

2.2 PoolAggregator + 2단계 학습

  • 1단계(대규모·글로벌): ViT 특성맵 VMeanPool로 요약해 대조(임베딩)+생성을 함께 학습(대규모 배치로 InfoNCE 효율↑).
  • 2단계(미세·영역 강화): RoIAlign(V,R)으로 영역 R에 맞춘 특성으로 캡셔닝/리트리벌을 미세화. 이때 [CAP] → 다중 소프트 프롬프트 [CAP_i], h3·소프트프롬프트만 업데이트(임베딩 능력 보존). 미세 리트리벌은 h1 출력 위에 얇은 선형 헤드 h4를 추가해 h4만 학습(정렬 파괴 방지).

왜 2단계가 필요한가?
일반 CLIP/캡셔너는 글로벌 정보가 공간 전체를 지배해서 위치별 구분이 약함 → 영역 데이터로 h3/h4만 가볍게 조정하면 지역 구분·정밀 정렬이 유의미하게 개선됨(시각화/수치로 확인).


3) 실험 설정(재현 체크리스트)

3.1 데이터·모델

  • Stage-1: LAION-2B + COYO-700M ≈ 2.3B 쌍, LLM=TInyLlama, ViT-B/L/L-336(OpenCLIP 초기화). 옵티마이저 LAMB(wd=0.05). Proj lr=5e-4, 백본들과 LLM lr=5e-5. 텍스트 maxlen=50, τ 초기 0.07, 하한 0.01. 총배치 81,920, 80k iters, 64×H800.
  • Stage-2(미세 캡셔닝): CC3M/CC12M/SBU/BLIP-filtered LAION + Visual Genome dense(약 3,800만 캡션 + 180만 영역캡션), soft prompt=64, 배치 2,048, 60k iters, h3/소프트프롬프트만 업데이트.
  • Stage-2(미세 리트리벌): 동일 데이터, 배치 49,152, 15k iters, h4=Identity로 초기화, h4만 학습.

3.2 평가

  • 리트리벌: COCO(5k test), Flickr30k(1k), R@{1,5,10}.
  • 분류: ELEVATER ICinW(여러 실세계 세트, zero-shot).
  • 캡셔닝: COCO/NoCaps.
  • 정밀(미세) 능력: Dense Caption/지역 리트리벌(시각화 & L-DCI 정량 벤치마크 추가).

4) 결과(주요 수치)

4.1 임베딩 vs 생성 충돌 검증

  • 동일 설정에서 CLIP-Only(LEmb), Cap-Only(LGen), MM-GEM(동시) 비교 → 리트리벌·분류에서 CLIP-Only ≈ MM-GEM, 캡셔닝은 Cap-Only ≈ MM-GEM(stage-1에선 격차 미미). 즉 두 목적 동시 학습 충돌 크지 않음.

4.2 SOTA 대비(대규모 ViT-L)

  • COCO/Flickr 리트리벌: MM-GEM ≈ OpenCLIP, CLIP 대비 크게 우수(예: Flickr T2I R@1 75.4 vs 74.9(OpenCLIP), 63.5(CLIP)).
  • ICinW 분류: 평균 66.3%, OpenCLIP(66.1)과 비슷·우위, CLIP(61.8) 상회.
  • 캡셔닝: Flamingo-9B보다 우수(특히 NoCaps), COCO에 파인튜닝된 ClipCap보단 COCO에서 낮지만 NoCaps에선 우세.

4.3 미세(영역) 능력과 긴 텍스트

  • L-DCI(장문 캡션 기반): R@1이 5%p+ 개선, 336 해상도에서 추가 향상. **개선의 주 원인=고급 텍스트 모듈(LLM)**임을 CLIP-Only-Base vs MM-GEM-Base 비교로 확인.
  • 2단계 효과: 동일 백본에서 Stage-2 후 L-DCI R@1이 ~5%p 상승(예: ViT-L: 49.4→54.1).
  • 시각화: Stage-2는 텍스트 질의가 해당 영역으로 정확히 국소화, Stage-1은 실패.

5) 표로 요약

문제 텍스트 인코더/디코더 분리로 파라미터/파이프라인 중복, 통합 시 임베딩–생성 충돌 우려.
핵심 아이디어 h1/h2/h3 프로젝션으로 비전–LLM 공간 정렬, [EMB]/[CAP]동일 LLM 경로에서 임베딩/생성 동시 학습. 최종 손실은 합.
PoolAggregator & 2단계 1단계: MeanPool 글로벌 특징 + 대규모 대조/생성 동시학습.
2단계: RoIAlign으로 영역 캡션/지역 페어에 맞춰 h3/소프트프롬프트(캡션)·h4만(리트리벌) 업데이트.
데이터/세팅 2.3B(LAION-2B+COYO-700M), TinyLlama, ViT-B/L/L-336(OpenCLIP init), LAMB(0.05), Proj lr 5e-4 / 백본·LLM 5e-5, 배치 81,920×80k iters, τ 0.07→0.01, 64×H800.
결과(요지) OpenCLIP급 리트리벌, CLIP 대비 우수(COCO/Flickr). ICinW 평균 66.3%. 장문 리트리벌(L-DCI) +5%p, Stage-2로 추가 상승.
기여 (i) 텍스트 모듈 단일화 실증, (ii) PoolAggregator+2단계미세 정렬 가능, (iii) LLM 텍스트 모듈이 장문 리트리벌에 유효.
한계 Stage-1 텍스트 품질/세부성 부족, 영역 데이터 부재로 미세 능력 즉시 발현 어려움 → 소량의 영역 데이터로 쉽게 부트스트랩되지만 더 이른 도입이 유리할 수 있음.

6) 왜 “충돌이 크지 않나?”

  • 동일 LLM 경로를 쓰되, 임베딩은 [EMB] 마지막 히든, 생성은 [CAP]+Vin로 다음토큰이라는 입·출력 포인트 분리가 설계적으로 상보적이며, 실험적으로 CLIP-Only ≈ MM-GEM, Cap-Only ≈ MM-GEM(stage-1)로 확인됨 → 유의미한 성능 저하 없음.

7) 재현/응용 가이드

학습 절차(step-by-step)

  1. 백본 구성: ViT-L(또는 B) + TinyLlama, h1/h2/h3 프로젝션 초기화(OpenCLIP 가중치로 ViT 초기화 권장).
  2. Stage-1(글로벌): LAION·COYO 같은 대규모 alt-text로 InfoNCE + 캡션 CE동시에. MeanPool, 큰 배치(≈8만), τ/스케줄/길이(50 토큰) 설정.
  3. Stage-2(미세): BLIP-filtered 캡션 + Visual Genome denseRoIAlign 기반 영역 캡션/지역 리트리벌을 분리 헤드로 경량 업데이트(캡션=h3/소프트프롬프트만, 리트리벌=h4만).
  4. 긴 텍스트 과제(예: L-DCI, 도메인 캡션): LLM 텍스트 모듈의 길이/어휘를 늘리면 추가 이득(저자는 테스트에서만 maxlen=200으로 조정).

실전 팁

  • 임베딩 보존: Stage-2에서 백본 동결+헤드/프롬프트만 학습하면 Stage-1의 제로샷 정렬 성능을 보존하면서 미세 능력을 얹을 수 있음.
  • RAG 적용: 긴 질의/답변이 많은 도메인(예: 기술 문서)에서는 LLM 텍스트 모듈의 장문 이해가 리트리벌 Recall@1을 끌어올릴 여지가 큼(L-DCI 결과 근거).

8) 결론

MM-GEM은 하나의 LLM으로 임베딩+생성 통합을 실증했고, PoolAggregator+2단계미세 수준 정렬/생성까지 확장했습니다. 대규모 리트리벌/분류는 OpenCLIP 급으로 유지하고(CLIP 상회), 장문 기반 리트리벌에서는 뚜렷한 이득을 보였습니다. 통합의 실용성과 확장성을 확인했다는 점이 가장 큰 메시지입니다.

 

 

큰 지도: 패러다임별 비교

  대표 연구 핵심 아이디어 임베딩(검색) 생성(캡션/대화) MM-GEM과의 차이·시사점
Dual-encoder 대조학습 CLIP (400M 웹 쌍, 텍스트/이미지 이중 인코더로 InfoNCE) (arXiv, Proceedings of Machine Learning Research) /
ALIGN(10억+ alt-text, 노이즈 허용) (arXiv, Proceedings of Machine Learning Research) /
OpenCLIP(LAION 공개데이터로 재현·스케일링) (arXiv, GitHub)
대규모 웹 쌍으로 텍스트·이미지 임베딩 정렬 매우 강함(리트리벌·제로샷 분류 SOTA) 비지원(생성 전용 모듈 없음) MM-GEM은 동일 LLM 경로 안에서 [EMB] 토큰의 마지막 히든을 임베딩으로 쓰고, [CAP]로 생성도 수행
텍스트 모듈 단일화로 임베딩·생성 동시 학습(손실 단순합)
Encoder-Decoder 공동학습(대조+생성) CoCa(대조+캡션 동시 사전학습, 디코더 전반/후반을 단일·멀티모달로 분할) (arXiv, OpenReview, r.jordan.im) 한 모델에서 contrastive+captioning을 동시에 최적화 강함 강함 CoCa는 디코더를 단일/멀티모달 절반으로 분할(forward path 이원화). MM-GEM은 하나의 LLM forward를 공유하고 [EMB]/[CAP] 입력만 다르게 하며, h1/h2/h3 경량 프로젝션으로 시공간을 연결 → 사전학습 LLM 재사용 용이
LLM 접합(어댑터/프로젝션) Flamingo(Perceiver Resampler로 frozen LM 연결) (arXiv, NeurIPS Proceedings) /
BLIP-2(Q-Former로 frozen LLM에 브리지) (arXiv) /
FROMAGe(LLM 입·출력에 선형 프로젝션 접합, LLM 동결) (arXiv)
강한 텍스트 생성 LLM을 동결하고 비전 특징을 어댑터로 주입 (대개 보조적) 매우 강함(지시 따름·Few-shot) MM-GEM은 LLM 자체를 임베딩/생성 공용 모듈공동학습(동결 X) → 임베딩·생성 충돌이 유의미하게 크지 않음을 실증(1단계 결과)
유니파이드 멀티태스크 BLIP(노이즈 캡션 부트스트랩, 이해·생성 전이) (arXiv, Proceedings of Machine Learning Research) /
OFA(시퀀스-투-시퀀스로 여러 과제 통합) (arXiv) /
X-VLM(multi-grained 정렬) (Proceedings of Machine Learning Research)
다양한 과제를 하나의 프레임으로 중간~강 중간~강 BLIP/InternVL 등은 텍스트 인코더/디코더를 대부분 공유하되 일부 층을 분리하는 식의 부분 통합.
MM-GEM은 완전 단일 텍스트 모듈로 통합(“one model per modality”)을 전면 채택
캡션 전용(임베딩 보조) ClipCap(CLIP 임베딩→LM 프리픽스 매핑) (arXiv) CLIP → 소형 맵핑 네트워크 → LM로 캡션 약함 강함 MM-GEM은 리트리벌/분류에서도 OpenCLIP급을 유지하면서 캡션도 수행(단일 LLM)

MM-GEM의 설계 한 줄 요약: h1/h2/h3 프로젝션 + [EMB]/[CAP] 토큰으로 하나의 LLM에서 InfoNCE 임베딩오토레그 캡션동시에 학습하고, PoolAggregator + 2단계(RoIAlign)미세(영역) 수준까지 확장.


MM-GEM의 차이점/차별점 (관련 연구 대비)

  1. 텍스트 모듈 완전 단일화(One LLM for both embedding & generation)
    • 기존 통합 시도는 텍스트 경로를 분기(예: CoCa의 디코더 분할, BLIP/InternVL의 일부 층 분리)하거나 LLM을 동결해 브리지로 연결(Flamingo/BLIP-2/ FROMAGe)하는 경우가 많았습니다. MM-GEM은 같은 LLM forward[EMB]/[CAP] 입력 구분만으로 재사용해 텍스트 인코더와 디코더를 하나로 통합했습니다.
    • 손실은 단순 합 L = LEmb + LGen으로 가중치 조정 없이 공동학습하고도 충돌이 작음을 정량 확인(1단계에서 CLIP-Only ≈ MM-GEM, Cap-Only ≈ MM-GEM).
  2. PoolAggregator + 2-Stage로 ‘미세(영역) 능력’을 경량 부착
    • 1단계: MeanPool 특징으로 대규모 배치 대조·생성을 함께 학습(효율/스케일 확보).
    • 2단계: RoIAlign(V,R)로 영역 특징을 뽑아 캡션은 h3/소프트 프롬프트만, 리트리벌은 얇은 h4만 업데이트 → 기존 정렬 성능을 해치지 않고 미세 능력만 증설.
    • 대비: CLIP/일반 캡셔너는 전역 특징이 지배되어 위치 구분이 약함. 제안 2단계로 영역 캡션·지역 리트리벌이 뚜렷이 향상(시각화 & L-DCI R@1 약 +5%p).
  3. 장문 텍스트 리트리벌(L-DCI)에서 LLM 텍스트 모듈의 이점 실증
    • ViT-L+TinyLlama 조합에서 L-DCI 기준 OpenCLIP 대비 R@1 5%p+ 향상(해상도 336에서 추가 이득). 원인: LLM 텍스트 모듈의 언어 처리 능력이 긴 서술과 문맥 대응에 유리.
  4. 리트리벌·분류 성능은 OpenCLIP급 유지 + 캡션도 가능
    • COCO/Flickr 리트리벌과 ICinW 제로샷 분류에서 OpenCLIP과 유사/근접, CLIP 대비 뚜렷한 우위를 보이면서도, 캡셔닝(COCO/NoCaps) 성능을 함께 달성.

관련 연구별 핵심 차이를 조금 더 구체적으로

  • CLIP / ALIGN / OpenCLIP: 이중 인코더 + InfoNCE로 전역 정렬에 최적화. 생성 기능은 없음. MM-GEM은 동일 LLM 경로에서 임베딩/생성을 동시에 수행. (arXiv)
  • CoCa: 대조·캡션을 함께 학습하되, 디코더를 단일/멀티모달 절반으로 분할하여 텍스트 경로가 이원화됨. MM-GEM은 경로를 나누지 않고 [EMB]/[CAP]로 역할만 분리. (arXiv)
  • Flamingo / BLIP-2 / FROMAGe: frozen LLM을 비전 어댑터(Perceiver Resampler, Q-Former, 선형 프로젝션 등)로 연결. MM-GEM은 LLM을 동결하지 않고 임베딩/생성 공동최적화충돌이 작음을 보임. (NeurIPS Proceedings, arXiv)
  • BLIP / InternVL: 텍스트 인코더·디코더 대부분 공유(일부 self/cross-attn만 분리) 등 부분 통합 경향. MM-GEM은 완전 단일 텍스트 모듈을 전제로 설계.
  • ClipCap: CLIP 임베딩을 프리픽스 매핑으로 캡션. 검색은 약함. MM-GEM은 리트리벌과 캡션을 동시에 강하게 수행. (arXiv)

이 논문의 기여(Contribution)를 한 줄씩 콕 집어 정리

  1. 텍스트 모듈 단일화의 실증: [EMB]/[CAP] 트리거 + h1/h2/h3 프로젝션으로 한 LLM에서 임베딩·생성동시에 학습·사용 가능함을 보였고, 충돌이 의미 있게 크지 않음을 데이터로 확인.
  2. 미세 정렬을 위한 경량 2-Stage 전략: PoolAggregator(MeanPool→RoIAlign) + 소수 모듈만 업데이트(h3/soft-prompt 또는 h4)로, 전역 정렬을 보존하면서 영역 캡션·지역 리트리벌 능력을 추가.
  3. 장문 기반 리트리벌 이득: L-DCI에서 OpenCLIP 대비 R@1 +5%p 수준의 개선을 보이며, LLM 기반 텍스트 모듈의 장문 이해 이점을 정량화.
  4. 효율적 사양으로 광범위 벤치마크 커버: ViT-L + TinyLlama 조합에서 리트리벌/분류는 OpenCLIP급, 캡셔닝도 경쟁력을 유지하는 균형형 성능을 달성.

 

 


1) 큰 그림: “하나의 LLM으로 임베딩+생성”

MM-GEM의 핵심은 텍스트 인코더와 디코더를 따로 두지 않고, 한 개의 LLM 경로를 임베딩·생성에 공용한다는 점입니다. 비전 특징은 가벼운 선형 프로젝션(h1/h2/h3)PoolAggregator를 통해 LLM 내부 공간과 정렬되고, LLM은 임베딩용 [EMB], 생성용 [CAP] 토큰으로 “역할 전환”을 합니다. 그림 1에도 이 전체 흐름이 요약되어 있습니다.


2) 텍스트–비전 결합: h1/h2/h3 프로젝션과 두 가지 목적함수

2.1 프로젝션 층: 시각–언어 잠재공간을 가볍게 연결

생성형 LM은 입력 임베딩 공간(Win)과 예측 헤드(Wout)가 근사 선형으로 이어진다는 가정하에,

  • h1: 비전 특징 V → 이미지 임베딩 VEmb,
  • h2: LM의 Wout → 텍스트 임베딩 WEmb,
  • h3: 이미지 임베딩 VEmb → LM 입력으로 주입할 비전 특징 Vin
    으로 변환합니다. 수식 (1)에 해당합니다.

직관

  • h1은 “CLIP의 이미지 타워 마지막 벡터”를 LM이 쓰기 좋은 공유 임베딩 공간으로 매핑.
  • h3는 “그 공유 임베딩을 LM 입력 토큰과 나란히 붙일 수 있는 형태”로 바꿔 생성 시 컨텍스트로 투입.

2.2 임베딩 목적(대조학습, InfoNCE)

이미지–텍스트 임베딩 v, t를 정규화하고 InfoNCE(v→t, t→v)를 합친 LEmb로 정렬합니다(수식 (2)). 텍스트 임베딩은 시퀀스 끝에 붙인 [EMB] 토큰의 마지막 히든 상태를 사용합니다.

  • 미니 예시(임베딩):
    문장 “고양이가 의자 위에 누워 있다[EMB]”의 마지막 히든을 t로, 같은 이미지의 글로벌 특징을 h1로 투영한 v로 두고, v·t 유사도가 같은 배치 내 다른 쌍보다 높아지도록 학습합니다.

2.3 생성 목적(오토레그 캡셔닝)

생성은 [CAP] 토큰을 선두에 두고, Vin(=h3(h1(V)))을 텍스트 토큰과 연결(concatenate)하여 다음 토큰 예측(크로스엔트로피)으로 학습합니다(수식 (3)).
한 배치에 대해 임베딩·생성 두 경로를 모두 전파하고, 가중치 없이 단순 합 L = LEmb + LGen으로 최적화합니다(수식 (4)).

  • 미니 예시(생성):
    입력: [Vin, [CAP], "A", "cat", ...] → 다음 토큰을 순차적으로 생성. 동일 모델이지만, [CAP]가 “이건 생성 모드야”라고 신호를 주는 셈.

3) Vision PoolAggregator와 2단계 학습: 전역→영역 미세화

임베딩과 생성을 동시에 학습할 때 생기는 두 난점:
(1) 임베딩은 보통 전역 특징 1개만 쓰지만, 생성은 공간적 세부가 필요함.
(2) 대규모 대조 데이터(alt-text)는 노이즈가 있어 생성 품질 저하 우려.
이를 풀기 위해 MM-GEM은 PoolAggregator + 2-Stage 전략을 씁니다.

Stage-1: 전역(mean-pool)으로 빠르고 크게

이미지 특징맵 V∈ℝ^{C×H×W}에서 MeanPool(V)로 전역 벡터를 만들고,

  • 임베딩용 VEmb = h1(MeanPool(V)),
  • 생성용 Vin = h3(h1(MeanPool(V)))
    으로 써서 LEmb + LGen을 함께 학습합니다(수식 (5)). 이렇게 하면 대형 배치(대조학습에 유리)로 빠르게 수렴시킬 수 있습니다.
  • 효과: 전역 정렬과 기본 캡션 능력을 가성비 좋게 확보.

Stage-2: RoIAlign으로 영역 단위로 미세화

Stage-2에서는 이미지-캡션 + 영역 캡션(dense caption) 혼합 데이터에서 RoIAlign(V,R)으로 영역 R에 맞춘 특징을 뽑아 세밀한 생성/검색 능력을 붙입니다(수식 (6)). 이때

  • 생성 경로: [CAP] → 다중 소프트 프롬프트 [CAP_i]로 바꾸고 h3와 소프트 프롬프트만 업데이트(임베딩 정렬 보존).
  • 리트리벌 경로: h1 출력 위에 얇은 선형 헤드 h4를 추가하고 h4만 학습해, 기존 전역 정렬을 깨지 않습니다(수식 (7)).
  • 왜 이렇게? 전통적 CLIP/캡셔너는 전역 특징이 공간 전체를 지배해 위치 구분이 약합니다. 영역 데이터로 h3/소프트프롬프트(생성) 또는 h4(임베딩)만 건드리면, 세밀 능력만 추가로 얻고 본체의 전역 제로샷 성능은 보존됩니다.
  • 미니 예시(세밀 캡션):
    빨간 박스(R)가 “가로수” 영역이라면, RoIAlign으로 그 부분 특징만 뽑아 “Green leaves on the tree” 같은 영역 캡션을 안정적으로 생성(그림 2 사례).
  • 미니 예시(세밀 검색):
    질의: “파란 표지판이 보이는 구역”. Stage-1은 전역 정보에 끌려 오탐이 잦지만, Stage-2에서 h4를 학습하면 해당 영역 유사도가 또렷이 높아져 정확한 지역 매칭이 됩니다(그림 3 비교).

4) 한 장 요약: 구성요소–입출력–학습 신호

구성/기호 하는 일 입/출력 학습 신호
h1 비전→공유 임베딩 V → VEmb InfoNCE(임베딩)
h2 LM Wout→텍스트 임베딩 Wout → WEmb InfoNCE(임베딩)
h3 비전 임베딩→LM 입력 컨텍스트 VEmb → Vin 캡션 CE(생성)
[EMB] “임베딩 모드” 트리거 마지막 히든 = 텍스트 임베딩 InfoNCE(임베딩)
[CAP]/[CAP_i] “생성 모드” 트리거(soft prompt) Vin와 연결해 토큰 생성 캡션 CE(생성)
PoolAggregator V에서 전역/영역 특징 추출 MeanPool(V) 또는 RoIAlign(V,R) Stage-1: 전역, Stage-2: 영역
h4(선형 헤드) 세밀 리트리벌 전용 헤드 RoIAlign→h1→h4 h4만 학습(정렬 보존)

5) 학습 절차를 코드처럼(요지)

Stage-1 (전역·대규모)

  1. V ← ViT 특징맵 → MeanPool(V).
  2. v = h1(MeanPool(V)), Vin = h3(v).
  3. 텍스트 뒤에 [EMB]를 붙여 마지막 히든을 t로 추출.
  4. InfoNCE(v↔t)LEmb 계산; [CAP] + Vin + 텍스트로 LGen 계산.
  5. L = LEmb + LGen로 역전파(가중합 없이).

Stage-2 (영역·경량 업데이트)

  1. 주어진 박스/마스크 R에 대해 RoIAlign(V,R).
  2. 생성: [CAP]→[CAP_i]로 바꾸고 h3와 소프트 프롬프트만 업데이트.
  3. 리트리벌: h1 출력 위에 선형 헤드 h4를 얹고 h4만 학습.
  4. 이렇게 세밀 능력을 추가하면서 Stage-1 정렬은 보존.

6) 왜 이 설계가 먹히나? (디자인 합리성)

  • 한 LLM, 두 역할의 공존성: 임베딩은 [EMB]의 마지막 히든, 생성은 [CAP]+Vin 기반 출력 분기출발점/목적이 다르면서가중치 공유로 상호 이득을 보게 설계. 실제로 두 목적을 가중치 조정 없이 합해도 잘 학습됨(경험적).
  • 효율성: Stage-1에서 전역 mean-pool을 쓰면 대규모 배치로 InfoNCE를 튼튼히 학습 가능. 이후 Stage-2에서 일부 모듈만 만져 세밀 능력을 저비용으로 부착.
  • 정렬 보존: 세밀 리트리벌은 h4만 학습(Identity 초기화)하여 전역 제로샷 성능을 흐트러뜨리지 않음.

7) 재현 팁(실무 적용 시 체크)

  • 텍스트 임베딩 포인트: [EMB] 마지막 히든을 항상 사용(평균/첫 토큰 아님).
  • Pool 전략 스케줄링: Stage-1은 MeanPool(대규모 배치), Stage-2는 RoIAlign으로 영역 정밀화.
  • 모듈 업데이트 범위: 생성=h3/소프트 프롬프트만, 리트리벌=h4만. 기존 정렬을 보존한 채 세밀 능력만 올린다.

 

결과(Results)

  • 임베딩·분류 성능: ViT-Large+TinyLlama 구성에서 COCO/Flickr 리트리벌과 ICinW 제로샷 분류OpenCLIP과 대등하며 CLIP을 크게 상회합니다. 평균 ICinW는 66.3%로 OpenCLIP(66.1)과 유사, CLIP(61.8)보다 높습니다.
  • 캡셔닝 성능: Flamingo-9B보다 우수, ClipCap(COCO에 파인튜닝) 대비 COCO는 열세지만 NoCaps에선 우세합니다. 구체 수치로 COCO CIDEr 110.9, NoCaps CIDEr 100.7 보고.
  • 장문 텍스트 기반 리트리벌(L-DCI): R@1이 +5%p 이상 개선되며, 입력 해상도 336에서 추가 향상. 개선은 학습 목적이 아니라 텍스트 모듈(LLM)의 이점에서 기인함을 비교로 확인.
  • 2-Stage(미세화) 효과: Stage-2 적용 시 L-DCI R@1이 약 +5%p 상승(예: 49.4→54.1). 시각화에서도 Stage-2가 질의-영역 정밀 정합을 확실히 회복/강화함을 보여줌.
  • 동일 모델로 영역 캡션·지역 리트리벌 수행: 추가 학습 없이도 영역 단위 캡션·파인그레인드 검색이 가능함을 정성/정량으로 제시.

결론(Conclusions)

  • 한 개의 LLM임베딩(대조학습)생성(오토레그 캡션)을 함께 담아도 유의미한 성능 충돌이 없다는 것을 실증.
  • 제안한 PoolAggregator멀티-스테이지(MeanPool→RoIAlign)파인그레인드 과제(영역 캡션/지역 리트리벌)에 효과적이며, 장문 리트리벌에서 LLM 텍스트 모듈의 이점을 확인.
  • 통합 패러다임으로 리트리벌·분류(OpenCLIP급)과 캡셔닝(경쟁력)을 동시에 달성.

기여(Contributions)

  1. 텍스트 모듈 단일화: [EMB]/[CAP] 트리거와 h1/h2/h3 연결로 임베딩·생성 목적을 단일 LLM 안에 캡슐화하여 모달리티 통합을 전진시킴.
  2. PoolAggregator + 2-Stage 학습: 전역(MeanPool)→영역(RoIAlign)으로 이어지는 설계로 효율미세 능력을 동시에 확보.
  3. 균형형 성능의 실증: 임베딩 벤치마크에서 경쟁력을 유지하면서 생성 성능도 보존·확장함을 대규모 실험으로 제시.

한계(Limitations)

  • Stage-1 텍스트 품질 제약: 대규모 alt-text는 노이즈/상세 부족으로, 캡션 손실이 원하는 세부 표현까지 끌어올리기엔 제한적.
  • 영역 데이터 부재: Stage-1에 리전 수준 데이터가 부족하여 파인그레인드 능력이 즉시 발현되지 않음(소량 리전 데이터만으로 부트스트랩 가능).
  • 생성 과제 범위: 본 논문은 주로 캡셔닝에 초점을 맞췄으며, 일반 언어 데이터 추가의 영향 등은 후속 연구 과제로 남김.

 

 

한 줄 정답

  • 예전(많은 기존 방식): Vision encoder + Text encoder + Text decoder(총 3개 경로)
  • MM-GEM: Vision encoder + (하나의) LLM (+ 아주 얇은 프로젝션 h1/h2/h3)
    → 즉, 텍스트 인코더를 없애고 LLM 하나가 “인코더+디코더” 역할을 겸함. 프로젝션은 세 모듈을 대체한 게 아니라, 비전/텍스트 공간을 가볍게 이어주는 브리지예요.

전/후 구조 비교

기존 파이프라인(예: BLIP류/하이브리드) MM-GEM
비전 경로 ViT 등 Vision encoder 동일: Vision encoder 유지
텍스트 경로(임베딩) Text encoder로 문장 임베딩 생성 LLM 한 개가 [EMB] 토큰의 마지막 히든을 문장 임베딩으로 사용(= 인코더 역할)
텍스트 경로(생성) Text decoder로 캡션 생성 같은 LLM이 [CAP] + Vin(이미지 컨텍스트)로 오토레그 생성(= 디코더 역할)
접합/정렬 보통 별도 헤드/크로스어텐션 얇은 프로젝션 h1/h2/h3공간 정렬

프로젝션이 하는 일(“대체”가 아니라 “정렬/브리지”)

  • h1: V → VEmb
    ViT 특징을 대조학습(InfoNCE)용 이미지 임베딩 공간으로 투영.
  • h2: (텍스트 히든/Wout) → WEmb
    텍스트 임베딩도 같은 임베딩 공간으로 살짝 맞춤(구현에 따라 [EMB] 마지막 히든이나 출력헤드 표현을 선형 변환).
  • h3: VEmb → Vin
    이미지 임베딩을 LLM 입력 토큰과 함께 쓸 수 있는 컨텍스트로 변환(캡션 생성에 사용).

즉, 프로젝션은 무거운 인코더를 대신하는 게 아니라,

  1. 이미지/텍스트 임베딩 공간을 맞추고(h1/h2),
  2. 이미지를 LLM이 읽을 수 있는 입력 형태(Vin)로 바꿔 생성에 주입(h3)합니다.

흐름 예시로 감 잡기

  • 리트리벌(임베딩 모드):
    이미지 → ViT → MeanPool → h1 → v
    텍스트+[EMB] → LLM → (마지막 히든 → h2) → t
    → InfoNCE 로 v↔t 정렬
  • 캡션(생성 모드):
    이미지 → ViT → MeanPool → h1h3 → Vin
    입력: [Vin, [CAP], "A", "cat", ...] → LLM이 다음 토큰 예측으로 캡션 생성

결론

  • 맞는 부분: “예전엔 3경로였고, MM-GEM은 텍스트 인코더를 없애서 경로를 단순화했다.”
  • 보완할 점: “프로젝션으로 전부를 대체한 게 아니라, 비전 인코더는 그대로 두고, LLM 하나가 인코더+디코더를 겸하도록 만들었으며, **프로젝션(h1/h2/h3)**은 공간 정렬/연결을 위한 얇은 브리지다.”

필요하면, 당신 실험 코드에서 [EMB]/[CAP] 주입 + h1/h2/h3 모듈을 어디에 붙이면 되는지 PyTorch 스켈레톤으로 바로 뽑아줄게요.

 

한 줄 정답

  • 예전(많은 기존 방식): Vision encoder + Text encoder + Text decoder(총 3개 경로)
  • MM-GEM: Vision encoder + (하나의) LLM (+ 아주 얇은 프로젝션 h1/h2/h3)
    → 즉, 텍스트 인코더를 없애고 LLM 하나가 “인코더+디코더” 역할을 겸함. 프로젝션은 세 모듈을 대체한 게 아니라, 비전/텍스트 공간을 가볍게 이어주는 브리지예요.

전/후 구조 비교

  파이프라인(예: BLIP류/하이브리드)  MM-GEM
비전 경로 ViT 등 Vision encoder 동일: Vision encoder 유지
텍스트 경로(임베딩) Text encoder로 문장 임베딩 생성 LLM 한 개가 [EMB] 토큰의 마지막 히든을 문장 임베딩으로 사용(= 인코더 역할)
텍스트 경로(생성) Text decoder로 캡션 생성 같은 LLM이 [CAP] + Vin(이미지 컨텍스트)로 오토레그 생성(= 디코더 역할)
접합/정렬 보통 별도 헤드/크로스어텐션 얇은 프로젝션 h1/h2/h3공간 정렬

프로젝션이 하는 일(“대체”가 아니라 “정렬/브리지”)

  • h1: V → VEmb
    ViT 특징을 대조학습(InfoNCE)용 이미지 임베딩 공간으로 투영.
  • h2: (텍스트 히든/Wout) → WEmb
    텍스트 임베딩도 같은 임베딩 공간으로 살짝 맞춤(구현에 따라 [EMB] 마지막 히든이나 출력헤드 표현을 선형 변환).
  • h3: VEmb → Vin
    이미지 임베딩을 LLM 입력 토큰과 함께 쓸 수 있는 컨텍스트로 변환(캡션 생성에 사용).

즉, 프로젝션은 무거운 인코더를 대신하는 게 아니라,

  1. 이미지/텍스트 임베딩 공간을 맞추고(h1/h2),
  2. 이미지를 LLM이 읽을 수 있는 입력 형태(Vin)로 바꿔 생성에 주입(h3)합니다.

흐름 예시로 감 잡기

  • 리트리벌(임베딩 모드):
    이미지 → ViT → MeanPool → h1 → v
    텍스트+[EMB] → LLM → (마지막 히든 → h2) → t
    → InfoNCE 로 v↔t 정렬
  • 캡션(생성 모드):
    이미지 → ViT → MeanPool → h1h3 → Vin
    입력: [Vin, [CAP], "A", "cat", ...] → LLM이 다음 토큰 예측으로 캡션 생성

결론

  • 맞는 부분: “예전엔 3경로였고, MM-GEM은 텍스트 인코더를 없애서 경로를 단순화했다.”
  • 보완할 점: “프로젝션으로 전부를 대체한 게 아니라, 비전 인코더는 그대로 두고, LLM 하나가 인코더+디코더를 겸하도록 만들었으며, **프로젝션(h1/h2/h3)**은 공간 정렬/연결을 위한 얇은 브리지다.”

필요하면, 당신 실험 코드에서 [EMB]/[CAP] 주입 + h1/h2/h3 모듈을 어디에 붙이면 되는지 PyTorch 스켈레톤으로 바로 뽑아줄게요.

 

 

728x90