Deep Learning/논문 리뷰

Llama 3.1 Vision Language Model 관련 요약 (Llama 3-V)

백지오 2024. 8. 19. 22:23
반응형

지난 7월 23일, Meta의 Llama 3.1이 공개되었습니다. 405B 규모의 오픈소스 프래그십 모델과 함께 다양한 학습 디테일을 담은 90 페이지 분량의 논문이 공개되었는데, 오늘은 아직 모델은 공개되지 않았지만 논문에서 앞서 소개하고 있는 Vision Language Model 관련 부분을 정리해 보았습니다.

Vision adapter 도입

일반적인 언어 모델은 대규모 언어 데이터에서의 사전 학습목적에 맞는 데이터에서의 사후 학습 2단계로 구성됩니다. Llava를 비롯한 Vision-Language Model (VLM)들은 여기에 사전학습된 Vision Encoder를 가져오고, Vision Encoder가 생성하는 visual token을 language model이 이해할 수 있도록 투영하는 adapter 모듈을 도입하여 추가 학습시키는 구조를 갖습니다. Llama VLM 역시 이와 비슷한 학습 단계를 가져갑니다.

  1. LM pre-training / post-training
  2. Vision (Image) encoder pre-training
  3. Vision adapter training

이때, 사전학습된 vision encoder로는 ViT-H/14 구조의 MetaCLIP을 활용하고, adapter는 Llama LM의 각 4번째 계층마다 추가되는 cross-attention layers의 형태입니다. 흥미로운 점은 vision encoder로부터 multi-layer feature 즉, 중간 계층의 feature들을 추출하여 사용하였다고 합니다.

Vision adapter training 단계에서는 LM을 freeze 한 상태로 추가된 모듈(vision encoder, adapter)만을 학습시키는데, 이를 통해 LM의 성능 하한을 유지할 수 있게 됩니다.

학습 디테일

Vision encoder 사전학습에는 크게 특별할 것 없이 224x224 해상도의 이미지-텍스트 페어에서 CLIP style 학습을 수행했습니다.

Image adapter 학습은 사전학습과 사후학습으로 나눌 수 있는데, 사전학습 단계에서는 이미지-텍스트 페어에서 이미지를 336x336 타일 4개로 표현할 수 있는 크기로 resize 하여 사전학습을 진행하였습니다. 학습이 어느 정도 진행된 후에는, 별도로 구성된 annealing 데이터셋에서 타일별 해상도를 336x336에서 점진적으로 증가시켜 가며 학습을 진행하였다고 합니다.

Annealing이라고 하는 기법이 Llama 3.1의 전반에서 많이 사용되는데, 학습에 사용되는 데이터를 점진적으로 바꿔가며 학습시키는 기법이라고 이해하였습니다. 이때, 데이터의 해상도나 토큰 최대 길이를 증가시키거나, 난이도를 높이는 등 점진적으로 데이터의 품질과 난이도를 변화시키며, 경우에 따라 learning rate decay를 적용하거나 가중치를 평균 내는 등 다양하게 활용하였습니다.

VLM 학습의 최종 단계라 할 수 있는 Supervised Finetuning 단계에서도, 앞선 단계들과 같이 LM은 freeze 하고 vision encoder와 adapter만 학습을 진행합니다. 다양한 learning rate, weight decay, 데이터의 랜덤 subset을 추출하여 모델을 여러 개 학습시키고 평가하여, top-K 모델의 가중치를 평균 내어 최종 모델을 얻었다고 합니다. 이러한 Model Soup 방식은 하이퍼파라미터를 grid search로 찾는 것보다 더 높은 성능을 보여준다고 합니다.

데이터

Vision Encoder Pretraining

Vision encoder 사전학습은 간단한 CLIP style로 진행하였으나, 이때도 다양한 방법의 필터링과 큐레이션을 거쳐 데이터의 품질을 보장하고자 노력하였습니다. 

  • 영어가 아니거나, 이미지와 텍스트의 CLIP 유사도가 너무 낮은 저품질의 캡션 제거
  • Meta의 SOTA Copy Detector를 활용하여 중복된 이미지를 제거하고, 유사도가 높은 이미지들끼리 군집화하여 하나의 이미지만 취하기
  • 고품질 텍스트 소스(Wikipedia)로부터 vocab을 생성하고, 캡션 속 n-gram이 vocab에서 T회 이하로 등장하면 pair를 취하여 각 n-gram들이 균등한 횟수로 등장하도록 이미지-텍스트 페어를 샘플링
  • OCR을 추출하여 캡션에 추가
  • 문서를 이미지 형태로 렌더링 하여 데이터에 추가

Vision Encoder 학습 단계에서 등장하는 n-gram의 비율을 조정하거나 OCR을 추가하는 등 텍스트에도 신경을 많이 쓴 것이, OCR-Free 상황에서의 높은 text 벤치마크 성능을 보여준 것으로도 보입니다.

Post Training

SFT 단계에서는 굉장히 다양하고 복잡한 방식으로 선정된 고품질의 멀티 모달 instruction 데이터를 활용하였습니다. 자세한 데이터 큐레이션 방식은 다음 포스팅에서 Llama 3.1의 데이터 큐레이션 방식과 함께 다룰 계획이지만, 인상적인 요소들을 언급해 보자면 아래와 같습니다.

  • 고품질 Academic Dataset의 이미지-텍스트를 탬플릿이나 LLM을 통해 QA 형식으로 변환하여 활용
  • Open-ended QA, Captioning, 대화형 AI의 활용 사례 데이터 등 다양한 소스와 분야에서 데이터를 수집하여 직접 annotation
  • 모델이 학습 과정에서 생성한 응답을 annotator가 수정하여 학습 데이터에 추가하는 model in the loop 스타일 방식

성능 평가

405B 모델의 경우 타사의 플래그십 모델인 GPT-4o, Gemini 1.5 Pro, Claude 3.5와 비슷한 성능을 보이며, 70B 모델이 GPT-4V를 완전히 앞선 것이 인상적입니다.

텍스트 이미지 위주의 TextVQA, DocVQA 성능도 상당한데 별도의 OCR 없이 CLIP encoder로 이루어낸 성과라는 점이 놀랍습니다. 논문에서는 학습 전체 단계에서 vision encoder를 unfreeze 해두는 것이 도움이 된다는 언급이 있네요.


이번 글에서는 Llama 3.1 논문을 통해 공개된 Meta에서 개발 중인 Vision-Language Model (Llama 3-V) 관련 내용을 간단히 정리해 보았습니다. 최근 LLM/VLM 연구 트렌드에 따라 복잡한 모델 중심의 개선보다는 데이터 개선과 확보, 큐레이션에 굉장한 노력을 쏟은 것이 느낌인데요, 모델 자체는 최신 VLM 연구들의 finding을 따라가면서도 다양한 학습 테크닉과 Meta에서 확보한 고품질 사전학습 모델(MetaCLIP 등)들을 활용한 것이 돋보였습니다.

다음 글에서는 Llama 3.1의 학습 데이터에 대한 내용을 다루어보도록 하겠습니다.

읽어주셔서 감사합니다.

반응형