카카오브레인에서 작년 말 Multimodal LLM인 Honeybee를 발표했다. 아쉽게도 한국어 모델은 아니고 영어 모델이고, 5개의 벤치마크에서 SoTA를 달성했다고 해서 뉴스가 엄청 많이 나왔다.
논문: https://arxiv.org/pdf/2312.06742.pdf
깃헙: https://github.com/kakaobrain/honeybee
1. 배경
MLLM (Multimodal LLM)은 vision encoder, LLM, projector 세가지로 구성되어 있다.
vision encoder과 LLM은 각각 따로따로 사전학습된 것을 사용한다. 따라서 두 모델을 연결해주기 위해 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-abstractor과 D-abstractor이다.
C-Abstractor은 local context를 잘 포착하는 convolution을 이용다. ResNet을 여러개 쌓아 visual token을 추출한다.
D-Abstractor은 DETR에서 제안한 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가 생성한 답변의 예시들이다.
참 잘하네..