[논문리뷰] CogVLM: Visual Expert for Pretrained Language Models

2026. 1. 7. 18:47논문리뷰

이번에는 칭화대(Tsinghua University)에서 공개한 CogVLM에 대해 리뷰를 시작하겠습니다.

마찬가지로 사진으로 올린 피피티는 제가 직접 작성한 피피입니다.

 

CogVLM은 오픈 소스 Visual Language 모델로, 기존의 shallow alignment 방식에는 한계가 있었습니다. 이 방식에서는 이미지 특징을 텍스트 모델의 입력 공간으로 매핑하는데, 시각적 특징과 언어 모델 간의 직접적인 대응 관계가 부족하여 성능에 한계를 보였습니다.

CogVLM은 이를 해결하기 위해 학습 가능한 visual expert 모듈을 도입하였습니다. 이 모듈을 통해 이미지 인코더와 고정된 사전 훈련된 언어 모델 간의 격차를 줄여, 성능 저하 없이 비전-텍스트 특징의 깊은 융합(Deep Fusion)을 가능하게 했습니다.

아래 이미지는 CogVLM을 사용하여 생성한 Visual Question Answering과 Visual Grounding의 결과를 나타냅니다. Visual Question Answering에서는 질문에 대한 답을 이미지에서 추출하고, Visual Grounding에서는 이미지 속 특정 객체나 부분을 텍스트나 질문을 기반으로 찾는 작업을 수행한 결과를 보여줍니다.

앞으로도 설명하겠지만, 기존의 shallow alignment 방식은 시각적 특징이 텍스트 입력 공간과 직접적인 대응 관계를 가지지 못하기 때문에, 불일치 문제가 발생합니다. 특히 이미지 캡셔닝과 같은 작업에서 이 문제가 두드러지게 나타납니다. CogVLM은 이러한 shallow alignment 문제를 해결하고, 비전-텍스트 특징의 깊은 융합을 가능하게 하는 모델입니다.

 

Shallow Alignment에 대해 자세히 알아보겠습니다.

Shallow alignment 방식은 기존의 이미지와 텍스트 간의 관계를 설정하는 데 사용되는 방법입니다. 아래 그림은 MiniGPT-4의 예시를 통해 이 방식이 어떻게 동작하는지 설명합니다.

MiniGPT-4에서는 q-former와 결합된 ViT(Visual Transformer) 인코더를 사용하고, 이 인코딩된 이미지 특징을 Vicuna 모델에 맞게 single projection layer를 추가하여 정렬합니다. 이는 이미지 특징을 언어 모델의 입력 임베딩 공간으로 매핑하는 방식입니다.

Shallow alignment 방법은 기본적으로 Q-Former와 선형 레이어를 통해 고정된 사전 훈련된 비전 인코더와 언어 모델을 연결하는 방식입니다. 이를 통해 이미지 특징을 언어 모델의 입력 임베딩 공간으로 매핑하여 텍스트와 이미지 간의 연결을 구현합니다.


Q-Former와 BLIP에서의 활용

Q-Former는 간단한 Transformer 구조로 설계되어, Frozen Image Encoder에서 정보를 추출하는 데 사용됩니다.

  1. 첫 번째 단계에서는 이미지에서 텍스트와 관련된 정보를 추출하도록 학습됩니다.
  2. 두 번째 단계에서는 추출된 정보들이 LLM(Large Language Model)에 의해 해석 가능하도록 훈련됩니다.

이 방식은 Frozen Large Model을 사용하여 파라미터 효율성을 극대화하는 동시에, LLM의 zero-shot 성능을 Visual Language task에 활용할 수 있도록 합니다.


Shallow Alignment의 한계

Shallow alignment 방식은 이미지 특징을 언어 모델의 입력 임베딩 공간에 맞게 매핑하는 방식으로 작동하지만, 이는 이미지 특징과 텍스트의 깊은 상호작용을 충분히 반영하지 못하는 한계가 있습니다. 이러한 이유로 CogVLM에서는 비전-텍스트 특징의 깊은 융합(Deep Fusion)을 가능하게 하는 모델을 제안하고 있습니다.

 

CogVLM에서 말하는 Shallow Alignment의 한계

CogVLM은 shallow alignment 방식의 한계를 visual data와 language data 간의 deep fusion 부족 때문이라고 설명합니다.

기존의 shallow alignment 방법은 frozen된 언어 모델 가중치에 의존하게 됩니다. 이는 언어 모델이 주로 텍스트 토큰을 처리하도록 훈련되었다는 것을 의미합니다. 이러한 훈련 방식 때문에, visual data는 입력 텍스트 공간과 직접적인 대응 관계를 형성하지 못하는 문제가 발생합니다. 그 결과, 이미지와 텍스트 간의 깊은 상호작용이 부족해지며, 이는 시각적 정보와 언어적 정보의 융합에서 한계를 가져오게 됩니다.

 

Catastrophic Forgetting과 LLM 훈련의 한계

일반적으로 pretraining 또는 SFT(Supervised Fine-Tuning) 단계에서 LLM을 직접 훈련하는 방식이 사용됩니다. 그러나 이 방법은 LLM 훈련에 사용하는 데이터셋이 텍스트 전용 데이터로 한정되기 때문에, visual-language 모델에서 사용하는 이미지-텍스트 쌍 데이터셋과 데이터 분포 차이가 발생하게 됩니다. 이러한 차이는 catastrophic forgetting(파괴적 망각) 현상으로 이어지며, 결과적으로 기존 모델의 성능이 점차 악화되는 문제가 발생합니다.


Catastrophic Forgetting: 파괴적 망각

Catastrophic forgetting은 모델이 현재 주어진 데이터를 학습하면서 기존에 배운 지식을 잃는 현상을 의미합니다. 이 현상은 전이 학습이나 파인 튜닝(fine-tuning) 과정에서 자주 발생합니다. 딥러닝 모델에서 각 weight가 특정 작업(task)과 어떤 연관성을 가지고 있는지 명확히 알지 못한 채 파인 튜닝을 진행하면, 기존 작업에 대한 학습 내용이 망각되는 것은 자연스러운 현상입니다.

이는 전이 학습의 주요 약점 중 하나로, 이전 학습 데이터셋과 새로운 학습 데이터셋 간에 연관성이 있다 하더라도, 이전 데이터셋에 대한 정보가 대량으로 손실되는 문제를 초래합니다.


실험 결과: LAION 데이터셋과 MMLU 성능 저하

아래 표에서는 LAION 데이터셋을 사용하여 학습한 결과를 보여줍니다. LAION은 이미지-텍스트 쌍으로 구성된 데이터셋입니다. 이 데이터셋에 최적화된 모델은 MMLU 점수가 급격히 하락하는 모습을 보입니다. 이는 shallow alignment에서 발생하는 catastrophic forgetting 문제를 여실히 보여줍니다.

가장 쉬운 해결 방법은 과거의 데이터와 새로운 데이터를 섞어서 학습하는 것입니다. 하지만 이는 연산 자원의 낭비를 초래할 수 있으며, 실제로 효율적인 해결책을 찾는 것이 중요한 과제가 됩니다.

 

따라서 CogCLM은 기존에 학습된 LLM(대형 언어 모델)의 성능을 유지하면서, visual understanding(시각적 이해) 능력을 추가할 수 있는지에 대한 의문을 던집니다.

CogVLM은 이를 해결하기 위해, 사전 훈련된 언어 모델(pretrained language model)에 이미지 특징(image feature)을 처리할 수 있는 새로운 QKV 행렬과 MLP 레이어를 추가합니다. 이를 통해 텍스트 특징(text feature)과 이미지 특징(image feature)을 함께 처리할 수 있게 되며, 학습 가능한 visual expert를 추가하여 이미지와 텍스트 특징의 깊은 융합(deep fusion)을 이룹니다. 이를 통해 visual understanding 능력을 효과적으로 추가하는 방법을 제안합니다.

 

CogVLM의 아키텍처

CogVLM의 아키텍처는 크게 Vision Transformer (ViT) 인코더, MLP 어댑터, 사전 훈련된 대규모 언어 모델(GPT), 그리고 Visual Expert 모듈로 구성되어 있습니다. 각 구성 요소는 이미지와 텍스트의 깊은 융합(deep fusion)을 가능하게 하여, visual understanding과 언어 모델링을 결합하는 데 중요한 역할을 합니다.

 

CogVLM 인코더 아키텍처

먼저, CogVLM의 인코더는 사전 훈련된 EVA2-CLIP-E를 활용합니다. EVA2-CLIP-E는 기존의 ViT(Visual Transformer) 인코더에서 최종 레이어를 제거한 형태입니다.

마지막 레이어를 제거하는 이유는 [CLS] 토큰이 입력 이미지의 전체적인 정보를 요약한 벡터로, 주로 클래스 분류(classification)를 위해 사용되기 때문입니다. ViT의 최종 레이어는 [CLS] 토큰을 기반으로 이미지의 대표적인 특징을 추출하고, Contrastive Learning에 특화된 정보를 제공합니다.

하지만 CogVLM에서는 Contrastive Learning을 사용하지 않고, 이미지와 텍스트의 Deep Fusion을 목표로 하여 인코딩을 진행합니다. 따라서 마지막 레이어는 제거하고, 대신 ViT의 중간 레이어에서 출력된 정보를 활용하여, 이를 언어 모델과 결합할 수 있도록 구성됩니다.

 

ViT 출력과 언어 모델 임베딩의 매핑

ViT의 출력을 언어 모델의 word embedding과 동일한 공간으로 매핑하기 위해, 2개의 레이어로 구성된 MLP 어댑터를 추가합니다. 이를 통해 ViT에서 추출된 이미지 특징을 언어 모델의 임베딩 공간과 일치시켜, 텍스트와 이미지 특징을 결합할 수 있도록 합니다.

 

Rotary Positional Embedding (RoPE) 사용 이유

CogVLM에서는 출력된 image embedding과 text embedding에 대해 Rotary Positional Embedding (RoPE)을 사용합니다. 또한, image token은 언어 모델에서 동일한 position ID를 가지게 되며, 이는 이미지 특징을 언어 모델에 입력할 때, 텍스트 입력에서 사용하는 위치 정보(Position ID)를 특별히 구분하지 않고 동일하게 처리한다는 의미입니다. 이렇게 처리하는 이유는, 이미지의 위치 정보는 이미 ViT에서 학습되었기 때문에 추가로 positional embedding이 필요하지 않기 때문입니다.


RoPE 사용의 이유

기존의 Positional Embedding 대신 RoPE를 사용하는 이유는, 이미지의 경우 수백에서 수천 개의 token으로 매우 긴 시퀀스가 생성되기 때문입니다. 이렇게 긴 시퀀스를 처리할 때, 모델은 텍스트와 가까운 이미지 하단 정보에 더 많은 주의를 기울일 가능성이 높습니다. 이로 인해 모델이 이미지 하단의 정보를 우선적으로 학습하고, 상단이나 중간의 정보는 제대로 활용되지 못할 수 있습니다.

따라서 RoPE를 사용하여 Positional Embedding을 적용함으로써, 긴 시퀀스에서 상단 및 중간 정보도 효과적으로 처리할 수 있도록 도와줍니다.

 

CogVLM의 Visual Expert 모듈

CogVLM은 Deep Visual-Language Feature Alignment를 가능하게 하는 Visual Expert 모듈을 추가했습니다. 이 Visual Expert 모듈은 QKV 행렬과 MLP로 구성되며, 사전 학습된 언어 모델의 구조와 동일한 shape를 갖습니다.


Visual Expert 모듈의 역할

언어 모델의 Attention Head는 원래 텍스트 데이터를 처리하도록 설계되어 있습니다. 그러나 이미지 데이터를 입력으로 추가할 때, 이 이미지를 언어 모델의 Attention Head가 이해할 수 있는 형태로 정렬(alignment)하는 과정이 필요합니다. Visual Expert 모듈은 이러한 정렬 작업을 통해 Deep Visual-Language Feature Alignment를 수행합니다.


Deep Fusion을 통한 텍스트와 이미지의 의미적 융합

Visual Expert 모듈을 통해, 이미지 데이터는 언어 모델의 Attention Head가 이해할 수 있는 형태로 변환됩니다. 이 과정은 텍스트와 이미지의 의미적 융합을 가능하게 하며, 이를 통해 Deep Fusion이 이루어집니다. 결과적으로, CogVLM은 텍스트와 이미지가 결합된 멀티모달 학습을 보다 효과적으로 수행할 수 있습니다.

 

Visual Expert를 통한 Attention 연산 과정

CogVLM에서 Visual Expert 모듈을 통해 Attention에 이미지와 텍스트를 결합하는 과정은 다음과 같습니다. 그림의 아랫부분을 보면, 서로 다른 데이터 유형인 𝑋_𝐼(이미지)와 𝑋_𝑇(텍스트)에서 추출된 Query, Key, Value를 하나의 벡터로 결합하는 과정을 확인할 수 있습니다.

이미지 임베딩(𝑋_𝐼)과 텍스트 임베딩(𝑋_𝑇)이 어텐션 헤드로 들어가면, 이들은 Q, K, V를 생성하기 위한 가중치 행렬과 곱해지며, concat을 통해 𝑋_𝐼와 𝑋_𝑇에서 추출된 Query, Key, Value를 하나의 벡터로 결합합니다. 그 후, Attention 연산을 수행하여 이미지와 텍스트 간의 상호작용을 학습하게 됩니다.


Feed-Forward Network (FFN) 및 Visual Expert 추가

그 후, Transformer 모델에서 사용되는 Feed-Forward Network (FFN)를 통해, 서로 다른 입력 유형인 이미지와 텍스트를 독립적으로 처리한 결과를 하나의 텐서로 결합합니다. 이 과정은 Visual Expert 모듈을 통해 이루어지며, 이미지와 텍스트의 융합을 위한 중요한 단계를 제공합니다.


Deep Fusion을 통한 텍스트와 이미지의 의미적 융합

이와 같은 방식으로, 서로 다른 데이터 유형인 𝑋_𝐼(이미지)와 𝑋_𝑇(텍스트)을 하나의 벡터로 결합하여 변환하는 과정이 Deep Fusion을 가능하게 만듭니다. 이를 통해, 텍스트와 이미지 간의 의미적 융합이 이루어져, CogVLM은 보다 효과적으로 멀티모달 학습을 수행할 수 있습니다.

 

Pretraining 과정

CogVLM의 pretraining 과정에 사용된 데이터셋은 웹에서 크롤링한 이미지-텍스트 데이터셋인 LAION-2B와 카카오 브레인에서 만든 COYO-700M입니다. 이 데이터셋에서 broken URL, 노이즈가 많은 이미지, 정치적 편향이 있는 사진을 제거한 후, 최종적으로 1.5B개의 이미지를 사용하여 학습을 진행했다고 합니다.


Visual Grounding을 위한 데이터셋 준비

Visual Grounding을 위한 별도의 데이터셋도 준비하여 학습을 진행했습니다. 이 데이터셋은 4천만 개의 이미지에 대해 caption에서 명사를 추출하고, 그 명사가 가리키는 이미지의 바운딩 박스를 GLIP을 사용하여 예측했습니다.

최종적으로, LAION-115M 데이터셋에서 75% 이상의 이미지가 최소 2개 이상의 바운딩 박스를 포함하도록 구성된 데이터셋을 만들어 학습을 진행했습니다.

 

Training 과정

CogVLM의 학습은 두 단계로 진행되었습니다.

1단계: 이미지 캡셔닝 (Image Captioning)

첫 번째 단계는 이미지 캡셔닝입니다. 이 단계에서는 모델이 이미지에 대한 텍스트 설명(캡션)을 생성하도록 학습을 진행하였습니다. 학습에 사용된 데이터는 15억 개의 이미지-텍스트 페어였으며, 배치 사이즈는 8192, 120,000번의 iteration으로 학습이 진행되었습니다.

2단계: 이미지 캡셔닝 + REC (Referring Expression Comprehension)

두 번째 단계에서는 이미지 캡셔닝과 REC(Referring Expression Comprehension)를 결합하여 학습을 진행했습니다. 이 단계에서는 텍스트 설명을 바탕으로 이미지에서 객체의 위치를 예측하는 작업을 학습하였습니다. 예를 들어, 질문: "Where is the object?"에 대해, 모델은 0~999로 정규화된 이미지 위치를 출력하는 방식입니다.

이 단계에서는 배치 사이즈 1024, 60,000번의 iteration으로 학습을 진행했으며, 마지막 3,000번의 iteration에서는 입력 해상도를 224x224에서 490x490으로 변경하여 학습을 진행했습니다.

 

Experiment 결과

CogVLM의 실험 결과를 살펴보면, NoCaps 벤치마크에서 CogVLM이 이전 최고 성능 모델인 GIT2보다 더 높은 성능을 보임을 확인할 수 있습니다.

특히, Out-of-Domain (OOD) 세트에서 GIT2보다 최대 5.7점 더 높은 성능을 기록한 것을 알 수 있습니다. 이는 CogVLM이 다양한 도메인에서 더 우수한 일반화 능력을 가지고 있다는 것을 보여줍니다.

 

CogVLM의 성과: 7개 LVLM 벤치마크에서 SOTA 달성

CogVLM은 7개의 LVLM 벤치마크에서 최첨단(State-of-the-Art, SOTA) 성과를 달성하였습니다. 특히, 멀티모달 모델(Vicuna-13B, LLAMA-33B)보다 더 뛰어난 성과를 보였으며, 다음과 같은 주요 벤치마크에서 뛰어난 성과를 기록했습니다:

  • MM-vet: 텍스트와 이미지 간의 기본적인 관계 이해를 평가하는 벤치마크에서, CogVLM은 Vicuna-13B와 LLAMA-33B에 비해 각각 15.7점과 2.6점 높은 성과를 보였습니다.
  • MMBench: 다양한 도메인에서 멀티모달 모델 성능을 종합적으로 평가하는 벤치마크에서, CogVLM은 Vicuna-13B와 LLAMA-33B보다 각각 9.9점과 14.0점 높은 점수를 기록했습니다.

각 벤치마크의 세부 설명

  • MM-vet: 텍스트와 이미지 관계에 대한 기본적인 이해를 평가하는 벤치마크로, 상식 추론 및 단순한 관계 테스트를 포함합니다.
  • MMBench: 다양한 도메인에서의 멀티모달 모델 성능을 종합적으로 평가하는 벤치마크로, 복합적인 질문과 고난이도 테스트를 포함하여 평가합니다.
  • SEED: 특정 주제나 도메인에 대한 정밀 성능 평가를 다루며, 특정 패턴과 주제 중심의 평가를 진행합니다.
  • POPE: 환각(hallucination) 문제를 평가하며, 정확성과 신뢰성 검증을 수행합니다.
  • MMMU: 수학 문제 해결 능력을 평가하는 벤치마크로, 그래프, 도형, 수식을 통한 문제 해결 능력을 테스트합니다.
  • MathVista: 복잡한 수학적 사고 및 계산 능력을 평가하며, 고급 수학적 추론과 멀티모달 사고 테스트를 진행합니다.

 

아래는 제가 참고한 자료에 대한 url입니다.
논문 paper: https://arxiv.org/abs/2311.03079

 

CogVLM: Visual Expert for Pretrained Language Models

We introduce CogVLM, a powerful open-source visual language foundation model. Different from the popular shallow alignment method which maps image features into the input space of language model, CogVLM bridges the gap between the frozen pretrained languag

arxiv.org

GitHub: https://github.com/zai-org/CogVLM

 

GitHub - zai-org/CogVLM: a state-of-the-art-level open visual language model | 多模态预训练模型

a state-of-the-art-level open visual language model | 多模态预训练模型 - zai-org/CogVLM

github.com