-
VisionLLM: Large Language Model is alsoan Open-Ended Decoder for Vision-Centric Tasks논문 2023. 12. 12. 21:12
https://arxiv.org/abs/2305.11175
이 업계의 최신 기술은 빠르게 변화한다는 게 피부로 와 닿는다. ChatGPT가 나온 후 많은 LLM 모델이 쏟아져 나왔다. 그리고 이제는 Vision 영역에까지 LLM이 손을 뻗치려 한다.
Introduction
ChatGPT와 같은 LLM은 다양한 NLP 과제에서 뛰어난 Zero-shot 성능을 보여주었다. 그러나 자연어와 비전 데이터의 내재적 차이로 인해서 LLM의 장점이 Vision 영역에 바로 적용되지는 못했다. 한편, 기존의 Vision 영역은 다음과 같은 패러다임을 가지고 발전해 왔다.
- pre-training -> fine-tuning
사전 학습된 모델을 용도에 맞게 가져와 파인 튜닝한 후 사용하는 방법이다. 다양한 과제를 처리하는 모델을 개발하는 것이 불가능하다. - Visual prompt tuning
프롬프트의 형식이 일반적인 언어 지시와 매우 동떨어져 있어 사용하기가 어렵다. - VisionLLM
다양한 작업을 일반적인 언어 지시를 통해 수행할 수 있다.
Vision LLM
Vision LLM은 3개의 구성요소로 나누어 볼 수 있다.
- 단일화된 언어 지시를 통해 Vision 과제를 처리하는 일관적인 인터페이스를 제공한다.
- 언어 지시에 따른 이미지 토크나이저로 주어진 언어 프롬프트에 따라 시각 정보를 인코딩한다.
- 다양한 과제를 처리하는(open-task) LLM 기반 디코더로 언어 지시와 인코딩된 시각 정보를 활용하여 결과를 산출한다.
Unified Language Instruction
Vision Tasks는 두 종류로 나눌 수 있다. 하나는 Vision-Language Task이고 다른 하나는 Vision-Only Task이다. 각 과제의 세부 과제의 언어 지시 형식은 다음과 같다.
1. Vision-Language Task
분야 언어 지시 형식 image captioning “The image is <image>. Please generate a caption for the image: ” visual question answering “The image is <image>. Please generate an answer for the image according to the question: <question>” 여기서 <image>는 이미지 토큰을 <question>은 실제 질문을 의미한다.
2. Vision-Only Task
분야 언어 지시 형식 object detection
instance segmentation
pose estimation“Segment all the objects of category set <class> within the <range> of the image
and generate a list of the format (c, x1, y1, x2, y2, ..., x8, y8).여기서 <class>는 category set을, <range>는 연속적인 점들의 좌표를 몇 등분할 것인지를 나타낸다.
Language-Guided Image Tokenizer
이미지는 다음과 같은 과정을 거쳐 토큰화된다.
재료 함수 결과물 image backbone
(e.g. ResNet)Visual Features $F_v$
of four different scalesprompt text encoder
(e.g. BERT)Language Featrues $F_i$ $F_v$, $F_l$ cross attention multi-scale language-aware
visual featuresmulti-scale language-aware
visual featurestransformer-based network
(e.g. Deformable DETR)image tokens LLM-based Open-Ended Task Decoder
디코더로는 LLM 모델인 LLaMA를 사용하였다.그러나 LLaMA는 비전 중심 과제를 수행에 적합하지 않은 몇몇 내재적 단점을 가지고 있었으며, 다음과 같은 방법을 통해 내재적 단점을 보완하고자 하였다.
- LLaMA는 0~9까지의 숫자 토큰밖에 가지고 있지 않다. 이는 위치를 통해 물체를 찾는 것을 제한한다. 이를 해결하기 위해서 1023개의 위치 토큰을{<p-512>, ..., <p0>, ..., <p512>} 추가했다.
- LLaMA는 특정 범주를 나타내기 위해 여러 개의 토큰을 사용한다. 이는 물체 분류에 비효율적이다. 범주 이름 토큰을 대체하기 위해서 512개의 분류 토큰을{<c0>, <c1>, ..., <c511>} 추가했다. 각 토큰이 특정 범주를 나타내지 않기 때문에(semantics-agnostic) 언어 지시를 통해{"person":<c0>,"car":<c1>,"black cat":<c2>,...} 사용자가 범주를 구체화할 수 있다.
- LLaMA는 시지각 과제를 수행하기에는 너무 평범(casual)하다. 이를 해결하기 위해서 "output-format-as-query decoding"이라는 방법을 사용했다. 이는 단순히 언어 지시에서 output format(e.g., “<cls> <x1> <y1> <x2> <y2>”)을 추출한 후, 해당 토큰을 쿼리로서 디코더에 제공하여, 디코더가 그 쿼리 형태에 맞춰 결과물을 산출하게 한 것이다.
결과적으로 Vision-Language Task뿐만 아니라 Vision-Only Task도 언어 과제와 마찬가지로 크로스 엔트로피를 통해 지도(supervise)할 수 있게 된다. 또한 효율적인 학습을 위해 본 연구진은 Low-Rank Adaptation (LoRA) 접근법을 사용하였다.
Experiments
Task-Level Customization
- Object Detection: 60.2% mAP(InternImage-H)로 높은 성능을 보여준다. 이는 당시(23년 5월) SOTA 모델에 근접한 수치이다.
- Visual Grounding: 80.6 P@0.5(ResNet-50), 86.7 P@0.5(InternImage-H)로 준수한 성능을 보여준다. visual grounding 과제와 object detection 과제가 충동을 일으킬 수 있지만, 단일화된 언어 지시와 LLM의 높은 언어 지시 이해력으로 성능을 확보한 것으로 추측된다.
- Instance Segmentation: AP50(61.2% with InternImage-H)은 준수한 성능을 보였으나, AP75(27.6% with InternImage-H)는 낮은 성능을 보였다. 다음과 같은 세 가지 요인으로 AP50과 AP75 성능 사이의 간격을 설명할 수 있다.
- 연속된 점들을 X(X: 제한된 정수, i.e., 8~24)등분함으로 정보 손실이 발생할 수 있다.
- 메모리와 계산상의 제약으로 인해 모델 내 사용 가능한 점의 개수가 제한되었는데, 이로 인해 성능이 감소할 수 있다.
- 점 기반 방법은 통상적으로 직접적인 마스크 예측 방법(i.e., Mask R-CNN)보다 낮은 성능을 보인다.
- Image Captioning: InternImage-H를 사용했을 때 BLEU-4 점수가 32.1, CIDEr 점수가 114.2로 준수한 성능을 보였다.
Object-Level & Output Format Customization
COCO 데이터셋에 다음과 같은 두 가지 변수의 변경(customization)을 통해 성능 변화를 야기할 수 있었다.
- 언어 지시에서 인지 가능한 <class> 개수
- 결과 포맷에서 지정하는 점 개수
Ablation Study
Vision LLM의 몇몇 중요 요소 및 hyper-parameter의 효과를 분석한 결과는 다음과 같다.
- Single Task vs. Multiple Tasks: 단일 과제를 수행하도록 훈련된 모델이 다중 과제를 수행하도록 훈련된 모델보다 성능이 약간 더 좋았다. (Table 1 참조)
- Text Encoder in Language-Guided Image Tokenizer
- Text Encoder로 BERT를 사용하는 것이 Visual Grounding 과제(COCO 데이터셋)에서는 중요하지 않지만[44.7 vs 44.8] Object Detection 과제(RefCOCO 데이터셋)에서는 중요하다[48.1 vs 84.1].
- 학습 시 Text Encoder를 얼리는 것이 Visual Grounding 과제와 Object Detection 과제에서 모두 모델 성능을 매우 악화하는 것으로 나타났다. 이는 Text Encoder가 비전과 언어 양상(modalities)을 조율하는 역할을 맡고 있음을 보여준다.
- Image Tokenization Method: Vison LLM에서 사용한 이미지 토큰화 방법과 feature maps에 대해 average pooling을 이용한 방법을 비교한 결과 Vision LLM에서 사용한 방법의 성능이 더 높았다. 이는, 다양한 물체 크기에서 정보를 얻었기 때문으로 보인다.
- Number of Localization Tokens: 시지각 과제에서 사용하는 위치 토큰의 개수를 257개부터 2049개까지 늘려본 결과 특정 지점에 도달하기까지 성능이 정적으로 증가하는 것으로 확인되었다.
감상
각 Vision 과제에서의 SOTA 모델 방법론 및 성능에 대해 잘 알지 못해 Vision LLM의 위대함에 대해 잘 알기 어려웠다. 참고로 GPT 시리즈는 더 충격적인 성능을 보였던 것으로 기억한다. 그러나 프롬프트가 일반인들도 금방 숙지하고 사용할 수 있는 수준으로 보여, 비전 데이터 처리의 간편함이 대중에게 풀리기까지 얼마 남지 않은 것 같다는 생각이 든다. 한편, Vison LLM을 기본 모델로 내세우고 있는만큼 성능을 개선시킬 수 있는 적용 가능한 방법이 다수 있을 것으로 예상된다. Vision LLM 논문 내에서도 Backbone 모델의 변경, Customization, Ablation Study를 통해 모델의 성능이 변화함을 확인할 수 있었다.
'논문' 카테고리의 다른 글
- pre-training -> fine-tuning