TinyGPT-V: 소형 백본을 사용한 효율적인 멀티모달 LLM (TinyGPT-V: Efficient Multimodal Large Language Model via Small Backbones)

PyTorchKR​:fire::kr: :thinking::speech_balloon:

  • 아래 내용은 GPT 모델로 자동 요약한 것으로, 자세한 내용은 원문을 참고해주세요! :smile:
  • 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다! :bowing_man:

TinyGPT-V: Efficient Multimodal Large Language Model via Small Backbones

개요

TinyGPT-V는 대규모 시각-언어 모델(MLLM: Multimodal Large Language Model)로, 고성능에도 불구하고 매우 효율적인 계산 자원을 사용합니다. 이 모델은 언어 모델과 시각 모듈을 통합하여 복잡한 시각-언어 작업을 수행하도록 설계되었습니다.

TinyGPT-V 모델 구조

TinyGPT-V의 모델은 시각 인코더(Visual Encoder)와 언어 모델(Language Model), 그리고 둘 사이의 선형 투영층(Linear Projection Layer)로 구성되어 있습니다.

TinyGPT-V 모델 학습 단계

TinyGPT-V Model Structure

  • 시각 인코더(Visual Encoder) : TinyGPT-V는 EVA의 ViT를 기반으로 하는 시각 인코더를 사용합니다. 이 인코더는 모델 학습 시에는 고정된(freeze) 상태를 유지합니다.

  • 선형 투영층(Linear Projection Layer) : BLIP-2 모델의 Q-Former와 비슷한 역할을 하는 것으로, 시각 인코더로부터 추출한 시각적 특징을 언어 모델이 이해할 수 있는 형태로 변경(projection)하는 역할을 합니다.

  • 언어 모델(Language Model): 2.7B 규모의 매개변수를 갖는 Phi-2 모델을 사용하고 있습니다. 이 언어 모델의 매개변수들 또한 고정되어 있으며, 시각적 및 언어적 정보를 효과적으로 처리하는 데 중요한 역할을 합니다.

  • 정규화 및 LoRA(Normalization and LoRA) : 마지막으로 소규모 LLM을 효과적으로 학습시키기 위해 정규화 및 LoRA(Low-Rank Adaptation) 기법을 사용합니다. 이는 학습 중 NaN이나 INF 값에 의한 문제를 방지하고, 안정성을 높이는 역할을 합니다.

학습 방법

  1. 워밍업(Warm-up training): 초기 사전 학습 단계에서 이미지-텍스트 쌍을 이용해 모델은 시각-언어 이해를 학습합니다. 이 단계는 대략 5백만개의 이미지-텍스트 쌍을 사용해 2만 스텝의 사전 학습을 수행합니다.

  2. 사전 학습(Pre-training): 이전 단계에서 워밍업을 수행한 후, LoRA 모듈에 초점을 맞춰 언어 모델이 이미지 모달리티 입력을 처리할 수 있도록 합니다. 이 단계는 초기 단계에서 사용된 데이터셋을 특히 LoRA 모듈 훈련에 재사용합니다.

  3. 인스트럭션 파인튜닝(Human-like learning / Instruction Fine-tuning): 이 단계에서는 MiniGPT4 또는 LLaVA에서 가져온 이미지-텍스트 쌍을 포함한 인스트럭션을 사용해 모델을 파인튜닝합니다. 이는 모델이 언어적 및 이미지 모달리티 입력에 대해 반응하고 응답을 생성할 수 있도록 합니다.

  4. 멀티태스크 학습(Multi-task learning): 최종 단계에서는 모델의 대화 능력을 강화하기 위해 멀티 모달 인스트럭션을 사용해 모델을 튜닝합니다. 이 단계는 모델이 다양한 VQA 또는 VSR 작업을 수행하면서 멀티 모달 작업에 대한 일반화 성능을 향상시키는 것을 목표로 합니다.

더 읽어보기

TinyGPT-V 논문

TinyGPT-V 모델 코드 (GitHub 저장소)

TinyGPT-V 모델 가중치 (HuggingFace)

관련 글들


:fire:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:incoming_envelope:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 뉴스 발행에 힘이 됩니다~ :bowing_man:

3개의 좋아요