About Problem

Idea

text-to-text 분야에서는 autoregressive(GPT) 또는 masked language modeling(BERT) 등의 LLM들이 텍스트 생성이나 요약, QA 등 여러 텍스트 관련 task에 있어서 훌륭한 성과를 보여주고 있다.

그러나, 이런 모델은 PURE-TEXT WORLD에 한정되어 있기에, 인간이 느끼는 흔한 감각들을 느끼지 못하고, 이는 곧 모델의 활용에 큰 제약을 만들게 된다.

이러한 흐름에서, 인간의 여러 감각 중 시각(Vision)의 영역에서도 해당 모델을 적용해보고자 하는 시도가 있었고, 그런 시도의 연장선이 닿은 곳이 LVLMs(Large Vision Language Models)이다.

그러나, 그 시대의 Open-sourced model은 Openai 등 기업이 closed-source로 가지고 있는 모델에 비해 성능이 떨어졌고, 이로 인하여 오픈 소스 커뮤니티에서의 탐색과 적용의 어려움이 컸다.

그래서, Alibaba Group에서는 고성능이면서 다재다능한 Foundation Model을 만들고자 했고, 그러한 결과가 Qwen-VL모델이다.

Key Previous Papers

  • Qwen : Introducing qwen-7b: Open foundation and human-aligned models [PAPER]
  • ViT : An image is worth 16x16 words: Transformers for image recognition at scale [PAPER]

Model Architecture

보통의 LVLMs들은 LLM과 Vision Encoder로 구성된다. Qwen-VL도 예외는 아니며, 추가로 Position-aware Vision-Language Adapter가 추가되었다.

LLM

Qwen-VL의 LLM은 이름에서도 유추할 수 있다시피, Qwen-7B을 사용하였다.

SIZE : 7.7B

Vision Encoder

Qwen-VL의 Vision Encoder는 ViT(Vision Transformer)를 사용하였고, Pretrained Weight는 Openclip’s ViT-bigG를 사용하였다.

SIZE : 1.9B

Position-aware Vision-Language Adapter (VL-Adapter)

ViT는 Patch 단위로 image를 embedding 하게되며, 이 과정에서 [CLS] token만을 사용하는 것이 아니라면, image size에 따라 patch의 개수가 바뀌게 된다. (#_of_patches, embedding dimension) 이렇게 바뀐 patch의 개수는 embedding sequence 길에 영향을 미칠 것이다.

작은 이미지의 경우에는 문제가 크게 되지 않겠지만, 지나치게 큰 이미지를 받게 되면, 긴 embedding sequence가 발생하게 될 것이고, 이것은 효율성에 문제를 발생시킬 수 있다. 따라서, 저자들은 Position-aware Vision-Language Adapter를 추가하여 256개의 token으로 token의 수를 줄였다. (#_of_patches, embedding dimension) -> (256, embedding dimension)

해당 모듈은 single-layer cross-attention 구조로 구성되어 있다. QUERY : Trainable embedding vector
KEY : image embedding features from Image Encoder (ViT)
VALUE : Key와 동일 (논문에 명시적 언급은 없었으나, 관행상 Key와 동일할 것으로 추정됨)
+ : 2D absolute positional embedding을 query-key pairs에 추가함

SIZE : 0.08B

Token Structure

General tokens

Image feature input token과 Text feature input token을 구분하기 위해서 아래의 <img> token과 </img> token을 사용하였다.

<img> : image start special token
</img> : image end special token
<eos> : end of sequence token

EXAMPLE : \ [IMG TOKENS] \</img> Generate the caption in English: </div> ### Task-specific tokens 기존의 Image-text description이나, QA를 제공하던 모델에 비해, Qwen 모델은 지정된 형식에 따라 ROI(Region-Of-Interest)를 이해하고 생성하는 능력을 추가하여, 세밀한 시각적 이해 능력을 향상시키고자 하였다. 따라서, bounding box에 해당하는 정보를 추가하기 위하여, \와 \를 추가하였고, 해당 Bounding box에 대한 정보를 텍스트로 기술하기 위하여 \와 \를 추가하였다. \ : bounding box start token \ : bounding box end token \ : bounding box description start token \ : bounding box description end token 또한, 자세한 토큰의 정보의 사용 예제는 다음과 같다.
## Training steps
### Pre-training Pre-training은 training의 첫 번째 step으로, web에서 크롤링된 large scale, weakly labeled인 (image,text) pair를 사용하여 vision encoder의 결과를 text로 훈련된 LLM(Qwen)에 호환가능하도록 만드는 것이다. 이를 위해, Vision encoder와 VL-adpter를 제외한 LLM은 freeze하였으며, VLM이 생성한 text와 label text로 산출한 Cross-Entropy Loss를 Minimize하였다. 1.4B의 (image,text)를 사용하였다. ### Multi-task Pre-training Multi-task Pre-training은, high-quality, fine-grained인 Vision-Language 쌍에 대한 annotation data를 사용하여 학습을 진행하는 것이고, 이 과정에서 7개 (Captioning, VQA, Caption with Grounding, Referring grounding, Grounded captioning, OCR, Pure-text Autoregression) task에 대해 학습을 진행한다. 이는 pre-training 과정에서 학습되지 못한 detail한 semantics를 학습하기 위함이다. 따라서, 모든 module에 대해서 training을 진행하였고, pre-training과 같이 VLM이 생성한 text와 label text로 산출한 Cross-Entropy Loss를 Minimize하였다. 자세한, task에 대한 detail은 위의 token에 대한 설명을 참고하면 더 이해가 쉬울 것이다. 해당 이미지에서의 파란색이 answer이다. ### Supervised Fine-tuning 위의 Pre-training 단계로 만든 VLM을 바탕으로, LLM의 지시 이해 능력 및 대화 능력을 향상시키기 위해 SFT (Supervised Fine-tuning)을 진행하였다. 형식은 아래와 같다.