Skip to page content
SAVRN
Search Plan a project

Open-weight model · Image and text to text

MiniCPM-V-4.7-35B-A3B

by OpenBMB openbmb/MiniCPM-V-4.7-35B-A3B

MiniCPM-V-4.7-35B-A3B is an open-weight model for image and text to text from OpenBMB, released under Apache License 2.0. It has 35.2B parameters and a 262,144-token context. At 16-bit it needs about 84.5 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index. It draws 166 downloads a month.

MiniCPM-V 4.7 is the latest model in the MiniCPM-V series, available in a 35B-A3B variant, with 35B-A3B being the first MoE model in the MiniCPM-V series.

Parameters35.2B
Context262,144
Weights70.4 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads166

Runs On

What it takes to serve MiniCPM-V-4.7-35B-A3B (35.2B parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 70.4 GB 84.5 GB 1x MI300X (192 GB)
Vultr
$1.85 1x MI325X $2.00 · 1x MI355X $2.59
8-bit 35.2 GB 42.3 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 17.6 GB 21.1 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 18, 2026.

MiniCPM-V-4.7-35B-A3B on every accelerator the SAVRN Index prices, at every precision

Model Card

By OpenBMB, published under apache-2.0, revision 17e651151c16.

MiniCPM-V 4.7 is the latest model in the MiniCPM-V series, available in a 35B-A3B variant, with 35B-A3B being the first MoE model in the MiniCPM-V series. It builds on the family's single-image, multi-image, and video understanding capabilities, combining stronger foundation capabilities with efficient visual encoding and on-device inference. Notable features of MiniCPM-V 4.7 include: - The First Open-Source MoE Model with Lossless, Smooth On-Device Inference. With our Lookahead Expert Scheduling (LES) technique introduced alongside MiniCPM-V 4.7, combined with fine-grained layer-wise quantization and DSpark speculative sampling integration, MiniCPM-V 4.7 35B-A3B becomes the first…

Read OpenBMB's full model card

MiniCPM-V 4.7

On-device results · Evaluation · Examples · Usage · Model weights

MiniCPM-V 4.7 is the latest model in the MiniCPM-V series, available in a 35B-A3B variant, with 35B-A3B being the first MoE model in the MiniCPM-V series. It builds on the family's single-image, multi-image, and video understanding capabilities, combining stronger foundation capabilities with efficient visual encoding and on-device inference. Notable features of MiniCPM-V 4.7 include:

  • The First Open-Source MoE Model with Lossless, Smooth On-Device Inference. With our Lookahead Expert Scheduling (LES) technique introduced alongside MiniCPM-V 4.7, combined with fine-grained layer-wise quantization and DSpark speculative sampling integration, MiniCPM-V 4.7 35B-A3B becomes the first open-source MoE model to run smoothly on-device without compromising performance, achieving a decoding speed of 13+ tokens/s with just 3 GB of memory on iPhone 17 Pro Max.
  • A New Pareto Frontier in Performance and Efficiency. As model capabilities continue to advance, inference efficiency has become an important measure of a model's value. On resource-constrained devices, delivering the strongest possible capabilities within a limited resource budget calls for higher capability density. The 35B-A3B variant of MiniCPM-V 4.7 advances the performance–efficiency Pareto frontier for MLLMs. In Instruct mode, 35B-A3B achieves a higher overall score in less inference time than Qwen3.6 35B-A3B.
  • Efficient Architecture. Based on the intra-ViT early compression technique from LLaVA-UHD v4, MiniCPM-V 4.7 compresses visual tokens early within the vision encoder, reducing computation in subsequent encoder layers. It also supports mixed 4x/16x visual token compression, allowing developers to balance visual detail and inference cost across tasks.
  • Broad Platform and Chip Support. MiniCPM-V 4.7 supports iOS, Android, and HarmonyOS, together with open-source on-device deployment support. It also provides day-0 support for chip platforms from Rockchip, Houmo, Intel, AMD, and Arm, extending deployment options across mobile and local computing devices.
  • Developer Friendly. MiniCPM-V 4.7 supports inference frameworks including SGLang, vLLM, llama.cpp, and Ollama, along with fine-tuning frameworks including SWIFT and LLaMA-Factory. It provides GGUF, BNB, AWQ, and GPTQ quantized variants and adds FP8 quantization support. We also release Self-Replay Fine-Tuning, a fine-tuning approach that helps developers extend model capabilities at low cost while reducing forgetting of existing capabilities, making further customization easier.

Get started

Model weights  ·  Inference  ·  Fine-tuning  ·  Live demo  ·  Local deployment  ·  API  ·  Cookbook

On-Device Capability and Efficiency

Smooth On-Device MoE Inference without compromising performance

An MoE model can have far more total parameters than it activates for a single token, but its on-device storage requirements are not limited to those active parameters. Different tokens can select different experts at different layers, while device memory often cannot hold all expert weights. Without a latency constraint, weights can remain on SSD or other storage, be loaded as needed, and be released after computation. This makes large-model inference possible, but repeated loading stalls can make decoding too slow for real-time interaction.

Another approach is to restrict the pool of available experts. For example, fixing an expert subset for an entire prompt can reduce loading frequency, but limits subsequent token-level routing to that subset, potentially excluding experts the model would otherwise select and reducing its capabilities. The central goal is therefore smooth inference without compromising performance: preserving model capability while delivering sufficient throughput under limited memory and bandwidth.

MiniCPM-V 4.7 35B-A3B addresses this challenge through three complementary techniques:

  • Lookahead Expert Scheduling (LES) uses cross-layer routing prediction to preload experts likely to be needed by the next layer. Among the experts selected by the actual router, it prioritizes those successfully prefetched and overlaps their computation with loading the remaining required experts. Predictions guide only prefetching and scheduling; computation still follows the model's original token-level routing, and required experts missed by the prediction are loaded and evaluated as usual.
  • Fine-grained layer-wise quantization reduces the storage footprint and memory traffic of expert weights while preserving model capability, making expert loading better suited to on-device memory and bandwidth constraints.
  • DSpark speculative sampling integration incorporates speculative sampling into the on-device inference process, working with expert scheduling and quantization to improve decoding efficiency.

Together, these techniques make MiniCPM-V 4.7 35B-A3B the first open-source MoE model to run smoothly on-device without compromising performance, achieving 13+ tokens/s on iPhone 17 Pro Max.

On-Device MoE Inference: Before and After Optimization

Evaluation

Significantly Advancing the Performance–Efficiency Pareto Frontier

The 35B-A3B variant of MiniCPM-V 4.7 advances the performance–efficiency Pareto frontier. In Instruct mode, 35B-A3B reaches a higher overall score in less inference time than Qwen3.6 35B-A3B.

Overall Performance (35B-A3B, Instruct)

Vision-Language

Language

Examples

MiniCPM-V 4.7 can run on phones and tablets. The clips below are unedited screen recordings captured directly on the devices.

35B-A3B
iPhone 17 Pro Max
35B-A3B
iPad M4

Usages

Inference with Transformers
Click to expand the Transformers inference examples. ##### Installation
pip install "transformers[torch]>=5.18.0" torchvision torchcodec
> **Note on CUDA compatibility:** `torchcodec` (used for video decoding) may have compatibility issues with certain CUDA versions. For example, `torch>=2.11` bundles CUDA 13.1 by default, while environments with CUDA 12.x may encounter errors such as `RuntimeError: Could not load libtorchcodec`. Two workarounds: > > 1. **Replace `torchcodec` with `PyAV`** — supports both image and video inference without CUDA version constraints: > ```bash > pip install "transformers[torch]>=5.18.0" torchvision av > ``` > 2. **Pin the CUDA version** when installing torch to match your environment (e.g. CUDA 12.8): > ```bash > pip install "transformers>=5.18.0" torchvision torchcodec --index-url https://download.pytorch.org/whl/cu128 > ``` ##### Load the Model
import torch
from transformers import AutoModelForImageTextToText, AutoProcessor

model_id = "openbmb/MiniCPM-V-4.7-35B-A3B"

processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
    model_id, torch_dtype="auto", device_map="auto"
)

# Flash Attention 2 is recommended for faster inference and lower GPU memory usage,
# especially in multi-image and video scenarios.
# model = AutoModelForImageTextToText.from_pretrained(
#     model_id,
#     torch_dtype=torch.bfloat16,
#     attn_implementation="flash_attention_2",
#     device_map="auto",
# )
##### Image Inference
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://huggingface.co/datasets/openbmb/DemoCase/resolve/main/refract.png"},
            {"type": "text", "text": "What causes this phenomenon?"},
        ],
    }
]

downsample_mode = "16x"  # Using `downsample_mode="4x"` for Finer Detail

inputs = processor.apply_chat_template(
    messages, tokenize=True, add_generation_prompt=True,
    return_dict=True, return_tensors="pt",
    downsample_mode=downsample_mode,
    max_slice_nums=36,
    enable_thinking=False,
).to(model.device)

generated_ids = model.generate(**inputs, downsample_mode=downsample_mode, max_new_tokens=512)
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[0])
##### Video Inference
messages = [
    {
        "role": "user",
        "content": [
            {"type": "video", "url": "https://huggingface.co/datasets/openbmb/DemoCase/resolve/main/football.mp4"},
            {"type": "text", "text": "Describe this video in detail. Follow the timeline and focus on on-screen text, interface changes, main actions, and scene changes."},
        ],
    }
]

downsample_mode = "16x"  # Using `downsample_mode="4x"` for Finer Detail

inputs = processor.apply_chat_template(
    messages, tokenize=True, add_generation_prompt=True,
    return_dict=True, return_tensors="pt",
    downsample_mode=downsample_mode,
    max_num_frames=128,
    stack_frames=1,
    max_slice_nums=1,
    use_image_id=False,
    enable_thinking=False,
).to(model.device)

generated_ids = model.generate(**inputs, downsample_mode=downsample_mode, max_new_tokens=2048)
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[0])
##### Advanced Parameters You can customize image/video processing by passing additional parameters to `apply_chat_template`: | Parameter | Default | Applies to | Description | |-----------|---------|------------|-------------| | `downsample_mode` | `"16x"` | Image & Video | Visual token downsampling. `"16x"` merges tokens for efficiency; `"4x"` keeps four times as many tokens for finer detail. **Must also be passed to `generate()`**. | | `max_slice_nums` | `9` | Image & Video | Maximum number of slices when splitting a high-resolution image. Higher values preserve more detail for large images. Recommended: `36` for image, `1` for video. | | `max_num_frames` | `128` | Video only | Maximum number of main frames sampled from the video. | | `stack_frames` | `1` | Video only | Total sample points per second. `1` = main frame only (no stacking). `N` (N>1) = 1 main frame + N−1 sub-frames per second; the sub-frames are composited into a grid image and interleaved with main frames. Recommended: `3` or `5`. | | `use_image_id` | `True` | Image & Video | Whether to prepend `N` tags before each image/frame placeholder. Recommended: `True` for image, `False` for video. | > **Note:** `downsample_mode` must be passed to **both** `apply_chat_template` (for correct placeholder count) and `generate` (for the vision encoder). All other parameters only need to be passed to `apply_chat_template`. ##### Serving with `transformers serve` Hugging Face Transformers includes a lightweight OpenAI-compatible server for quick testing and moderate-load deployment.
pip install "transformers[serving]>=5.18.0"
Start the server:
transformers serve openbmb/MiniCPM-V-4.7-35B-A3B --port 8000 --host 0.0.0.0
Send a request:
curl -s http://localhost:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "openbmb/MiniCPM-V-4.7-35B-A3B",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "image_url", "image_url": {"url": "https://huggingface.co/datasets/openbmb/DemoCase/resolve/main/refract.png"}},
        {"type": "text", "text": "What causes this phenomenon?"}
      ]
    }]
  }'
Tool calling example:
curl -s http://localhost:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{
  "model": "openbmb/MiniCPM-V-4.7-35B-A3B",
  "messages": [{"role": "user", "content": [
    {"type": "text", "text": "the weather of Beijing"}
  ]}],
  "tools": [{
    "type": "function",
    "function": {
      "name": "get_weather",
      "description": "Get the current weather for a given location",
      "parameters": {
        "type": "object",
        "properties": {
          "location": {"type": "string", "description": "City name"}
        },
        "required": ["location"]
      }
    }
  }]
}'
Speculative decoding (DSpark)
Click to show speculative decoding. Speculative decoding (DSpark): we also release [MiniCPM-V-4.7-35B-A3B-DSpark](https://huggingface.co/openbmb/MiniCPM-V-4.7-35B-A3B-DSpark), a DSpark draft model trained for [MiniCPM-V-4.7-35B-A3B](https://huggingface.co/openbmb/MiniCPM-V-4.7-35B-A3B).
Inference with OpenVINO™

OpenVINO™ is an open-source toolkit for optimizing and deploying AI inference on Intel CPU/GPU/NPU platforms. OpenVINO provides day-0 support for MiniCPM-V-4.7 on Intel platforms with high-performance inference. See the OpenVINO™ Toolkit to get started. You can install and run the example with this notebook (link TBD).

On-Device Deployment

MiniCPM-V 4.7 supports deployment on iOS, Android, and HarmonyOS, with day-0 support for Rockchip, Houmo, Intel, AMD, and Arm chip platforms. See the edge deployment repository for the apps and source code.

Inference and Fine-Tuning

For supported inference and training frameworks, see Supported Inference and Training Frameworks and API. The MiniCPM-V 4.7 Cookbook covers deployment, fine-tuning, and quantization workflows.

Task guides

Quantization

Acknowledgements

Click to view acknowledgements. We would like to thank the following projects: * [Qwen3.5](https://huggingface.co/collections/Qwen/qwen35) and [Qwen3.6](https://huggingface.co/collections/Qwen/qwen36) for providing the language backbone * [SigLIP2](https://github.com/google-research/big_vision/blob/main/big_vision/configs/proj/image_text/README_siglip2.md) for providing the vision understanding module * [Transformers](https://github.com/huggingface/transformers)

Model Weights

MiniCPM-V 4.7 is available in the following variants:

Model Description Download
MiniCPM-V 4.7 35B-A3B The first open-source MoE model to run smoothly on-device without compromising performance, raising the bar for on-device performance.
MiniCPM-V 4.7 35B-A3B FP8 FP8 quantized version with lower GPU memory usage.
MiniCPM-V 4.7 35B-A3B int4 int4 quantized version with lower GPU memory usage.
MiniCPM-V 4.7 35B-A3B AWQ AWQ (W4A16) quantized version with lower GPU memory usage.
MiniCPM-V 4.7 35B-A3B GPTQ GPTQ (W4A16) quantized version with lower GPU memory usage.
MiniCPM-V 4.7 35B-A3B GGUF GGUF version with lower memory usage for CPU inference.
MiniCPM-V 4.7 35B-A3B DSpark DSpark draft model for speculative decoding.

Also available on Ollama.

Configuration

Architecture
MiniCPMV4_7ForConditionalGeneration
Context length (tokens)
262,144
Layers
40
Hidden size
2,048
Attention heads
16
Key/value heads
2
Head dimension
256
Vocabulary size
248,144
Experts
256
Experts active per token
8
Model type
minicpmv4_7

Identity and Version

Repository
openbmb/MiniCPM-V-4.7-35B-A3B
Publisher
OpenBMB
Task
Image and text to text
Modality
Image and text
Library
transformers
Parameters
35.2B parameters
Languages
moe
Revision
17e651151c161dce119cd0ac57570f60da8a0b40
First published
2026-10-07
Last updated
2026-10-13

Files and Weights

35 files, 70.6 GB in total. The weights are 16 files totalling 70.4 GB in safetensors.

Weights16 files · 70.4 GB
Configuration5 files · 118.5 KB
Tokenizer2 files · 20.0 MB
Documentation1 file · 22.3 KB
Other10 files · 113.9 MB
Repository1 file · 2.5 KB
Every file
FileTypeSizeSHA-256
model-00001-of-00016.safetensorsWeights4.4 GB d18506daa702
model-00002-of-00016.safetensorsWeights4.8 GB 0faf6a19754d
model-00003-of-00016.safetensorsWeights4.4 GB 4ead0feb1c1a
model-00004-of-00016.safetensorsWeights4.5 GB 5c8187cad700
model-00005-of-00016.safetensorsWeights5.0 GB 93178ccc1e52
model-00006-of-00016.safetensorsWeights4.5 GB 6ccef011073b
model-00007-of-00016.safetensorsWeights4.4 GB 4fadc87dce47
model-00008-of-00016.safetensorsWeights4.5 GB c26852668bc6
model-00009-of-00016.safetensorsWeights4.5 GB fa5e5e55cd5a
model-00010-of-00016.safetensorsWeights4.5 GB c1f8b6978e4f
model-00011-of-00016.safetensorsWeights5.0 GB 2e9ddf18f64f
model-00012-of-00016.safetensorsWeights4.5 GB 02e5c5be45ec
model-00013-of-00016.safetensorsWeights4.6 GB 8544bf1e580e
model-00014-of-00016.safetensorsWeights4.4 GB a556eb58d01b
model-00015-of-00016.safetensorsWeights4.4 GB 36b73bac7d47
model-00016-of-00016.safetensorsWeights2.0 GB cc1fa9ec457f
config.jsonConfiguration3.1 KB —
generation_config.jsonConfiguration186 B —
model.safetensors.index.jsonConfiguration115.0 KB —
preprocessor_config.jsonConfiguration148 B —
processor_config.jsonConfiguration2 B —
README.mdDocumentation22.3 KB —
chat_template.jinjaOther7.2 KB —
minicpm_v4dot7_assets/minicpmv4.7/moe_speed_comparison_en.gifOther19.7 MB 62b8de01ee48
minicpm_v4dot7_assets/minicpmv4.7/overall_performance_1b_instruct.pngOther1.5 MB 0556fbc045a6
minicpm_v4dot7_assets/minicpmv4.7/overall_performance_35ba3b_instruct.pngOther1.5 MB 0d90331f7e81
minicpm_v4dot7_assets/minicpmv4.7/overall_performance_35ba3b_language.pngOther524.4 KB 0a04cb534173
minicpm_v4dot7_assets/minicpmv4.7/performance_efficiency_frontier.pngOther1.9 MB e2b7fc281ed6
minicpm_v4dot7_assets/minicpmv4.7/v47_1b_iphone_en.gifOther16.1 MB c74287b765a1
minicpm_v4dot7_assets/minicpmv4.7/v47_35ba3b_ipad_en.gifOther9.7 MB e3fbf226902b
minicpm_v4dot7_assets/minicpmv4.7/v47_35ba3b_iphone2_en.gifOther63.0 MB d389edb5eaf3
minicpm_v4dot7_assets/modelscope_logo.pngOther6.2 KB —
.gitattributesRepository2.5 KB —
tokenizer.jsonTokenizer20.0 MB e4608c5d7b3f
tokenizer_config.jsonTokenizer9.0 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
70.4 GB
Download from OpenBMB

Released by OpenBMB through its official repository on Hugging Face. Read the license.

Memory Requirements

PrecisionWeights in memory
As published70.4 GB
16-bit70.4 GB
8-bit35.2 GB
4-bit17.6 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Questions About MiniCPM-V-4.7-35B-A3B

How much GPU memory does MiniCPM-V-4.7-35B-A3B need?

About 84.5 GB at 16-bit and 21.1 GB at 4-bit: the weights (35.2B parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run MiniCPM-V-4.7-35B-A3B on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use MiniCPM-V-4.7-35B-A3B commercially?

Yes. MiniCPM-V-4.7-35B-A3B is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is MiniCPM-V-4.7-35B-A3B's context length?

262,144 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Image and text to text

Ablagent-35B-A3B

Blackfrost_AI

Blackfrost Pro Series is a line of specialized models packaged as professional tools and workflows. Each release is designed around a defined operational role instead of open-ended chat. 1. a domain-tuned model; 2. a deliberate operating boundary; 3. a harness or integration surface; 4. deployment guidance; 5. a validation and provenance record. This structure is intended to extend across model engineering, marketing operations, logistics, and other bounded professional workflows while preserving a recognizable Blackfrost product and documentation standard. Ablagent-35B-A3B is the Blackfrost Pro Series toolkit for Abliteration and Domain Weight Modification workflows. It helps an operator…

Access requested at publisher apache-2.0 35.1B parameters transformers

Model · Image and text to text

PhysicalEye-Decide-35B

Physical AI

One forward pass. One calibrated decision. PhysicalEye-Decide-35B answers a question about an image by choosing among the options you give it, and returns a probability for every option. It does not write text. It reads the image, the question and the options once, and outputs a decision. Use it for visual inspection, yes/no checks, option selection and scoring on production lines, in apps and in robots. - A small decision readout sits on top of the backbone and scores each option directly. One request carries up to 4 images, an optional context (state) and one or more questions. Three question types are supported: choice (pick one option), noul (yes or no) and score (a value on a scale).…

Open weights apache-2.0 34.6B parameters 262,144 tokens transformers

Model · Image and text to text

Qwen3.6-35B-A3B

Qwen

Following the February release of the Qwen3.5 series, we're pleased to share the first open-weight variant of Qwen3.6. Built on direct feedback from the community, Qwen3.6 prioritizes stability and real-world utility, offering developers a more intuitive, responsive, and genuinely productive coding experience. This release delivers substantial upgrades, particularly in For more details, please refer to our blog post Qwen3.6-35B-A3B. Empty cells (--) indicate scores not available or not applicable. For streamlined integration, we recommend using Qwen3.6 via APIs. Below is a guide to use Qwen3.6 via OpenAI-compatible API. Qwen3.6 can be served via APIs with popular inference frameworks. In…

Open weights apache-2.0 36B parameters 262,144 tokens transformers

Model · Image and text to text

Qwen3.5-35B-A3B

Qwen

Over recent months, we have intensified our focus on developing foundation models that deliver exceptional utility and performance. Qwen3.5 represents a significant leap forward, integrating breakthroughs in multimodal learning, architectural efficiency, reinforcement learning scale, and global accessibility to empower developers and enterprises with unprecedented capability and efficiency. For more details, please refer to our blog post Qwen3.5. WMT24++: a harder subset of WMT24 after difficulty labeling and rebalancing; we report the averaged scores on 55 languages using XCOMET-XXL. Empty cells (--) indicate scores not yet available or not applicable. Empty cells (--) indicate scores not…

Open weights apache-2.0 36B parameters 262,144 tokens transformers