PyTorchKR
- 아래 내용은 GPT 모델로 자동 요약한 것으로, 자세한 내용은 원문을 참고해주세요!
- 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다!
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)로 구성되어 있습니다.
-
시각 인코더(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 값에 의한 문제를 방지하고, 안정성을 높이는 역할을 합니다.
학습 방법
-
워밍업(Warm-up training): 초기 사전 학습 단계에서 이미지-텍스트 쌍을 이용해 모델은 시각-언어 이해를 학습합니다. 이 단계는 대략 5백만개의 이미지-텍스트 쌍을 사용해 2만 스텝의 사전 학습을 수행합니다.
-
사전 학습(Pre-training): 이전 단계에서 워밍업을 수행한 후, LoRA 모듈에 초점을 맞춰 언어 모델이 이미지 모달리티 입력을 처리할 수 있도록 합니다. 이 단계는 초기 단계에서 사용된 데이터셋을 특히 LoRA 모듈 훈련에 재사용합니다.
-
인스트럭션 파인튜닝(Human-like learning / Instruction Fine-tuning): 이 단계에서는 MiniGPT4 또는 LLaVA에서 가져온 이미지-텍스트 쌍을 포함한 인스트럭션을 사용해 모델을 파인튜닝합니다. 이는 모델이 언어적 및 이미지 모달리티 입력에 대해 반응하고 응답을 생성할 수 있도록 합니다.
-
멀티태스크 학습(Multi-task learning): 최종 단계에서는 모델의 대화 능력을 강화하기 위해 멀티 모달 인스트럭션을 사용해 모델을 튜닝합니다. 이 단계는 모델이 다양한 VQA 또는 VSR 작업을 수행하면서 멀티 모달 작업에 대한 일반화 성능을 향상시키는 것을 목표로 합니다.
더 읽어보기
TinyGPT-V 논문
TinyGPT-V 모델 코드 (GitHub 저장소)
TinyGPT-V 모델 가중치 (HuggingFace)
관련 글들
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 뉴스 발행에 힘이 됩니다~