사용법 (transformers로 추론)
사용법 (transformers로 추론)
LLaVA는 Hugging Face Transformers에 통합돼 있어서, LlavaForConditionalGeneration과 AutoProcessor로 간편하게 추론할 수 있어요. 컨버세이션 형식으로 이미지 URL과 질문 텍스트를 넘기면 돼요.
단일 입력 추론
import torch
from transformers import AutoProcessor, LlavaForConditionalGeneration
# 모델을 half precision으로 로드
model = LlavaForConditionalGeneration.from_pretrained("llava-hf/llava-1.5-7b-hf", device_map="auto")
processor = AutoProcessor.from_pretrained("llava-hf/llava-1.5-7b-hf")
conversation = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://www.ilankelman.org/stopsigns/australia.jpg"},
{"type": "text", "text": "What is shown in this image?"},
],
},
]
inputs = processor.apply_chat_template(
conversation, add_generation_prompt=True, return_tensors="pt"
)
프롬프트 형식 주의
llava-1.5계열은 다음 텍스트 형식이 필요해요.
"USER: <image>\n<prompt> ASSISTANT:"
- 이미지당 대략 500 토큰이 소요되므로, 텍스트가 잘리면 임베딩 병합 과정에서 실패할 수 있어요.
model.config.vision_config.patch_size나model.config.vision_feature_select_strategy처럼 속성은 모델 config에서 확인할 수 있어요.