사용법 (transformers로 추론)

사용법 (transformers로 추론)

LLaVA는 Hugging Face Transformers에 통합돼 있어서, LlavaForConditionalGenerationAutoProcessor로 간편하게 추론할 수 있어요. 컨버세이션 형식으로 이미지 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_sizemodel.config.vision_feature_select_strategy처럼 속성은 모델 config에서 확인할 수 있어요.

더 알아보기