Salesforce에서 BLIP-2 모델에 이어 InstructBLIP 모델의 논문과 구현, 그리고 학습된 가중치를 공개했습니다.
InstructBLIP: Towards General-purpose Vision-Language Models with Instruction Tuning
아래와 같이 Vicuna, T5를 사용한 2 종류의 모델이 있으며,
# ==================================================
# Architectures Types
# ==================================================
# blip2_vicuna_instruct vicuna7b, vicuna13b
# blip2_t5_instruct flant5xl, flant5xxl
Salesforce에서 제공하는 LAVIS 패키지(pip install salesforce-lavis
)를 설치하여 바로 사용해 볼 수 있습니다.
아직 PyPI의 패키지에는 InstructBLIP 모델들이 반영되어 있지 않아서, GitHub에서 직접 설치하셔야 합니다.
git clone https://github.com/salesforce/LAVIS.git
cd LAVIS
pip install -e .
from lavis.models import load_model_and_preprocess
# loads InstructBLIP model
model, vis_processors, _ = load_model_and_preprocess(name="blip2_vicuna_instruct", model_type="vicuna7b", is_eval=True, device=device)
# prepare the image
image = vis_processors["eval"](raw_image).unsqueeze(0).to(device)
코드와 사용법이 궁금하신 분들께서는 GitHub 저장소에서,
논문이 궁금하신 분들께서는 arXiv에서 바로 확인하실 수 있습니다.
(저는 오늘도 읽기 큐에 넣기만 하고 있습니다;;; )
문서의 마지막에 제시된 이미지의 이상한 부분을 설명하라는 지문에 대한 InstructBLIP
과 GPT-4
, miniGPT-4
등의 답변을 비교해 두었는데 인상적이네요.