최근(2023.10)에 나온 논문을 읽어보고 간단히 정리했습니다.
혹시 부족하거나 잘못된 내용이 있다면 댓글 부탁드립니다 🙇♂️
[Microsoft Research]
LLaVA에서 fully-connected vision-language cross-modal connector를 사용한 LLaVA-1.5 공개.
data efficient(1.2M public data) & power(SoTA on 11 benchmarks)
배경
최근에는 LLM 뿐만 아니라 LMM, 즉 Large Multimodal Models에 대한 관심도 뜨겁습니다.
여기서도 마찬가지로 전체 모델을 tuning 하지 않고도 성능을 끌어 올리는 기법 등에 대한 연구가 많이 이뤄지고 있죠.
그중에서도 visual instruction tuning에 관한 내용을 다루고 있습니다.
다른 내용은 차치하고서라도 multi-modal이 태스크를 처리하는 원리에 대해 간단히만 상기해보겠습니다.
이런 모델들은 입력으로 '이미지'와 '텍스트'를 동시에 받습니다.
두 입력을 어쨌든 모델이 처리 가능한 형태의 vector로 변환해야 하는데 이를 처리하는 방식은 여러가지가 있습니다.
그 중에서도 가장 간단한 것은 '이미지 인코더'와 '텍스트 인코더'로 각각 입력을 받아 feature를 추출한 output vector를 구하고,
두 개의 vector를 더하거나 concat하여 multi-modal 모델에 입력으로 주는 방식입니다.
본 논문에서는 LLaVA라는 기존의 LMM에 일부 변형을 가하여 LLaVA-1.5 모델을 개발한 내용을 다루고 있습니다.
Architecture & Experiments
Architecture
위에서 언급한 것과는 조금 달리 이 모델은 image 인코더로 입력 이미지를 vector 형태로 반환하고,
텍스트는 LLM의 tokenizer & embdding을 이용하여 vector화 합니다.
구체적으로 명시되어 있지는 않지만 이미지에 나타난 바로는 두 vector를 concat하는 방식을 취하고 있는 것 같습니다.
이때 image 인코더는 CLIP ViT-L/336px, LLM은 Vicuna v1.5 13B입니다.
LLaVA-1에서 ViT-L/14를 이미지 인코더로 사용했던 것에 비해서 훨씬 좋은 성능과 큰 사이즈를 갖는 이미지 인코더를 사용했다는 것을 알 수 있습니다.
vision encoder를 통해 생성된 output vector는 vision-language connector(MLP)를 거쳐서 LLM에게 전달됩니다.
논문의 설명에 따르면 two-layer MLP를 사용하여 representation을 전달하는 것이 LLaVA의 성능 향상에 도움이 되었다고 합니다.
LLaVA가 학습하는 것은 여기의 fully-conntected projection layer 뿐이라고 합니다.
Data
단 600K의 image-text pair 데이터셋을 학습에 활용했으며, 이는 전부 publicly available data라고 합니다.
물론 이것도 60만 쌍에 이르는 엄청난 양이긴 하지만, 최근 LMM들이 학습한 image-text pair의 개수가 129M(InstructBLIP), 심지어는 1.4B개(Qwen-VL)에 달한다는 점을 감안해보면 말도 안되게 효율적이라고 판단할 수 있습니다.
또 재밌는 것 중 하나가 LLaVA 모델은 text-only 모델인 GPT-4를 이용하여 기존의 COCO 데이터셋에서 instruction-following dataset을 만들었다는 것입니다.
bounding box나 caption dataset을 text로 추가 활용함으로써 conversational-style QA, detailed description, complex reasoning 등으로 변형할 수 있었다고 합니다.
데이터의 품질이 곧 모델 성능에 직접적인 영향을 미친다는 점을 감안할 때, 적은 양의 데이터로 학습되었음에도 불구하고 좋은 성능을 발휘할 수 있었던 핵심적인 이유가 아닐까 싶습니다.
Response formatting prompts
InstructBLIP와 같은 모델들에서의 한계를 생각해보면, response의 format이 모호하다는 점과 LLM을 fine-tuning하지는 않는다는 것을 근거로 들 수 있을 것 같습니다.
심지어 BLIP에서 사용하는 Qformer는 애초에 학습 파라미터의 개수를 최소화하기 위한 장치라서 엄청나게 많은 양의 데이터를 충분히 학습하고 이해하기에는 그 capacity가 부족하다고 볼 수 있습니다.
본 논문에서는 single response formatting prompt를 사용함으로써 구체적인 output format을 지정해줍니다.
모델은 이를 통해 짧은 답변을 반환해야 하는 질문들에 대해 훨씬 더 정확하고 간결한 답변을 내놓게 됩니다.
위 예시의 굵게 처리된 텍스트를 보면 '하나의 단어 또는 phrase'를 사용하여 답변하도록 지시하고 있습니다.
그리고 모델은 'yellow'라는 single word를 답변으로 반환하며 instruction을 잘 따르게 됩니다.
개인적 감상
최근에 GPT-4에 이미지를 인식하는 기능이 배포되면서 굉장히 신기했었는데요,
해당 기능도 VQA 태스크를 굉장히 잘 처리한다는 것을 직접 보면서 감탄했던 기억이 있습니다.
그런 점을 생각해보면 엄청나게 사소해 보이는 변화들로 모델 성능을 크게 개선한 본 연구가 큰 의의를 갖는 것 같습니다.
적은 자원을 사용해서 높은 성능을 끌어올리는 것은 원래 trade-off 관계에 있는 두 요소 중 어떤 것도 포기하지 않겠다는 뜻이라서 뭔가 말이 되지 않는 것처럼 보이지만, 적어도 특정 분야나 태스크에 대해서는 실제 그런 현상들이 나타날 수 있다는 점이 놀랍습니다.
약간 아쉬운 점은, 결국 connector 부분만 학습해서 LLM이 입력을 잘 받기만 하면 된다는 것이 컨셉인 것 같은데 다른 모델들에 대한 의존성이 너무 높다는 것입니다.
이미지 인코더도 입력의 feature를 잘 추출하는 것을 사용하는 것이 당연히 중요하긴 한데 이것에 너무 의존적이라서 사실상 참신함은 제로에 가까운 연구가 아닐까 싶습니다.
그래서 기존 모델을 개선한 중간 버전(그래서 1.5 버전이겠죠?)을 공개했다는 점이 포인트인 것 같습니다.
출처 : https://arxiv.org/abs/2310.03744