🌌 Deep Learning/논문 리뷰 [KOR]

카카오브레인 Multimodal LLM Honeybee 논문 리뷰

복만 2024. 3. 2. 16:09

카카오브레인에서 작년 말 Multimodal LLM인 Honeybee를 발표했다. 아쉽게도 한국어 모델은 아니고 영어 모델이고, 5개의 벤치마크에서 SoTA를 달성했다고 해서 뉴스가 엄청 많이 나왔다.

 

논문: https://arxiv.org/pdf/2312.06742.pdf

깃헙: https://github.com/kakaobrain/honeybee

 

GitHub - kakaobrain/honeybee: The official implementation of project "Honeybee"

The official implementation of project "Honeybee". Contribute to kakaobrain/honeybee development by creating an account on GitHub.

github.com

 

 

 

 

1. 배경

 

MLLM (Multimodal LLM)vision encoder, LLM, projector 세가지로 구성되어 있다.

 

 

vision encoderLLM은 각각 따로따로 사전학습된 것을 사용한다. 따라서 두 모델을 연결해주기 위해 projector가 필요하다. projector은 vision encoder에서 나온 visual feature을 LLM의 feature space로 매핑해주는 역할을 한다. 일반적으로 vision encoder과 LLM은 고정해두고 projector을 학습하는 방식으로 학습이 진행된다.

 

 

따라서 이 projector의 역할이 매우 중요한데, 크게 두 가지 타입으로 나눌 수 있다.

 

 

첫번째는 LLaVA 등에서 사용한 linear projector이다. 말그대로 linear layer을 이용해 image feature을 변환하는 방식인데, 이 방법은 feature을 일대일 매핑해야 하기 때문에 계산량이 많다는 단점이 있다.

 

다른 하나는 Abstractor라고 불리는 기법으로, InstructBLIP, BLIP-2, miniGPT-4 등에서 사용한 방법이다. 이들은 정해진 수의 visual token을 추출해 사용하는 방식으로, visual token의 수를 적절하게 조절할 수 있어 flexibility와 efficiency가 높으나 information loss가 있을 수 있다. Abstractor 방식은 resampler, Q-former 등이 있다.

 

 

이러한 efficiency와 flexibility 때문에 최근 abstractor 방식이 많이 사용되고 있다. 그러나 abstractor은 locality preservation이 약하다는 단점이 있다.

 

 

위 그림을 보면 큰 feature인 man만 잡아내고 pizza, glass 같은 애들은 못 잡아 내고 있는걸 볼 수 있다. 따라서 spatial understanding 능력이 떨어진다.

 

본 논문에서는 이러한 단점을 극복하기 위해 local context를 보존할 수 있는 abstractor 방식을 새롭게 제안하고, 이를 적용한 MLLM인 Honeybee를 발표했다.

 

 

 

2. Honeybee

 

 

Honeybee의 전체 구조는 위와 같다. vision encoder에서 visual feature을 추출 후 projector을 거쳐 visual token으로 변환하고, text token과 함께 LLM의 input으로 넣는다.

 

여기까지는 여타 MLLM들과 동일한 구조이고, 핵심 구조는 새롭게 제안한 projector인 C-abstractorD-abstractor이다. 

 

 

C-Abstractor은 local context를 잘 포착하는 convolution을 이용다. ResNet을 여러개 쌓아 visual token을 추출한다.

D-AbstractorDETR에서 제안한 deformable attention을 이용하여 visual token을 추출한다.

 

 

 

3. 학습방법

 

학습은 두단계로 진행된다. 첫번째로 vision encoder과 LLM은 freeze하고 abstractor만 학습한다. 그 다음으로 freeze를 풀고 모든 parameter을 세부 조정하는 단계를 거친다.

 

LLM으로는 Vicuna-v1.5 (7B, 13B) 두가지 크기의 모델을 이용했고, vision encoder은 CLIP ViT-L/14 모델을 이용했다.

 

 

 

4. 실험결과

 

결과 요약 - 5개 bench에서 SoTA를 달성했다.

 

 

참고로 각 bench의 예시는 다음과 같다.

 

 

솔직히 사람이 봐도 좀 어렵다.

 

보다 자세한 결과 지표는 다음과 같다.

 

 

Qwen이나 LLaVA 등은 더 큰 vision encoder / image resolution / 더 많은 visual token을 이용했지만 Honeybee의 성능이 더 높았다고 한다.

 

 

Honeybee도 이렇게 image resolution과 visual token 수를 높이면 성능이 더 상승한다고 한다.

 

 

다음은 실험단계에서 세운 각 가설에 대한 검증이다. 

 

 

C/D-abstractor이 local context preservation에 좋다는 것을 보이기 위해 spatial understanding capability를 볼 수 있는 task에 대한 성능을 측정했다고 한다.

 

 

위는 performance와 efficiency에 대한 비교이다. linear은 앞서 말했듯이 일대일 대응이라 flexibility가 아예 없다. resampler과 C-abstractor은 flexible하게 디자인할 수 있으며, visual token 수가 늘어날수록 성능이 증가하는 양상을 보이나 C-abstractor의 성능이 훨씬 좋다.

 

 

마지막으로 Honeybee가 생성한 답변의 예시들이다.

 

 

참 잘하네..

반응형