Transformers 사용법 (from_pretrained)
Transformers 사용법 (from_pretrained)
Qwen3-VL은 Hugging Face Transformers에 정식으로 통합되어 있어요. Qwen3VLForConditionalGeneration과 AutoProcessor를 쓰면 이미지·텍스트를 함께 넣고 추론할 수 있어요.
주의할 점은 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 — 멀티모달 구간 끝
더 알아보기
- Transformers 모델 문서: https://huggingface.co/docs/transformers/main/en/model_doc/qwen3_vl
- 원본 저장소: https://github.com/QwenLM/Qwen3-VL