alt.freeweights.minicpm / MiniCPM-V-4.7-35B-A3B-GPTQ
From: openbmb <huggingface.co/openbmb>Newsgroups: alt.freeweights.minicpmSubject:

MiniCPM-V-4.7-35B-A3B-GPTQ

Date: 2026-11-15Commit: d804facSigned: 2DC28CC7B26A283B ✓

Image text to text model with 7.3B parameters. Safetensors weights, 22.7 GB in all. Published by openbmb under Apache-2.0.

7.3B params22.7GBMiniCPM-V-4.7-35B-A3B-GPTQsafetensorspermissive
FactsParams7.3BSize22.7 GBFormatssafetensorsTaskimage text to textLicenseApache-2.0From sourcepermissive
$ fw get openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ
# manifest sha256 399455a69717… · 22.7 GB · 13 files
$ fw verify ./MiniCPM-V-4.7-35B-A3B-GPTQ openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ
From sourceHosted (signed)openbmb/MiniCPM-V-4.7-35B-A3B-GPTQLast check: 2026-11-15 04:37 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Quantized of MiniCPM-V-4.7-35B-A3B.

Works with

Overview

Size
22.7 GB
Weights
22.6 GB (safetensors)
Parameters
7.3B
Formats
safetensors
Task
image text to text
License
Apache-2.0 (permissive)
Files
13, each with a sha256
Publisher
openbmb
Added
2026-11-15
Section
alt.freeweights.minicpm
Lineage

Original release from the publisher.

Base model: openbmb/MiniCPM-V-4.7-35B-A3B

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 04:37 UTCpassed

Model card

From the publisher at commit d804fac. Shown as plain text with links; images open at the publisher.

This repository hosts the GPTQ (W4A16, compressed-tensors, llm-compressor) quantized version of MiniCPM-V 4.7 35B-A3B. For the original BF16 weights and the full model card, please refer to openbmb/MiniCPM-V-4.7-35B-A3B.

MiniCPM-V 4.7#

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

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 (SRFT), 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 &nbsp;·&nbsp; Inference &nbsp;·&nbsp; Fine-tuning &nbsp;·&nbsp; Live demo &nbsp;·&nbsp; Local deployment &nbsp;·&nbsp; API &nbsp;·&nbsp; 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

On-device MoE inference speed comparison, with optimization on the left and without optimization on the right

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.

Performance versus inference time for MiniCPM-V 4.7 35B-A3B

Overall Performance (35B-A3B, Instruct)

Vision-Language

Vision-Language performance comparison for MiniCPM-V 4.7 35B-A3B in Instruct mode

Language

Language performance comparison for MiniCPM-V 4.7 35B-A3B in Instruct mode

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

| Image: image | Image: image

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:
   pip install "transformers[torch]>=5.18.0" torchvision av
  1. Pin the CUDA version when installing torch to match your environment (e.g. CUDA 12.8):
   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,
    # recommended instruct-mode sampling parameters
    do_sample=True,
    temperature=0.7,
    top_p=0.95,
    top_k=100,
    min_p=0.0,
    presence_penalty=0,
    repetition_penalty=1.03,
)
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,
    # recommended instruct-mode sampling parameters
    do_sample=True,
    temperature=0.7,
    top_p=0.95,
    top_k=100,
    min_p=0.0,
    presence_penalty=0,
    repetition_penalty=1.03,
)
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:

ParameterDefaultApplies toDescription
downsample_mode"16x"Image & VideoVisual 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_nums9Image & VideoMaximum 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_frames128Video onlyMaximum number of main frames sampled from the video.
stack_frames1Video onlyTotal 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_idTrueImage & VideoWhether to prepend <image_id>N</image_id> 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"]
      }
    }
  }]
}'

We recommend using the following set of sampling parameters for generation in instruct mode: temperature=0.7, top_p=0.95, top_k=100, min_p=0.0, presence_penalty=0, repetition_penalty=1.03.

Speculative decoding (DSpark)#

Click to show speculative decoding.

Speculative decoding (DSpark): we also release MiniCPM-V-4.7-35B-A3B-DSpark, a DSpark draft model trained for 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.

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:

Model Weights#

MiniCPM-V 4.7 is available in 35B-A3B and 1B variants. Each model is paired with its DSpark speculative decoding heads, available in BF16 and GGUF.

| Model | Description | Model weights | DSpark heads

| MiniCPM&#8209;V&nbsp;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. | 🤗&nbsp;&nbsp;ModelScope&nbsp;BF16

🤗&nbsp;&nbsp;ModelScope&nbsp;FP8

🤗&nbsp;&nbsp;ModelScope&nbsp;int4

🤗&nbsp;&nbsp;ModelScope&nbsp;AWQ

🤗&nbsp;&nbsp;ModelScope&nbsp;GPTQ

🤗&nbsp;&nbsp;ModelScope&nbsp;GGUF

| 🤗&nbsp;&nbsp;ModelScope&nbsp;BF16

🤗&nbsp;&nbsp;ModelScope&nbsp;GGUF

| MiniCPM&#8209;V&nbsp;4.7 1B | Combines stronger capabilities with extremely high efficiency, advancing the performance–efficiency Pareto frontier for multimodal large language models. | 🤗&nbsp;&nbsp;ModelScope&nbsp;BF16

🤗&nbsp;&nbsp;ModelScope&nbsp;int4

🤗&nbsp;&nbsp;ModelScope&nbsp;AWQ

🤗&nbsp;&nbsp;ModelScope&nbsp;GPTQ

🤗&nbsp;&nbsp;ModelScope&nbsp;GGUF

| 🤗&nbsp;&nbsp;ModelScope&nbsp;BF16

🤗&nbsp;&nbsp;ModelScope&nbsp;GGUF

The 1B int4 variant uses bitsandbytes; AWQ and GPTQ use W4A16 quantization. Quantized variants reduce memory usage; GGUF weights support CPU inference.

Also available on Ollama.

Files

13 files · 22.7 GBWeights 22.6 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 13 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
README.md29.3 KBaf27dd18bcb9e4282103cda7b43c6c92204b3c404942e568c6428ee57d1818af
chat_template.jinja7.25 KB49c37bcc86c7f7f20ed2ebf79e9f872be41ba2b5f9d0d51e6712cc038ef51d6c
config.json42.1 KB7e6f26999e618f68d7180984188b504a643f9a9c77d8d0019a381ab35a11cdf4
generation_config.json188 B402b12b1edb604100b161f4f29dba1e31474ed095bd816793424c25c697da123
model-00001-of-00002.safetensors20.0 GBbf3ade16102b3b32eedc474e90431eca3e0f96e512a80e1a37de1f0236487744
model-00002-of-00002.safetensors2.61 GB34a5eba3104311c3b3ee4885e50846a2feb18ccb1a16052ddf9b0cab85a75cfe
model.safetensors.index.json10.4 MBf256f25ac27cad248fd3c572df61001df33d92d032c42f32e90c863650d9f13d
preprocessor_config.json149 B9ad666f0e9663eb04b19945b60b067bb402d170f9aafb40d625aaa771d5b3174
processor_config.json3 Bca3d163bab055381827226140568f3bef7eaac187cebd76878e0b63e9e442356
recipe.yaml496 Bfd4cc0af5aa1b9370b505e709c4df2cb3354bb038f871b9baa67b628539516b4
tokenizer.json20.0 MBe4608c5d7b3f4f30ba83be16a82cdac856b2e7191d40f0a08cbacc76c2a926ee
tokenizer_config.json1.62 KBef080852e94c20190074c3341e7a458077719646240f9daf046badd281bbe479
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
d804fac1c1 pinned now2026-11-15 04:37 UTC13 files · 22.7 GB

Use it

$ fw get openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ
# manifest sha256 399455a69717… · 22.7 GB · 13 files
$ fw verify ./MiniCPM-V-4.7-35B-A3B-GPTQ openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ.json --dir ./MiniCPM-V-4.7-35B-A3B-GPTQ $ python3 fw.py verify ./MiniCPM-V-4.7-35B-A3B-GPTQ ./openbmb__MiniCPM-V-4.7-35B-A3B-GPTQ.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ --revision d804fac1c1872d5830d4e830e4ba72f173d4b72f --local-dir ./MiniCPM-V-4.7-35B-A3B-GPTQ
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForImageTextToText, AutoProcessor processor = AutoProcessor.from_pretrained("openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ", revision="d804fac1c1872d5830d4e830e4ba72f173d4b72f") model = AutoModelForImageTextToText.from_pretrained("openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ", revision="d804fac1c1872d5830d4e830e4ba72f173d4b72f", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ --revision d804fac1c1872d5830d4e830e4ba72f173d4b72f

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
af27dd18bcb9e4282103cda7b43c6c92204b3c404942e568c6428ee57d1818af
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: openbmb <huggingface.co/openbmb>Newsgroups: alt.freeweights.minicpmSubject: MiniCPM-V-4.7-35B-A3B-GPTQDate: 2026-11-15Commit: d804facSigned: 2DC28CC7B26A283B ✓
Upstream
openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ
Pinned commit
d804fac1c1872d5830d4e830e4ba72f173d4b72f
Manifest
MiniCPM-V-4.7-35B-A3B-GPTQ.json · .minisig
Manifest sha256
399455a697171fd4a217b7826753c930edbeae19cf514e9ce46fc2ef13157a13
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 04:37 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ.json $ curl -O https://freeweights.allternit.com/manifests/openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ.json.minisig $ minisign -Vm MiniCPM-V-4.7-35B-A3B-GPTQ.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

openbmb/MiniCPM-V-4.7-35B-A3B · this model is a quantization of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download openbmb/MiniCPM-V-4.7-35B-A3B-GPTQ
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. MiniCPM-V-4.7-35B-A3B-GPTQ.json. Provenance. Takedown history: none.
From: openbmb <huggingface.co/openbmb>Subject: AgentCPM-Explore-GGUF
From: openbmb <huggingface.co/openbmb>Subject: AgentCPM-Report
From: openbmb <huggingface.co/openbmb>Subject: AgentCPM-Report-GGUF
From: openbmb <huggingface.co/openbmb>Subject: BitCPM-CANN-0.5B-gguf
From: openbmb <huggingface.co/openbmb>Subject: BitCPM-CANN-1B-gguf
From: openbmb <huggingface.co/openbmb>Subject: BitCPM-CANN-3B-gguf