跳到正文
面壁 MiniCPM 模型发布·· 13 小时前同事件AI 评分62

面壁发布 MiniCPM-V 4.7,含 1B 与 35B-A3B 两个版本

openbmb/MiniCPM-V-4.7-1B

AI 导读

面壁发布 MiniCPM-V 4.7 多模态模型,提供 1B 和 35B-A3B 两个版本,并配套发布 DSpark 投机解码头。1B 版本在 Instruct 模式下整体得分与推理效率均超过 Qwen3.5 0.8B,采用 ViT 内早期压缩并支持 4x/16x 混合视觉 token 压缩。

同一件事,精选收录的是《面壁开源 MiniCPM-V 4.7 35B-A3B,首个可在端侧流畅运行的 MoE 多模态模型》

正文 · AI 翻译

GitHub · 评测 · 示例 · 用法 · 模型权重 · DSpark

MiniCPM-V 4.7 是 MiniCPM-V 系列的最新模型,提供 1B 版本。它延续了该系列的单图、多图和视频理解能力,将更强的基础能力与高效的视觉编码和端侧推理相结合。MiniCPM-V 4.7 的显著特性包括:

  • 🔥 性能与效率的新帕累托前沿。 随着模型能力不断提升,推理效率已成为衡量模型价值的重要指标。在资源受限的设备上,要在有限的资源预算内提供尽可能强的能力,就需要更高的能力密度。MiniCPM-V 4.7 的 1B 版本推进了 MLLM 的性能–效率帕累托前沿。在 Instruct 模式下,1B 版本在基础能力上较 MiniCPM-V 4.6 继续提升,并在总体得分和推理效率上均大幅优于 Qwen3.5 0.8B。
  • 🚀 高效架构。 基于 LLaVA-UHD v4 的 ViT 内部早期压缩技术,MiniCPM-V 4.7 在视觉编码器内部提前压缩视觉 token,从而减少后续编码器层的计算量。它还支持混合 4x/16x 视觉 token 压缩,让开发者可以针对不同任务在视觉细节与推理成本之间取得平衡。
  • 💻 广泛的平台与芯片支持。 MiniCPM-V 4.7 支持 iOS、Android 和 HarmonyOS,并提供开源的端侧部署支持。它还在发布首日即支持 Rockchip、Houmo、Intel、AMD 和 Arm 的芯片平台,将部署选项扩展到移动设备和本地计算设备。
  • 🛠️ 对开发者友好。 MiniCPM-V 4.7 支持包括 SGLang、vLLM、llama.cpp 和 Ollama 在内的推理框架,以及包括 SWIFT 和 LLaMA-Factory 在内的微调框架。它提供 GGUF、BNB、AWQ 和 GPTQ 量化版本,并新增FP8 量化支持。我们还发布了 Self-Replay Fine-Tuning (SRFT),这是一种微调方法,可帮助开发者以低成本扩展模型能力,同时减少对已有能力的遗忘,使进一步定制更加容易。

开始使用

模型权重  ·  推理  ·  微调  ·  在线演示  ·  本地部署  ·  API  ·  Cookbook

评测

显著推进性能–效率帕累托前沿

MiniCPM-V 4.7 的 1B 版本推进了性能–效率帕累托前沿。在 Instruct 模式下,1B 在总体得分和推理效率上均大幅优于 Qwen3.5 0.8B。

Performance versus inference time for MiniCPM-V 4.7 1B

总体性能(1B,Instruct)

Full performance comparison for MiniCPM-V 4.7 1B in Instruct mode

示例

MiniCPM-V 4.7 可在手机和平板电脑上运行。以下片段是直接在设备上录制的未经剪辑的屏幕录像。

1B
iPhone 17 Pro Max

用法

使用 Transformers 推理

点击展开 Transformers 推理示例。

安装
pip install "transformers[torch]>=5.18.0" torchvision torchcodec

关于 CUDA 兼容性的说明:torchcodec(用于视频解码)可能与某些 CUDA 版本存在兼容性问题。例如,torch>=2.11 默认捆绑 CUDA 13.1,而 CUDA 12.x 环境可能会遇到 RuntimeError: Could not load libtorchcodec 等错误。有两种解决方法:

  1. Replace torchcodec with PyAV — supports both image and video inference without CUDA version constraints:
    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):
    pip install "transformers>=5.18.0" torchvision torchcodec --index-url https://download.pytorch.org/whl/cu128
    
加载模型
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",
# )
图像推理
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://hf-mirror.com/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])
视频推理
messages = [
    {
        "role": "user",
        "content": [
            {"type": "video", "url": "https://hf-mirror.com/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])
高级参数

你可以通过向 apply_chat_template 传递额外参数来自定义图像/视频处理:

参数 默认值 适用对象 说明
downsample_mode "16x" 图像与视频 视觉 token 下采样。"16x" 会合并 token 以提高效率;"4x" 保留四倍的 token 以获得更精细的细节。还必须传递给 generate()。
max_slice_nums 9 图像与视频 拆分高分辨率图像时的最大切片数。数值越高,大图像的细节保留越多。推荐:图像用 36,视频用 1。
max_num_frames 128 仅视频 从视频中采样的最大主帧数。
stack_frames 1 仅视频 每秒的总采样点数。1 = 仅主帧(不堆叠)。N(N>1)= 每秒 1 个主帧 + N−1 个子帧;子帧会合成为网格图像并与主帧交错。推荐:3 或 5。
use_image_id True 图像与视频 是否在每个图像/帧占位符前添加 <image_id>N</image_id> 标签。推荐:图像用 True,视频用 False。

注意:downsample_mode 必须同时传递给 apply_chat_template(用于正确的占位符数量)和 generate(用于视觉编码器)。所有其他参数只需传递给 apply_chat_template。

使用 transformers serve 提供服务

HF Mirror Transformers 包含一个轻量级的 OpenAI 兼容服务器,用于快速测试和中等负载部署。

pip install "transformers[serving]>=5.18.0"

启动服务器:

transformers serve openbmb/MiniCPM-V-4.7-1B --port 8000 --host 0.0.0.0

发送请求:

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://hf-mirror.com/datasets/openbmb/DemoCase/resolve/main/refract.png"}},
        {"type": "text", "text": "What causes this phenomenon?"}
      ]
    }]
  }'

工具调用示例:

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"]
      }
    }
  }]
}'
推荐的采样参数

我们建议在指令模式下生成时使用以下采样参数:temperature=0.7、top_p=0.95、top_k=100、min_p=0.0、presence_penalty=0、repetition_penalty=1.03。

投机解码(DSpark)

点击显示投机解码。

投机解码(DSpark):我们还发布了 MiniCPM-V-4.7-1B-DSpark,这是一个为 MiniCPM-V-4.7-1B 训练的 DSpark 草稿模型。

使用 OpenVINO™ 推理

OpenVINO™ 是一个开源工具包,用于在 Intel CPU/GPU/NPU 平台上优化和部署 AI 推理。OpenVINO 为 Intel 平台上的 MiniCPM-V-4.7 提供首日支持,并实现高性能推理。请参阅 OpenVINO™ 工具包 开始使用。你可以使用 此 notebook 安装并运行示例。

端侧部署

MiniCPM-V 4.7 支持在 iOS、Android 和 HarmonyOS 上部署,并首日支持 Rockchip、Houmo、Intel、AMD 和 Arm 芯片平台。请参阅 边缘部署仓库 获取应用和源代码。

推理与微调

有关支持的推理和训练框架,请参阅 支持的推理和训练框架与 API。MiniCPM-V 4.7 Cookbook 涵盖部署、微调和量化工作流。

任务指南

量化

方法 指南
GGUF 量化指南
BNB 量化指南
AWQ 量化指南
GPTQ 量化指南
FP8 / INT4 量化指南

致谢

点击查看致谢。

我们想感谢以下项目:

模型权重

MiniCPM-V 4.7 提供 35B-A3B 和 1B 两种变体。每个模型都配有对应的 DSpark 投机解码头,提供 BF16 和 GGUF 格式。

模型 描述 模型权重 DSpark 头
MiniCPM‑V 4.7
35B-A3B
首个开源 MoE 模型
可在设备端流畅运行,
且不牺牲性能,
提升了设备端性能标准。
🤗  ModelScope BF16
🤗  ModelScope FP8
🤗  ModelScope int4
🤗  ModelScope AWQ
🤗  ModelScope GPTQ
🤗  ModelScope GGUF
🤗  ModelScope BF16
🤗  ModelScope GGUF
MiniCPM‑V 4.7
1B
将更强的能力
与极高的效率相结合,
推进了多模态
大语言模型的性能–效率
帕累托前沿。
🤗  ModelScope BF16
🤗  ModelScope int4
🤗  ModelScope AWQ
🤗  ModelScope GPTQ
🤗  ModelScope GGUF
🤗  ModelScope BF16
🤗  ModelScope GGUF

1B int4 变体使用 bitsandbytes;AWQ 和 GPTQ 使用 W4A16 量化。量化变体可减少内存占用;GGUF 权重支持 CPU 推理。

每个 GGUF 仓库还附带一个 thinking/ 子文件夹,其中包含相同量化级别的文件, 后缀为 -thinking。这些文件恢复了上游聊天模板,因此会输出 [Start thinking] … [End thinking] 轨迹;仓库根目录下的文件则保持思考功能禁用。 两组文件的张量权重完全相同,仅嵌入的模板不同。

也可在 Ollama 上获取。

上月下载量
133,501

Safetensors

openbmb/MiniCPM-V-4.7-1B 的模型树

使用 openbmb/MiniCPM-V-4.7-1B 的 Spaces 5

包含 openbmb/MiniCPM-V-4.7-1B 的合集

来源:面壁 MiniCPM 模型发布 · hf-mirror.com