Transformers 사용법 (from_pretrained)

Transformers 사용법 (from_pretrained)

Qwen3-VL은 Hugging Face Transformers에 정식으로 통합되어 있어요. Qwen3VLForConditionalGenerationAutoProcessor를 쓰면 이미지·텍스트를 함께 넣고 추론할 수 있어요.

주의할 점은 PEFT·추론 시 device_map="auto"attn_implementation="sdpa"를 함께 쓰면 메모리 관리가 편하다는 거예요. Qwen3-VL은 FlashAttention과 SDPA를 모두 지원해요.

출처: https://huggingface.co/docs/transformers/main/en/model_doc/qwen3_vl

기본 예시

from transformers import AutoProcessor, Qwen3VLForConditionalGeneration

model = Qwen3VLForConditionalGeneration.from_pretrained(
    "Qwen/Qwen3-VL",
    device_map="auto",
    attn_implementation="sdpa",
)
processor = AutoProcessor.from_pretrained("Qwen/Qwen3-VL")

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
            {"type": "text", "text": "Describe this image."},
        ],
    }
]
inputs = processor.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_dict=True,
    return_tensors="pt",
)
inputs.pop("token_type_ids", None)

generated_ids = model.generate(**inputs, max_new_tokens=128)
generated_ids_trimmed = [
    out_ids[len(in_ids):]
    for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed,
    skip_special_tokens=True,
    clean_up_tokenization_spaces=False,
)
print(output_text)

특수 토큰

Qwen3VLConfig에 정의된 기본 특수 토큰 값이에요.

  • image_token_id: 151655 — 이미지 자리 표시
  • video_token_id: 151656 — 영상 자리 표시
  • vision_start_token_id: 151652 — 멀티모달 구간 시작
  • vision_end_token_id: 151653 — 멀티모달 구간 끝

더 알아보기