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

MiniCPM-V-4.7-1B

Date: 2026-11-14Commit: ad9bf37Signed: 2DC28CC7B26A283B ✓

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

1.6B params3.13GBMiniCPM-V-4.7-1Bsafetensorspermissive
FactsParams1.6BSize3.13 GBFormatssafetensorsTaskimage text to textLicenseApache-2.0From sourcepermissive
$ fw get openbmb/MiniCPM-V-4.7-1B
# manifest sha256 10beedb79f22… · 3.13 GB · 10 files
$ fw verify ./MiniCPM-V-4.7-1B openbmb/MiniCPM-V-4.7-1B
From sourceHosted (signed)openbmb/MiniCPM-V-4.7-1BLast check: 2026-11-14 21:25 UTC

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

Works with

Overview

Size
3.13 GB
Weights
3.11 GB (safetensors)
Parameters
1.6B
Formats
safetensors
Task
image text to text
License
Apache-2.0 (permissive)
Files
10, each with a sha256
Publisher
openbmb
Added
2026-11-14
Section
alt.freeweights.minicpm
Lineage

Original release from the publisher.

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-14 21:25 UTCpassed

Model card

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

MiniCPM-V 4.7#

GitHub · Evaluation · Examples · Usage · Model weights · DSpark

News#

  • [2026.10.28] 🔥🔥🔥 We open-source the MiniCPM-OCR suite, pairing two models for fast, accurate parsing and result verification: MiniCPM-OCR 1.0 (based on MiniCPM-V 4.6, SOTA on Real5-OmniDocBench and OCRBench v2) and MiniCPM-OCR Jev for result correctness checks.

MiniCPM-V 4.7 is the latest model in the MiniCPM-V series, available in a 1B variant. 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:

  • 🔥 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 1B variant of MiniCPM-V 4.7 advances the performance–efficiency Pareto frontier for MLLMs. In Instruct mode, the 1B variant continues to improve foundation capabilities over MiniCPM-V 4.6 and substantially outperforms Qwen3.5 0.8B in both overall score and inference efficiency.
  • 🚀 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

Evaluation#

Significantly Advancing the Performance–Efficiency Pareto Frontier

The 1B variant of MiniCPM-V 4.7 advances the performance–efficiency Pareto frontier. In Instruct mode, 1B substantially outperforms Qwen3.5 0.8B in both overall score and inference efficiency.

Performance versus inference time for MiniCPM-V 4.7 1B

Overall Performance (1B, Instruct)

Full performance comparison for MiniCPM-V 4.7 1B 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.

| 1B iPhone 17 Pro Max

| 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-1B"

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-1B --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-1B",
    "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-1B",
  "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-1B-DSpark, a DSpark draft model trained for MiniCPM-V-4.7-1B.

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.

Each GGUF repository also ships a thinking/ subfolder with the same quantization levels suffixed -thinking. Those files restore the upstream chat template and therefore emit a [Start thinking] … [End thinking] trace; the files at the repository root keep thinking disabled. Tensor weights are identical between the two sets; only the embedded template differs.

Also available on Ollama.

Files

10 files · 3.13 GBWeights 3.11 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 10 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
README.md25.4 KB5a425bddeb4e8d6bb1a226b2f603077872e7fdad8e16fd28babc86a66f9dc437
chat_template.jinja7.25 KB49c37bcc86c7f7f20ed2ebf79e9f872be41ba2b5f9d0d51e6712cc038ef51d6c
config.json2.58 KB20ed1fe71b174719b88ed1ce37c840ec45e3657f1120391d45f33505be7638a4
generation_config.json132 B4dc190baaab3bc4bccb796ee73deb2c3dd776cd4feae3587b29bc22083e03415
model.safetensors3.11 GB8c4921ac83182c85190ad10c3aeb118d51e385d2d98ec13b88b514bbf6cac002
preprocessor_config.json148 Bc64289d04f36e48d9d059e3a0069f54062b2ef6044a807adb448b98449cb54de
processor_config.json2 B44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
tokenizer.json20.0 MB33861e37bb955af1e3f3061182b820f347eba2b9c2c1011c82794bf0d6e77b54
tokenizer_config.json1.44 KB900ecc6ba690a07270dc23935d17bbb7d2ed69a073a90a9cf731e5313e86ebba
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
ad9bf379fe pinned now manifest updated, same commit2026-11-14 21:25 UTC10 files · 3.13 GB
ad9bf379fe2026-11-14 21:25 UTC10 files · 3.13 GB

Use it

$ fw get openbmb/MiniCPM-V-4.7-1B
# manifest sha256 10beedb79f22… · 3.13 GB · 10 files
$ fw verify ./MiniCPM-V-4.7-1B openbmb/MiniCPM-V-4.7-1B
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-1B.json --dir ./MiniCPM-V-4.7-1B $ python3 fw.py verify ./MiniCPM-V-4.7-1B ./openbmb__MiniCPM-V-4.7-1B.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download openbmb/MiniCPM-V-4.7-1B --revision ad9bf379feb71204c888b22923d63322452407f9 --local-dir ./MiniCPM-V-4.7-1B
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-1B", revision="ad9bf379feb71204c888b22923d63322452407f9") model = AutoModelForImageTextToText.from_pretrained("openbmb/MiniCPM-V-4.7-1B", revision="ad9bf379feb71204c888b22923d63322452407f9", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve openbmb/MiniCPM-V-4.7-1B --revision ad9bf379feb71204c888b22923d63322452407f9

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-14
Text in
README.md
Text sha256
5a425bddeb4e8d6bb1a226b2f603077872e7fdad8e16fd28babc86a66f9dc437
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-1BDate: 2026-11-14Commit: ad9bf37Signed: 2DC28CC7B26A283B ✓
Upstream
openbmb/MiniCPM-V-4.7-1B
Pinned commit
ad9bf379feb71204c888b22923d63322452407f9
Manifest
MiniCPM-V-4.7-1B.json · .minisig
Manifest sha256
10beedb79f22527e2c53c7ad240b69cccde7eb7c47a358514a48cfd4d2ee114f
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-14 21:25 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/openbmb/MiniCPM-V-4.7-1B.json $ curl -O https://freeweights.allternit.com/manifests/openbmb/MiniCPM-V-4.7-1B.json.minisig $ minisign -Vm MiniCPM-V-4.7-1B.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

7 models in the catalog name this one as their parent.

Quantizations
7
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download openbmb/MiniCPM-V-4.7-1B
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-1B.json. Provenance. Takedown history: none.

Variants

7 quantized or adapter builds of MiniCPM-V-4.7-1B. Each has its own license check and page.

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