courses
비전-언어 모델(VLMs)은 AI 시스템이 이미지와 텍스트를 함께 이해하고 추론하도록 하여 산업 전반을 빠르게 혁신하고 있습니다. 기존 컴퓨터 비전 모델과 달리, 최신 VLM은 복잡한 이미지를 해석하고 시각 콘텐츠에 대한 상세한 질문에 답하며, 텍스트가 포함된 동영상과 문서까지 처리할 수 있습니다.
이러한 특징은 속도보다 정밀도가 중요한 의료 진단, 자동화 품질 검사, 민감한 업무 등에 특히 유용합니다.
이 블로그에서는 2026년을 대표하는 비전-언어 모델을 오픈 소스와 상용 모델 모두 포함해 살펴봅니다. 각 모델의 고유한 역량을 짚고, 성능과 벤치마크 결과를 제시합니다. 개발자와 연구자를 위해 직접 빠르게 시도할 수 있도록 예제 코드 스니펫도 함께 담았습니다.
이 모델들의 기본 개념을 더 알고 싶다면 Image Processing in Python 스킬 트랙을 확인하세요.
1. Gemini 2.5 Pro
Gemini 2.5 Pro는 Google의 가장 진보된 AI 모델로, 현재 비전과 코딩 과제 모두에서 LMArena 및 WebDevArena 리더보드를 선도하고 있습니다. 텍스트, 이미지, 오디오, 비디오 전반의 복잡한 추론과 이해를 위해 설계되었습니다.
비전-언어 역량 측면에서 Open LLM 리더보드 상위권에 올라 있습니다. Gemini 2.5 Pro는 이미지와 동영상을 해석하고 문맥을 반영한 상세한 설명을 생성하며, 시각 콘텐츠와 관련된 질문에 답할 수 있습니다.

출처: Google Gemini
Gemini 웹 앱 gemini.google.com/app 또는 Google AI Studio를 통해 Gemini 2.5 Pro를 무료로 이용할 수 있습니다.
개발자는 Gemini API, Vertex AI, 공식 Python SDK를 통해 Gemini 2.5 Pro를 사용할 수 있어, 자체 애플리케이션이나 워크플로에 비전-언어 기능을 손쉽게 통합할 수 있습니다.
사용 예시:
from google.genai import types
with open('path/to/image.jpg', 'rb') as f:
image_bytes = f.read()
response = client.models.generate_content(
model='gemini-2.5-pro',
contents=[
types.Part.from_bytes(
data=image_bytes,
mime_type='image/jpeg',
),
'Explain the image.'
]
)
print(response.text)
2. InternVL3-78B
InternVL3는 전작 InternVL 2.5를 능가하는 고급 멀티모달 대형 언어 모델(MLLM) 시리즈입니다. 멀티모달 지각과 추론에 강점을 보이며, 도구 사용, GUI 에이전트, 산업용 이미지 분석, 3D 비전 지각 등 향상된 기능을 제공합니다.
특히 InternVL3-78B는 비전 컴포넌트로 InternViT-6B-448px-V2_5를, 언어 컴포넌트로 Qwen2.5-72B를 사용합니다. 총 784억 1천만 개의 파라미터를 갖춘 InternVL3-78B는 MMMU 벤치마크에서 72.2점을 기록하여 오픈 소스 MLLM 중 새로운 최고 수준을 달성했습니다. 성능은 선도적 상용 모델과도 경쟁합니다.

출처: OpenGVLab/InternVL3-78B · Hugging Face
사용 예시:
# pip install lmdeploy>=0.7.3
from lmdeploy import pipeline, TurbomindEngineConfig, ChatTemplateConfig
from lmdeploy.vl import load_image
model = 'OpenGVLab/InternVL3-78B'
image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg')
pipe = pipeline(model, backend_config=TurbomindEngineConfig(session_len=16384, tp=4), chat_template_config=ChatTemplateConfig(model_name='internvl2_5'))
response = pipe(('Explain the image.', image))
print(response.text)
3. Ovis2-34B
Ovis2는 AIDC-AI가 개발한 멀티모달 대형 언어 모델(MLLM) 시리즈입니다. 이 모델들은 시각 및 텍스트 임베딩을 효과적으로 정렬하도록 설계되었습니다. 특히 Ovis2-34B는 비전 인코더로 aimv2-1B-patch14-448, 언어 모델로 Qwen2.5-32B-Instruct를 사용하며, 총 340억 파라미터를 갖습니다. 최대 컨텍스트 길이는 32,768 토큰을 지원하고, 효율적 처리를 위해 bfloat16 정밀도를 사용합니다.
Ovis2-34B는 다양한 벤치마크에서 우수한 성능을 보였으며, 다음과 같은 결과를 달성했습니다:
- MMBench-V1.1: 86.6%
- MMStar: 69.2%
- MMMUval: 66.7%
- MathVista: 76.1%
- MMVet: 77.1%
- VideoMME: 자막 포함 75.6%

출처: AIDC-AI/Ovis2-34B · Hugging Face
사용 예시:
import torch
from PIL import Image
from transformers import AutoModelForCausalLM
# load model
model = AutoModelForCausalLM.from_pretrained("AIDC-AI/Ovis2-34B",
torch_dtype=torch.bfloat16,
multimodal_max_length=32768,
trust_remote_code=True).cuda()
text_tokenizer = model.get_text_tokenizer()
visual_tokenizer = model.get_visual_tokenizer()
# single-image input
image_path = '/data/images/example_1.jpg'
images = [Image.open(image_path)]
max_partition = 9
text = 'Describe the image.'
query = f'<image>\n{text}'
# format conversation
prompt, input_ids, pixel_values = model.preprocess_inputs(query, images, max_partition=max_partition)
attention_mask = torch.ne(input_ids, text_tokenizer.pad_token_id)
input_ids = input_ids.unsqueeze(0).to(device=model.device)
attention_mask = attention_mask.unsqueeze(0).to(device=model.device)
if pixel_values is not None:
pixel_values = pixel_values.to(dtype=visual_tokenizer.dtype, device=visual_tokenizer.device)
pixel_values = [pixel_values]
# generate output
with torch.inference_mode():
gen_kwargs = dict(
max_new_tokens=1024,
do_sample=False,
top_p=None,
top_k=None,
temperature=None,
repetition_penalty=None,
eos_token_id=model.generation_config.eos_token_id,
pad_token_id=text_tokenizer.pad_token_id,
use_cache=True
)
output_ids = model.generate(input_ids, pixel_values=pixel_values, attention_mask=attention_mask, **gen_kwargs)[0]
output = text_tokenizer.decode(output_ids, skip_special_tokens=True)
print(f'Output:\n{output}')
4. Qwen2.5-VL-72B-Instruct
Qwen2.5-VL-72B-Instruct는 Qwen 패밀리의 멀티모달 대형 언어 모델(MLLM)로, 시각 및 텍스트 정보를 함께 이해하고 처리하도록 설계되었습니다. 많은 오픈 소스 MLLM이 이를 기반으로 하여, Qwen 모델 시리즈가 AI 연구 진전에 중요한 역할을 하고 있음을 보여줍니다.
Qwen2.5-VL-72B-Instruct는 이미지와 비디오 이해, 에이전트 기능 등 다양한 벤치마크에서 강력한 성능을 보입니다. MMMUval 70.2, MathVista_MINI 74.8, MMStar 70.8을 기록했습니다.

출처: Qwen/Qwen2.5-VL-72B-Instruct · Hugging Face
사용 예시:
# pip install qwen-vl-utils[decord]==0.0.8
from transformers import Qwen2_5_VLForConditionalGeneration, AutoTokenizer, AutoProcessor
from qwen_vl_utils import process_vision_info
# default: Load the model on the available device(s)
model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
"Qwen/Qwen2.5-VL-72B-Instruct", torch_dtype="auto", device_map="auto"
)
# default processer
processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-VL-72B-Instruct")
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
},
{"type": "text", "text": "Describe this image."},
],
}
]
# Preparation for inference
text = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
padding=True,
return_tensors="pt",
)
inputs = inputs.to("cuda")
# Inference: Generation of the output
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)
5. o3 Latest
OpenAI의 o3는 더 높은 지능, 더 낮은 비용, 더 효율적인 토큰 사용을 목표로 한 새로운 추론 모델입니다. 고급 추론 능력을 강조하는 차세대 모델을 대표합니다.
이 모델은 수학, 과학, 코딩, 시각적 추론 과제에서 새로운 기준을 세웠습니다. 다양한 비전 벤치마크에서 o4-min과 o1을 능가하며, o3 Pro와 비슷한 수준을 보입니다.

출처: Introducing OpenAI o3 and o4-mini | OpenAI
사용 예시:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="o3-2025-04-16",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "what's in this image?"},
{
"type": "input_image",
"image_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
},
],
}],
)
print(response.output_text)
6. GPT 4.1 (2025-04-14)
GPT-4.1는 GPT-4.1, GPT-4.1 Mini, GPT-4.1 Nano를 포함하는 새로운 비추론(non-reasoning) 모델 계열입니다. 다양한 벤치마크에서 전작인 GPT-4o 및 GPT-4o Mini를 능가했습니다.
GPT-4.1은 차트, 다이어그램, 시각 수학 분석이 개선되는 등 강력한 비전 기능을 유지합니다. 사물 개수 세기, 시각적 질의응답, 다양한 형태의 OCR 작업에 뛰어납니다.

출처: Introducing GPT-4.1 in the API | OpenAI
사용 예시:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-4.1-2025-04-14",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "what's in this image?"},
{
"type": "input_image",
"image_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
},
],
}],
)
print(response.output_text)
7. Claude Sonnet 4
Anthropic은 Claude 모델의 차세대를 선보였습니다: Claude 4 Opus와 Claude 4 Sonnet입니다. 이 모델들은 코딩, 고급 추론, AI 역량에서 새로운 기준을 제시하도록 설계되었습니다.
향상된 비전 기능을 갖추어 이미지를 이해한 뒤 그에 기반해 코드를 생성하거나 정보를 제공할 수 있습니다. 본질적으로 코딩 모델이지만 멀티모달 기능도 갖추고 있어 다양한 파일 형식을 이해합니다.
아래 비교 표를 보면, Claude 4는 특히 시각화 추론과 시각적 질의응답 분야에서 OpenAI의 GPT-3 모델을 제외한 모든 상위 모델을 능가합니다.

출처: Introducing Claude 4 \ Anthropic
사용 예시:
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "url",
"url": "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg",
},
},
{
"type": "text",
"text": "Describe this image."
}
],
}
],
)
print(message)
8. Kimi-VL-A3B-Thinking-2506
Kimi-VL-A3B-Thinking-2506은 멀티모달 AI의 중요한 진전을 보여 주는 오픈 소스 모델입니다. 멀티모달 추론 벤치마크에서 뛰어난 정확도를 기록했으며, MathVision 56.9, MathVista 80.1, MMMU-Pro 46.3, MMMU 64.0을 달성하면서 평균적으로 "사고 길이"를 20% 단축했습니다.
추론 능력 외에도 2506 버전은 일반적인 시각 지각과 이해가 향상되었습니다. MMBench-EN-v1.1(84.4), MMStar(70.4), RealWorldQA(70.0), MMVet(78.4) 등 비사고(non-thinking) 모델과 비슷하거나 능가하는 성능을 보입니다.

출처: MoonshotAI/Kimi-VL: Kimi-VL
사용 예시:
from transformers import AutoProcessor
from vllm import LLM, SamplingParams
model_path = "moonshotai/Kimi-VL-A3B-Thinking-2506"
llm = LLM(
model_path,
trust_remote_code=True,
max_num_seqs=8,
max_model_len=131072,
limit_mm_per_prompt={"image": 256}
)
processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)
sampling_params = SamplingParams(max_tokens=32768, temperature=0.8)
import requests
from PIL import Image
def extract_thinking_and_summary(text: str, bot: str = "◁think▷", eot: str = "◁/think▷") -> str:
if bot in text and eot not in text:
return ""
if eot in text:
return text[text.index(bot) + len(bot):text.index(eot)].strip(), text[text.index(eot) + len(eot) :].strip()
return "", text
OUTPUT_FORMAT = "--------Thinking--------\n{thinking}\n\n--------Summary--------\n{summary}"
url = "https://huggingface.co/spaces/moonshotai/Kimi-VL-A3B-Thinking/resolve/main/images/demo6.jpeg"
image = Image.open(requests.get(url,stream=True).raw)
messages = [
{"role": "user", "content": [{"type": "image", "image": ""}, {"type": "text", "text": "What kind of cat is this? Answer with one word."}]}
]
text = processor.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
outputs = llm.generate([{"prompt": text, "multi_modal_data": {"image": image}}], sampling_params=sampling_params)
generated_text = outputs[0].outputs[0].text
thinking, summary = extract_thinking_and_summary(generated_text)
print(OUTPUT_FORMAT.format(thinking=thinking, summary=summary))
9. Gemma-3-27b-it
Gemma 3는 Google이 개발한 멀티모달 AI 모델 패밀리로, 텍스트와 이미지 입력을 처리해 텍스트 출력을 생성할 수 있습니다. 하드웨어와 성능 요구에 맞춰 1B, 4B, 12B, 27B 등 다양한 크기로 제공됩니다.
가장 큰 변형인 Gemma 3 27B는 인간 선호 평가에서 뛰어난 성과를 보였으며, Llama 3-405B와 DeepSeek-V3 같은 더 큰 모델도 능가했습니다.
이 모델들은 다양한 벤치마크에서 강력한 역량을 보여 줍니다. 특히 멀티모달 작업에서 두각을 나타내며, COCOcap(116), DocVQA(85.6), MMMU(56.1), VQAv2(72.9) 등에서 주목할 만한 성적을 거두었습니다.

사용 예시:
# pip install accelerate
from transformers import AutoProcessor, Gemma3ForConditionalGeneration
from PIL import Image
import requests
import torch
model_id = "google/gemma-3-27b-it"
model = Gemma3ForConditionalGeneration.from_pretrained(
model_id, device_map="auto"
).eval()
processor = AutoProcessor.from_pretrained(model_id)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "You are a helpful assistant."}]
},
{
"role": "user",
"content": [
{"type": "image", "image": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/bee.jpg"},
{"type": "text", "text": "Describe this image in detail."}
]
}
]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True,
return_dict=True, return_tensors="pt"
).to(model.device, dtype=torch.bfloat16)
input_len = inputs["input_ids"].shape[-1]
with torch.inference_mode():
generation = model.generate(**inputs, max_new_tokens=100, do_sample=False)
generation = generation[0][input_len:]
decoded = processor.decode(generation, skip_special_tokens=True)
print(decoded)
10. Llama-3.2-90B-Vision-Instruct
Llama 3.2 90B Vision Instruct 모델은 Meta가 개발한 고급 멀티모달 대형 언어 모델입니다. 시각 인식, 이미지 추론, 캡셔닝과 같은 작업을 위해 설계되었습니다.
Llama 3.2 90B Vision Instruct는 텍스트 전용인 Llama 3.1을 기반으로 하며, 별도로 학습된 비전 어댑터를 통합해 이미지와 텍스트를 입력으로 받아 정확한 텍스트 출력을 생성합니다.
대규모로 학습된 Llama 3.2 90B Vision 모델은 885만 GPU 시간을 필요로 했습니다. VQAv2(73.6), Text VQA(73.5), DocVQA(70.7) 등 벤치마크에서 우수한 성능을 보여 줍니다.

출처: llama-models
사용 예시:
import requests
import torch
from PIL import Image
from transformers import MllamaForConditionalGeneration, AutoProcessor
model_id = "meta-llama/Llama-3.2-90B-Vision-Instruct"
model = MllamaForConditionalGeneration.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_id)
url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg"
image = Image.open(requests.get(url, stream=True).raw)
messages = [
{"role": "user", "content": [
{"type": "image"},
{"type": "text", "text": "If I had to write a haiku for this one, it would be: "}
]}
]
input_text = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(
image,
input_text,
add_special_tokens=False,
return_tensors="pt",
).to(model.device)
output = model.generate(**inputs, max_new_tokens=30)
print(processor.decode(output[0]))
그래프 기반 시각 추론은 Meta의 최신 모델 Muse Spark의 강점이기도 합니다.
맺음말
비전-언어 모델은 시각 및 텍스트 정보를 다루는 방식을 근본적으로 바꾸며, 다양한 산업에서 놀라운 정확성과 유연성을 제공합니다. 이 모델들은 컴퓨터 비전과 자연어 처리를 매끄럽게 결합해, 고급 객체 감지부터 직관적인 시각 어시스턴트에 이르기까지 새로운 응용을 가능하게 합니다.
프라이버시와 보안이 최우선이라면 오픈 소스 비전-언어 모델을 적극 권합니다. 로컬에서 모델을 실행하면 데이터에 대한 완전한 통제권을 갖게 되어 민감한 환경에 적합합니다. 또한 오픈 소스 VLM은 적응성이 높아, 수백 개 샘플만으로도 특정 요구에 맞춘 뛰어난 성능으로 미세조정할 수 있습니다.
반면 상용 모델은 최첨단 기능을 안정적이고 비용 효율적으로 제공합니다. 정확도가 높은 편이며 몇 줄의 코드만으로 워크플로에 통합할 수 있어, 심층적인 AI 전문성이 없는 팀도 쉽게 활용할 수 있습니다.
비전-언어 모델을 더 배우고 싶다면 다음 자료를 확인하세요:
- Image Processing in Python: 이미지 조작, 분석, 특징 추출 등 핵심 이미지 처리 기법에 대한 실습형 학습.
- Deep Learning for Images with PyTorch: 이진 및 다중 클래스 분류, 사물 인식, 바운딩 박스 기반 검출, 시맨틱/인스턴스/패놉틱 분할 등 실전 적용과 GAN을 통한 이미지 생성까지 학습.
- Natural Language Processing in Python: TED 강연 자동 전사부터 감성 분석까지, NLP 파이썬 라이브러리로 텍스트 데이터를 처리·분석하는 스킬 트랙.