Instructions to use skt/A.X-4.0-VL-Light with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use skt/A.X-4.0-VL-Light with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="skt/A.X-4.0-VL-Light", trust_remote_code=True, device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("skt/A.X-4.0-VL-Light", trust_remote_code=True, dtype="auto", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use skt/A.X-4.0-VL-Light with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "skt/A.X-4.0-VL-Light" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "skt/A.X-4.0-VL-Light", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/skt/A.X-4.0-VL-Light
- SGLang
How to use skt/A.X-4.0-VL-Light with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "skt/A.X-4.0-VL-Light" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "skt/A.X-4.0-VL-Light", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "skt/A.X-4.0-VL-Light" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "skt/A.X-4.0-VL-Light", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use skt/A.X-4.0-VL-Light with Docker Model Runner:
docker model run hf.co/skt/A.X-4.0-VL-Light
A.X 4.0 VL Light
Highlights
A.X 4.0 VL Light (pronounced โA dot Xโ) is a vision-language model (VLM) optimized for Korean vision and language understanding as well as enterprise deployment. Built upon A.X 4.0 Light, A.X 4.0 VL Light has been further trained on diverse multimodal datasets, with a particular focus on large-scale multimodal Korean datasets, to deliver exceptional performance in domestic business applications.
- Superior Korean Proficiency in Vision and Language: Achieved an average score of 79.4 on Korean image benchmarks, outperforming Qwen2.5-VL-32B (73.4), despite having a significantly smaller model size. On Korean text benchmarks, recorded an average score of 60.2, comparable to VARCO-VISION-2.0-14B (60.4), while using only half the model size.
- Deep Cultural Understanding: Scored 80.2 on K-Viscuit, a multimodal benchmark designed to evaluate cultural and contextual comprehension in Korean, exceeding Qwen2.5-VL-32B (72.3).
- Advanced Document Understanding: Attained a score of 89.8 on KoBizDoc, a benchmark focused on understanding complex document structures, including charts and tables, performing comparably to Qwen2.5-VL-32B (88.8).
- Efficient Token Usage: A.X 4.0 VL Light utilizes approximately 41% fewer text tokens compared to Qwen2.5-VL for the same Korean input, enabling significantly more cost-effective and efficient processing.
A brief comparison on representative benchmarks is as follows:
Performance
Image Benchmark
*Korean benchmarks, with K-Viscuit translated into Korean.
| Category | Benchmarks | A.X 4.0 VL Light | Qwen2.5-VL-7B | InternVL3-8B | VARCO-VISION-2.0-14B | Qwen2.5-VL-32B |
|---|---|---|---|---|---|---|
| Document | KoBizDoc* | 89.8 | 84.0 | 73.2 | 83.0 | 88.8 |
| K-DTCBench* | 90.0 | 86.7 | 83.8 | 80.8 | 91.7 | |
| ChartQA | 79.8 | 80.6 | 79.8 | 78.8 | 81.8 | |
| DocVQA | 94.4 | 95.3 | 92.4 | 91.9 | 94.5 | |
| InfoVQA | 78.5 | 82.7 | 76.2 | 80.0 | 82.7 | |
| SEEDBench2-Plus | 69.7 | 71.2 | 69.7 | 71.9 | 73.3 | |
| OCR | OutdoorKorean* | 97.3 | 91.9 | 72.7 | 79.7 | 86.9 |
| K-Handwriting* | 84.3 | 85.0 | 43.5 | 55.2 | 60.1 | |
| TextVQA | 82.0 | 85.4 | 82.1 | 80.3 | 79.8 | |
| Culture | K-Viscuit* | 80.2 | 65.0 | 65.3 | 72.0 | 72.3 |
| Knowledge | KoEduBench* | 58.1 | 53.9 | 53.9 | 39.4 | 52.4 |
| KoCertBench* | 54.9 | 50.1 | 39.4 | 51.4 | 47.5 | |
| MMMU | 54.1 | 56.3 | 59.4 | 58.3 | 63.6 | |
| ScienceQA | 95.3 | 87.2 | 97.8 | 92.2 | 92.4 | |
| General | K-LLaVA-W* | 83.2 | 73.0 | 67.0 | 80.0 | 84.3 |
| K-SEED* | 76.5 | 76.4 | 76.4 | 76.9 | 77.3 | |
| SEEDBench_IMG | 76.7 | 77.1 | 77.1 | 78.1 | 77.6 | |
| Hallucination | HallusionBench | 54.2 | 52.7 | 49.6 | 53.8 | 58.0 |
| IF | MM-IFEval | 53.5 | 51.4 | 51.9 | 50.8 | 59.3 |
The following in-house benchmarks have been established to rigorously assess model performance on Korean vision-language understanding and the comprehension of Korea-specific knowledge domains:
- KoBizDoc: A visual question answering (VQA) benchmark designed for understanding Korean business documents.
- OutdoorKorean: A benchmark focused on recognizing Korean text in complex outdoor scenes (provided by AIHub).
- K-Handwriting: A Korean handwriting recognition dataset comprising various handwritten styles (provided by AIHub).
- KoEduBench: A VQA benchmark targeting Korean general academic exams, including GED and CSAT questions, to assess academic reasoning ability.
- KoCertBench: A Korean certification exam-based VQA benchmark, covering domains such as civil service, technical licenses, and professional qualifications.
Text Benchmark
*Korean benchmarks.
| Category | Benchmarks | A.X 4.0 VL Light | Qwen2.5-VL-7B | InternVL3-8B | VARCO-VISION-2.0-14B |
|---|---|---|---|---|---|
| Knowledge | KMMLU* | 60.5 | 45.6 | 50.9 | 58.8 |
| MMLU | 72.6 | 71.9 | 77.5 | 80.7 | |
| Math | HRM8K* | 40.6 | 25.4 | 34.6 | 49.5 |
| MATH | 56.5 | 61.7 | 65.1 | 71.1 | |
| General | Ko-MT-bench* | 68.9 | 51.5 | 59.5 | 75.9 |
| MT-bench | 72.9 | 73.2 | 69.9 | 76.6 | |
| IF | Ko-IFEval* | 71.8 | 55.0 | 46.1 | 57.2 |
| IFEval | 81.9 | 66.6 | 67.5 | 75.3 |
๐ Quickstart
with HuggingFace Transformers
transformers>=4.49.0or the latest version is required to useskt/A.X-4.0-VL-Light
pip install transformers>=4.49.0
Example Usage
import torch
from transformers import AutoModelForCausalLM, AutoProcessor
from PIL import Image
import requests
from io import BytesIO
model_name = "skt/A.X-4.0-VL-Light"
model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True, torch_dtype=torch.bfloat16).to(device='cuda')
processor = AutoProcessor.from_pretrained(model_name, trust_remote_code=True)
url = "https://huggingface.co/skt/A.X-4.0-VL-Light/resolve/main/assets/image.png"
# ์ด๋ฏธ์ง ์ถ์ฒ: ๊ตญ๊ฐ์ ์ฐํฌํธ (https://www.heritage.go.kr/unisearch/images/national_treasure/thumb/2021042017434700.JPG)
response = requests.get(url)
response.raise_for_status()
image = Image.open(BytesIO(response.content))
messages = [
{
"role": "user",
"content": [
{"type": "image"},
{"type": "text", "text": "์ด๋ฏธ์ง์ ๋ํด์ ์ค๋ช
ํด์ค."},
],
}
]
text = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
inputs = processor(
images=[image],
text=[text],
padding=True,
return_tensors="pt",
).to("cuda")
# Decoding parameters (top_p, temperature, top_k, repetition_penalty) should be tuned depending on the generation task.
generation_kwargs = {
"max_new_tokens": 256,
"top_p": 0.8,
"temperature": 0.5,
"top_k": 20,
"repetition_penalty": 1.05,
"do_sample": True,
}
generated_ids = model.generate(**inputs, **generation_kwargs)
generated_ids_trimmed = [
out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
response = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(response[0])
"""
์ญ๋ก๋ฌธ์ ๋ํ๋ฏผ๊ตญ ์์ธ์ ์์นํ ๊ตญ๋ณด ์ 1ํธ๋ก, ์กฐ์ ์๋์ ๊ฑด์ถ๋ ๋ชฉ์กฐ ๊ฑด์ถ๋ฌผ์ด๋ค. ์ด ๋ฌธ์ ์์ธ์ ๋จ์ชฝ ๋๋ฌธ์ผ๋ก, ์ ํต์ ์ธ ํ๊ตญ ๊ฑด์ถ ์์์ ๋ณด์ฌ์ค๋ค. ๋ ์ธต์ผ๋ก ์ด๋ฃจ์ด์ง ์ด ๋ฌธ์ ๊ธฐ์์ง๋ถ์ ์น๊ณ ์์ผ๋ฉฐ, ์ง๋ถ์ ๊ณก์ ์ด ์๋ฆ๋ต๊ฒ ํํ๋์ด ์๋ค. ๋ฌธ ์๋์๋ ์์นํ์ ์ถ์
๊ตฌ๊ฐ ์์ผ๋ฉฐ, ๊ทธ ์ฃผ์๋ก๋ ๊ฒฌ๊ณ ํ ์์ฌ๋ก ์์ ์ฑ๋ฒฝ์ด ์ด์ด์ ธ ์๋ค. ๋ฐฐ๊ฒฝ์๋ ํ๋์ ์ธ ๊ณ ์ธต ๋น๋ฉ๋ค์ด ์๋ฆฌ์ก๊ณ ์์ด, ์ ํต๊ณผ ํ๋๊ฐ ๊ณต์กดํ๋ ์์ธ์ ๋ชจ์ต์ ์ ๋ํ๋ธ๋ค. ์ญ๋ก๋ฌธ์ ์ญ์ฌ์ , ๋ฌธํ์ ๊ฐ์น๊ฐ ๋์ ๋ง์ ๊ด๊ด๊ฐ๋ค์ด ์ฐพ๋ ๋ช
์์ด๋ค.
"""
Example for Document Transcription
import torch
from transformers import AutoModelForCausalLM, AutoProcessor
from PIL import Image
import requests
from io import BytesIO
model_name = "skt/A.X-4.0-VL-Light"
model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True, torch_dtype=torch.bfloat16).to(device='cuda')
processor = AutoProcessor.from_pretrained(model_name, trust_remote_code=True)
url = "https://huggingface.co/skt/A.X-4.0-VL-Light/resolve/main/assets/document.png"
response = requests.get(url)
response.raise_for_status()
image = Image.open(BytesIO(response.content))
messages = [
{
"role": "user",
"content": [
{"type": "image"},
{"type": "text", "text": "์ฌ์ง์ ๋ฌด์์ด ์ ํ์๋์? ๋ค๋ฅธ ์ค๋ช
์์ด ์ ํ์๋ ํ
์คํธ๋ง ๊ฒฐ๊ณผ๋ก ๋ณด์ฌ์ค."},
],
}
]
text = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
inputs = processor(
images=[image],
text=[text],
padding=True,
return_tensors="pt",
).to("cuda")
generation_kwargs = {
"max_new_tokens": 1024,
"top_p": 0.95,
"top_k": 1,
"temperature": 0.7,
"repetition_penalty": 1.05,
"do_sample": True,
}
generated_ids = model.generate(**inputs, **generation_kwargs)
generated_ids_trimmed = [
out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
response = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(response[0])
"""
# A.X 4.0: ๊ธฐ์
์ฉ ํ๊ตญ์ด ํนํ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ
View English README
SKํ
๋ ์ฝค์ด ํ๊ตญ์ด ์ฒ๋ฆฌ ๋ฅ๋ ฅ๊ณผ ๊ธฐ์
ํ์ฉ์ฑ์ ๋์ธ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ(LLM) A.X 4.0 (์์ด๋ท์์ค 4.0)์ 2025๋
4์ 30์ผ์ ์ถ์ํ์์ต๋๋ค. A.X 4.0์ ์คํ์์ค ๋ชจ๋ธ์ธ Qwen2.5์ ๋ฐฉ๋ํ ํ๊ตญ์ด ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ๋ก ํ์ต์์ผ ๊ตญ๋ด ๋น์ฆ๋์ค ํ๊ฒฝ์ ์ต์ ํ๋ ์ฑ๋ฅ์ ๋ฐํํฉ๋๋ค.
## A.X 4.0, ๋ฌด์์ด ๋ค๋ฅธ๊ฐ์?
- ๋ฐ์ด๋ ํ๊ตญ์ด ์ค๋ ฅ: ๋ํ์ ์ธ ํ๊ตญ์ด ๋ฅ๋ ฅ ํ๊ฐ ๋ฒค์น๋งํฌ์ธ KMMLU์์ 78.3์ ์ ๊ธฐ๋กํ์ฌ, GPT-40(72.5์ )๋ณด๋ค ์ฐ์ํ ์ฑ๋ฅ์ ๋ณด์์ต๋๋ค.
- ๋์ ํ๊ตญ ๋ฌธํ ์ดํด๋: ํ๊ตญ์ด ๋ฐ ํ๊ตญ ๋ฌธํ ๋ฒค์น๋งํฌ์ธ CLiCk์์๋ 83.5์ ์ ํ๋ํด, GPT-40(80.2์ )๋ณด๋ค ๋ ๋์ ์ดํด๋๋ฅผ ์
์ฆํ์ต๋๋ค.
- ํจ์จ์ ์ธ ํ ํฐ ์ฒ๋ฆฌ: ๋์ผํ ํ๊ตญ์ด ํ
์คํธ๋ฅผ ์
๋ ฅํด๋ A.X 4.0๋ณด๋ค GPT-40๊ฐ ์ฝ 1.5๋ฐฐ ๋ง์ ํ ํฐ์ ์ฌ์ฉํฉ๋๋ค.
- ๋ฐฉ๋ํ ์ ๋ณด ์ฒ๋ฆฌ: ์ต๋ 131,072 ํ ํฐ์ ์ด๋ฅด๋ ๊ธด ๋ฌธ์๋ ๋ํ๋ ํ ๋ฒ์ ์ดํดํ๊ณ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ๋๋ฉ์ธ ์ง์: ์ฝ๋ฉ, ์ ์กฐ์
๋ฑ ์ ๋ฌธ ์ง์์ด ํ์ํ ๋ถ์ผ์์๋ ํ์ฉํ ์ ์๋๋ก ๊ธฐ๋ณธ ์ฑ๋ฅ์ ๊ฐํํ์ต๋๋ค.
- ๋ฐฐํฌ ์ต์
: 720์ต ๊ฐ(72B) ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ถ ํ์ค ๋ชจ๋ธ๊ณผ 70์ต ๊ฐ(7B) ๋งค๊ฐ๋ณ์์ ๊ฒฝ๋ ๋ชจ๋ธ๋ก ์ ๊ณต๋๋ฉฐ, ๊ธฐ์
๋ด๋ถ ์๋ฒ์ ์ง์ ์ค์น(์จํ๋ ๋ฏธ์ค)ํ ์ ์์ด ๋ฐ์ดํฐ ๋ณด์์ ๋ํ ๊ฑฑ์ ์ ๋ ์ ์์ต๋๋ค.
## ํต์ฌ ๊ธฐ์ ์?
### ํ๊ตญ์ด ํนํ ํ ํฌ๋์ด์ ์ ์ฉ
ํ๊ตญ์ด์ ๊ณ ์ ํ ํน์ฑ์ ์ ์ดํดํ๋๋ก ์ต์ ํ๋ ํ ํฌ๋์ด์ ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ํ ํฌ๋์ด์ ๋ ํ๊ตญ์ด์ ๋ค์ํ ํํ๊ณผ ๋ฌธ๋งฅ์ ํจ๊ณผ์ ์ผ๋ก ํ์
ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ด๋ถ ํ
์คํธ ๊ฒฐ๊ณผ, ๊ฐ์ ํ๊ตญ์ด ๋ฌธ์ฅ์ ์
๋ ฅํ์ ๋ GPT-40๋ณด๋ค A.X 4.0์ด 33.3% ํจ์จ์ ์ผ๋ก ํ ํฐ์ ์ฌ์ฉํฉ๋๋ค.
์ด๋ ์ค์ ์ฌ์ฉ ํ๊ฒฝ์์ ๋ค์๊ณผ ๊ฐ์ ์ฅ์ ์ด ์์ต๋๋ค.
- ๊ฐ์ ์กฐ๊ฑด์ด๋ผ๋ฉด ๋๋ต 1.5๋ฐฐ ๋ ๋ง์ ํ๊ตญ์ด ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ํ ํฐ ์๊ฐ ์ค์ด๋ค์ด ์ฒ๋ฆฌ ๋น์ฉ์ 34% ์ ๋ ์ ๊ฐํ ์ ์์ต๋๋ค.
- API๋ฅผ ํธ์ถํ ๋ ํ ํฐ ์ฌ์ฉ๋์ ๋ฐ๋ผ ๋น์ฉ์ด ์ฑ
์ ๋๋ ๊ตฌ์กฐ์์ ์ ๋ฆฌํฉ๋๋ค.
ํนํ ๋ฌธ์ ์์ฝ์ด๋ ๊ฒ์ ์ฆ๊ฐ ์์ฑ(RAG) ๋ฑ ๊ธด ๊ธ์ ๋ค๋ฃจ๋ ๊ธฐ์
ํ๊ฒฝ์์, ํ ํฐ ํจ์จ์ฑ์ ์ด์ ๋น์ฉ์ ํฌ๊ฒ ์ ๊ฐํ๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.
### ํ๊ตญ์ด ์ดํด์ ์์ฑ ๋ฅ๋ ฅ์ ํฅ์์ํค๋ ํ์ต ๋ฐ์ดํฐ ๊ตฌ์ฑ
A.X 4.0์ ์ฌ์ฉ๋ ํ์ต ๋ฐ์ดํฐ๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ต๋๋ค.
- ๊ณ ํ์ง์ ํ๊ตญ์ด ์๋ฃ: ์น์์ ์ถ์ถํ ๊ณ ํ์ง ๋ฐ์ดํฐ, ์ ๋ฌธ ์์ , ํฉ์ฑ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ๋๊ท๋ชจ ๊ณ ํ์ง ๋ฐ์ดํฐ์
์ ํ์ฉํ์ต๋๋ค.
- ์ฒด๊ณ์ ์ธ ๋ฐ์ดํฐ ๋ถ๋ฅ: ๋ค์ํ ๋ถ์ผ์์ ๊ท ํ์๊ฒ ๋์ ์ฑ๋ฅ์ ๋ฐํํ๋๋ก ์ฃผ์ ๋ณ๋ก ๋ถ๋ฅ๋ ๋ฐ์ดํฐ์
์ ๊ตฌ์ฑํ์ต๋๋ค.
- ๊ท ํ ์กํ ์ธ์ด ๋ถํฌ: ํ๊ตญ์ด 42%, ์์ด 51%, ๊ธฐํ ์ธ์ด ๋ฐ ์ฝ๋ 7%๋ก ๊ตฌ์ฑํด ์ธ์ด ๊ฐ ๊ท ํ์ ์ ์งํ์ต๋๋ค.
์ด๋ฌํ ๋ฐ์ดํฐ ๊ตฌ์ฑ์ ๋ชจ๋ธ์ด ํ๊ตญ์ด์ ๋ค์ํ ํํ๊ณผ ๋ฏธ๋ฌํ ๋ฌธ๋งฅ๊น์ง ๊น์ด ์ดํดํ๋๋ก ๋์ต๋๋ค.
"""
License
The A.X 4.0 VL Light model is licensed under Apache License 2.0.
Citation
@article{SKTAdotX4VLLight,
title={A.X 4.0 VL Light},
author={SKT AI Model Lab},
year={2025},
url={https://huggingface.co/skt/A.X-4.0-VL-Light}
}
Contact
- Business & Partnership Contact: a.x@sk.com
- Downloads last month
- 166
Model tree for skt/A.X-4.0-VL-Light
Base model
skt/A.X-4.0-Light