Model reference · open weights
GLM-4.1V-Thinking is an open-weight language model from zai-org. GLM-4.1V-9B-Thinking (BF16) weighs 20.6 GB; the smallest configuration that runs it is RTX 4090 24 GB.
Summary of the zai-org/GLM-4.1V-9B-Thinking model card, 2026-10-01
What it is
| Released by | zai-org |
|---|---|
| Released | 2025-06-28 |
| Parameters | 10.3B |
| VRAM | 20.6 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB … RTX 4060 Ti 16 GB 2 smaller cards | — | — | — | |
| RTX 3090 24 GB | 2 | — | 18K | 23.4 GB |
| RTX 4090 24 GB | 2 | — | 17K | 23.4 GB |
| RTX 5090 32 GB | 24 | 6 | all 64K | 31.0 GB |
| L40S 48 GB | 63 | 15 | all 64K | 44.0 GB |
| A100 80 GB | 165 | 41 | all 64K | 78.2 GB |
| H100 80 GB | 152 | 38 | all 64K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 199 | 49 | all 64K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 239 | 59 | all 64K | 107 GB |
| H200 141 GB | 330 | 82 | all 64K | 138 GB |
| B200 180 GB | 442 | 110 | all 64K | 176 GB |
| 2× RTX 4060 Ti 16 GB tensor parallel | 18 | 4 | all 64K | 15.4 GB a card |
| 2× RTX 4090 24 GB tensor parallel | 65 | 16 | all 64K | 23.4 GB a card |
| 2× RTX 3090 24 GB tensor parallel | 65 | 16 | all 64K | 23.4 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 23.0 GB | 24.0 GB |
| 5 | 24.3 GB | 29.3 GB |
| 8 | 25.3 GB | 33.4 GB |
| 16 | 28.0 GB | 44.1 GB |
| 32 | 33.4 GB | 65.6 GB |
| 64 | 44.1 GB | 109 GB |
One card, with vLLM's small-card settings.
From the model card
📖 View the GLM-4.1V-9B-Thinking paper. 📍 Using GLM-4.1V-9B-Thinking API at Zhipu Foundation Model Open Platform
Vision-Language Models (VLMs) have become foundational components of intelligent systems. As real-world AI tasks grow increasingly complex, VLMs must evolve beyond basic multimodal perception to enhance their reasoning capabilities in complex tasks. This involves improving accuracy, comprehensiveness, and intelligence, enabling applications such as complex problem solving, long-context understanding, and multimodal agents.
Based on the GLM-4-9B-0414 foundation model, we present the new open-source VLM model GLM-4.1V-9B-Thinking, designed to explore the upper limits of reasoning in vision-language models. By introducing a "thinking paradigm" and leveraging reinforcement learning, the model significantly enhances its capabilities. It achieves state-of-the-art performance among 10B-parameter VLMs, matching or even surpassing the 72B-parameter Qwen-2.5-VL-72B on 18 benchmark tasks. We are also open-sourcing the base model GLM-4.1V-9B-Base to support further research into the boundaries of VLM capabilities.
Compared to the previous generation models CogVLM2 and the GLM-4V series, GLM-4.1V-Thinking offers the following improvements:
By incorporating the Chain-of-Thought reasoning paradigm, GLM-4.1V-9B-Thinking significantly improves answer accuracy, richness, and interpretability. It comprehensively surpasses traditional non-reasoning visual models. Out of 28 benchmark tasks, it achieved the best performance among 10B-level models on 23 tasks, and even outperformed the 72B-parameter Qwen-2.5-VL-72B on 18 tasks.
This is a simple example of running single-image inference using the transformers library.
First, install the transformers library from source:
pip install transformers>=4.57.1
Then, run the following code:
from transformers import AutoProcessor, Glm4vForConditionalGeneration
import torch
MODEL_PATH = "zai-org/GLM-4.1V-9B-Thinking"
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"url": "https://upload.wikimedia.org/wikipedia/commons/f/fa/Grayscale_8bits_palette_sample_image.png"
},
{
"type": "text",
"text": "describe this image"
}
],
}
]
processor = AutoProcessor.from_pretrained(MODEL_PATH, use_fast=True)
model = Glm4vForConditionalGeneration.from_pretrained(
pretrained_model_name_or_path=MODEL_PATH,
torch_dtype=torch.bfloat16,
device_map="auto",
)
inputs = processor.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_dict=True,
return_tensors="pt"
).to(model.device)
generated_ids = model.generate(**inputs, max_new_tokens=8192)
output_text = processor.decode(generated_ids[0][inputs["input_ids"].shape[1]:], skip_special_tokens=False)
print(output_text)
For video reasoning, web demo deployment, and more code, please check our GitHub.
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.