Model reference · open weights
ERNIE-4.5-VL-Thinking is an open-weight language model from Baidu. ERNIE-4.5-VL-28B-A3B-Thinking (BF16) weighs 59.3 GB; the smallest configuration that runs it is H100 80 GB.
Summary of the baidu/ERNIE-4.5-VL-28B-A3B-Thinking model card, 2026-10-01
What it is
| Released by | Baidu |
|---|---|
| Released | 2025-11-07 |
| Parameters | 29.7B |
| VRAM | 59.3 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB … L40S 48 GB 6 smaller cards | — | — | — | |
| A100 80 GB | 35 | 8 | all 128K | 78.2 GB |
| H100 80 GB | 27 | 6 | all 128K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 61 | 15 | all 128K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 90 | 22 | all 128K | 107 GB |
| H200 141 GB | 155 | 38 | all 128K | 138 GB |
| B200 180 GB | 235 | 58 | all 128K | 176 GB |
| 2× L40S 48 GB tensor parallel | 52 | 13 | all 128K | 44.0 GB a card |
| 4× RTX 4090 24 GB tensor parallel | 55 | 13 | all 128K | 23.4 GB a card |
| 4× RTX 3090 24 GB tensor parallel | 56 | 14 | all 128K | 23.4 GB a card |
| 4× RTX 5090 32 GB tensor parallel | 121 | 30 | all 128K | 31.0 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 61.8 GB | 63.2 GB |
| 5 | 63.7 GB | 70.7 GB |
| 8 | 65.1 GB | 76.3 GB |
| 16 | 68.8 GB | 91.4 GB |
| 32 | 76.3 GB | 121 GB |
| 64 | 91.4 GB | 182 GB |
One card, with vLLM's small-card settings.
From the model card
🔥 Demo
Built upon the powerful ERNIE-4.5-VL-28B-A3B architecture, the newly upgraded ERNIE-4.5-VL-28B-A3B-Thinking achieves a remarkable leap forward in multimodal reasoning capabilities. 🧠✨ Through an extensive mid-training phase, the model absorbed a vast and highly diverse corpus of premium visual-language reasoning data. This massive-scale training process dramatically boosted the model's representation power while deepening the semantic alignment between visual and language modalities—unlocking unprecedented capabilities in nuanced visual-textual reasoning. 📊
The model leverages cutting-edge multimodal reinforcement learning techniques on verifiable tasks, integrating GSPO and IcePop strategies to stabilize MoE training combined with dynamic difficulty sampling for exceptional learning efficiency. ⚡ Responding to strong community demand, we've significantly strengthened the model's grounding performance with improved instruction-following capabilities, making visual grounding functions more accessible than ever. 🎯 Additionally, our innovative "Thinking with Images" feature, when paired with tools like image zooming and image search, dramatically elevates the model's ability to process fine-grained details and handle long-tail visual knowledge. 🔍🖼️
Together, these enhancements form a critical foundation for developing sophisticated multimodal agents, empowering developers and researchers to create next-generation AI applications that push the boundaries of what's possible in visual-language understanding. 🤖🌟
As a lightweight model that activates only 3B parameters ⚡, ERNIE-4.5-VL-28B-A3B-Thinking closely matches the performance of the industry's top flagship models across various benchmarks. 🚀
transformers LibraryRequirement: transformers <= 4.57.6
Here is an example of how to use the transformers library for inference:
import torch
from transformers import AutoProcessor, AutoTokenizer, AutoModelForCausalLM
model_path = 'baidu/ERNIE-4.5-VL-28B-A3B-Thinking'
model = AutoModelForCausalLM.from_pretrained(
model_path,
device_map="auto",
dtype=torch.bfloat16,
trust_remote_code=True
)
processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)
model.add_image_preprocess(processor)
messages = [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What color clothes is the girl in the picture wearing?"
},
{
"type": "image_url",
"image_url": {
"url": "https://paddlenlp.bj.bcebos.com/datasets/paddlemix/demo_images/example1.jpg"
}
},
]
},
]
text = processor.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
image_inputs, video_inputs = processor.process_vision_info(messages)
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
padding=True,
return_tensors="pt",
)
device = next(model.parameters()).device
inputs = inputs.to(device)
generated_ids = model.generate(
inputs=inputs['input_ids'].to(device),
**inputs,
max_new_tokens=1024,
use_cache=False
)
output_text = processor.decode(generated_ids[0][len(inputs['input_ids'][0]):])
print(output_text)
Install vLLM
pip install decord
pip install uv
uv pip install vllm==0.11.2 --torch-backend=auto
Run vLLM
# 80G*1 GPU,If an error occurs, add the --gpu-memory-utilization 0.95 and try again
vllm serve baidu/ERNIE-4.5-VL-28B-A3B-Thinking --trust-remote-code
Run vLLM using reasoning-parser and tool-call-parser
# 80G*1 GPU,If an error occurs, add the --gpu-memory-utilization 0.95 and try again
vllm serve baidu/ERNIE-4.5-VL-28B-A3B-Thinking --trust-remote-code \
--reasoning-parser ernie45 \
--tool-call-parser ernie45 \
--enable-auto-tool-choice
Run vLLM for video understanding (ensure your vLLM version includes PR#31274 for accurate timestamp rendering)
vllm serve baidu/ERNIE-4.5-VL-28B-A3B-Thinking --trust-remote-code \
--reasoning-parser ernie45 \
--media-io-kwargs '{"video": {"num_frames": 180, "fps": 2}}'
Quickly deploy services using FastDeploy as shown below. For more detailed usage, refer to the [FastDeploy GitHub Repository](https://github.com/PaddlePaddle/FastDeploy
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.