How to run MiniCPM-V on a cloud GPU
Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install the transformers stack the official MiniCPM-V 4.7 page prints, download the weights that page’s code names, and run the image or video call it prints. Copy the printed text and any file you saved before you destroy the instance, because destroying the instance deletes its disk.
The README at commit 4dbbb6c58b6f8a004d6689028417296719f0831a (committed 2026-11-09T07:37:28Z) calls MiniCPM-V 4.7 the latest model in the series and names two variants, 35B-A3B and 1B. The Hugging Face ids in that doc are openbmb/MiniCPM-V-4.7-35B-A3B and openbmb/MiniCPM-V-4.7-1B. A vision-language server whose README prints a transformers minimum table is How to serve Qwen2.5-VL with vLLM on a cloud GPU. A promptable OCR model whose cards print no GPU GB figure is How to run Florence-2 on a cloud GPU. A document OCR model whose README prints no GPU GB figure is How to run GOT-OCR 2.0 on a cloud GPU. A general vLLM install is How to serve an OpenAI-compatible API with vLLM on a cloud GPU. Ollama’s install and port 11434 are How to run Ollama on a cloud GPU. A general SGLang install is How to run SGLang on a cloud GPU. A llama.cpp CUDA build is How to build llama.cpp with CUDA on a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU. If the process raises no kernel image on an RTX 5090: How to fix CUDA no kernel image on an RTX 5090. The download helper this site prints is How to download a Hugging Face model. The tunnel is How to use SSH port forwarding on a cloud GPU. An OCR model whose id is deepseek-ai/DeepSeek-OCR, and whose README prints no GPU GB figure for the weights, is How to run DeepSeek-OCR on a cloud GPU.
The repository LICENSE file begins with “Apache License Version 2.0, January 2004”. The appendix copyright line is “Copyright OpenBMB”. The model card front matter for both ids says license: apache-2.0. On 2026-11-14 the model API reported gated false for both. That license text is not a CloudGPU price.
The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.
What the docs say about memory
The 4.7 doc’s on-device sentence says a decoding speed of 13+ tokens/s with just 3 GB of memory on iPhone 17 Pro Max. That sentence names a phone. This page does not treat 3 GB as a vram_gb value and does not mark a catalog row from it.
The vLLM cookbook linked from docs/deployment_en.md, at cookbook commit 73b3ef502209d058cc65f785d96eed23db6c8d74, says the 1B model fits on a single consumer GPU and prints no GB figure for that sentence. The same note says 35B-A3B is ~70 GB bf16 and needs multiple GPUs or 4-bit weights, and it names the suffixes -AWQ, -GPTQ, -FP8, and -INT4. This page does not mark a catalog row as enough for either sentence. The llama.cpp cookbook says the 35B-A3B GGUF repository also ships mix_q3gud_im, “a 14.4 GiB imatrix mixture”. That 14.4 GiB figure is the file size in that sentence, not a vram_gb value and not a disk size.
The 4.7 doc says the model builds on single-image, multi-image, and video understanding. Its usages section links an OCR cookbook page. That page loads openbmb/MiniCPM-V-4.7-1B or openbmb/MiniCPM-V-4.7-35B-A3B and the example prompt asks for the text in the picture. It prints no GPU GB figure. This page does not copy that page’s benchmark tables, and the 4.7 doc’s score comparisons are not repeated here.
GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-14T02:04:03.491Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-14T02:04:03.382Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. Every catalog row has min_gpu_count 1. Which listing you can start is on Deploy.
The catalog template list had no MiniCPM-V template. It did have a template id minicpm-4-8b named MiniCPM 4-8B. This page does not treat that template as MiniCPM-V 4.7.
| Catalog name | vram_gb |
|---|---|
| RTX 2080 | 8 |
| RTX 3080 | 10 |
| RTX 2080 Ti | 11 |
| RTX 3080 Ti | 12 |
| V100 16G | 16 |
| A30 | 24 |
| RTX 3090 | 24 |
| RTX 4090 | 24 |
| RTX 4090D | 24 |
| RTX 4080 SUPER 32G | 32 |
| RTX 5090 | 32 |
| RTX 5090D | 32 |
| V100 32G | 32 |
| A100 40G | 40 |
| A800 40G | 40 |
| A40 | 48 |
| RTX 4090 48G | 48 |
| RTX 4090D 48G | 48 |
| RTX A6000 | 48 |
| NVIDIA RTX PRO 5000 72G | 72 |
| RTX PRO 5000 72G | 72 |
| A100 80G | 80 |
| A800 80G | 80 |
| H800 | 80 |
| RTX 6000D | 83 |
| H20 96G | 96 |
| RTX PRO 6000 96G | 96 |
| RTX PRO 6000 Max-Q | 96 |
| H20-3e 141G | 141 |
Install
The 4.7 doc’s transformers install, copied:
pip install "transformers[torch]>=5.18.0" torchvision torchcodec
The note under that command says torchcodec is for video decoding and may fail with RuntimeError: Could not load libtorchcodec. It says torch>=2.11 bundles CUDA 13.1 by default, and that CUDA 12.x environments can hit that error. The two workarounds it prints are pip install "transformers[torch]>=5.18.0" torchvision av, or pinning the wheel index:
pip install "transformers>=5.18.0" torchvision torchcodec --index-url https://download.pytorch.org/whl/cu128
That second line passes --index-url. The pip install page says packages are found on PyPI, or on the index given as --index-url. There is no second index on that line. On 2026-11-14 the cu128 index listing had torchvision/ and torchcodec/ and did not list transformers. The block below is added on this page. It keeps the version pin and the two wheel names from that line, and it does not put transformers on that index. This page did not run it.
# Added on this page. The 4.7 note puts transformers on the same --index-url line.
pip install "transformers>=5.18.0"
pip install torchvision torchcodec --index-url https://download.pytorch.org/whl/cu128
This page did not install the copied lines either. A commented load on the same page sets attn_implementation="flash_attention_2" and says that is for lower GPU memory usage. It prints no GB figure.
Download the weights
The load example sets model_id = "openbmb/MiniCPM-V-4.7-35B-A3B" and calls from_pretrained. The weights table also links openbmb/MiniCPM-V-4.7-1B, plus FP8, int4, AWQ, and GPTQ ids for the sizes that table lists. The 1B row on that table does not list an FP8 id. The doc does not print hf download. The block below is added on this page. How to download a Hugging Face model prints pip install -U "huggingface_hub" and hf download. This page did not download the repository.
# Added on this page. The 4.7 doc loads the id with from_pretrained.
pip install -U "huggingface_hub"
hf download openbmb/MiniCPM-V-4.7-35B-A3B
On 2026-11-14, GET https://huggingface.co/api/models/openbmb/MiniCPM-V-4.7-35B-A3B reported gated false, cardData.license apache-2.0, pipeline_tag image-text-to-text, lastModified 2026-11-03T06:16:58.000Z, and sha 98e79ba972b586ac6146d3505771ce1467e199ba. The 1B model API the same day reported gated false, cardData.license apache-2.0, pipeline_tag image-text-to-text, lastModified 2026-10-30T08:56:31.000Z, and sha ad9bf379feb71204c888b22923d63322452407f9.
Run the transformers code
The image path, copied in the parts this page keeps. downsample_mode is "16x" in the sample, with a comment that "4x" is for finer detail. The image call passes max_slice_nums=36 and enable_thinking=False, then model.generate with max_new_tokens=512. The video call passes max_num_frames=128, stack_frames=1, max_slice_nums=1, and use_image_id=False, then max_new_tokens=2048. The parameter table says use_image_id prepends an image id tag. This page does not print that tag. The same table’s defaults are downsample_mode "16x", max_slice_nums 9, max_num_frames 128, stack_frames 1, and use_image_id true. The doc says downsample_mode must be passed to both apply_chat_template and generate.
The recommended sampling line for instruct mode is temperature=0.7, top_p=0.95, top_k=100, min_p=0.0, presence_penalty=0, repetition_penalty=1.03. This page did not run the call.
Serving routes the docs list
docs/deployment_en.md at the same MiniCPM-V commit says inference is supported with vLLM, SGLang, llama.cpp, and Ollama, and it also names FlagOS. The 4.7 doc lists SGLang, vLLM, llama.cpp, and Ollama. This page follows those four links. It does not copy the FlagOS install.
The 4.7 doc’s own server, copied:
pip install "transformers[serving]>=5.18.0"
transformers serve openbmb/MiniCPM-V-4.7-35B-A3B --port 8000 --host 0.0.0.0
The curl on that page posts to http://localhost:8000/v1/chat/completions. How to use SSH port forwarding on a cloud GPU is how a program on your computer reaches port 8000. This page does not add an ssh command.
The vLLM cookbook’s serve command does not pass --port. It does pass --dtype auto, --max-model-len 8192, --api-key token-abc123, --gpu_memory_utilization 0.9, and --max-num-batched-tokens 8192. The placeholder it prints is a local path or one of the two ids above. The client on that page sets the base URL to http://localhost:8000/v1. The install block clones vllm-project/vllm and says the checkout must include PR 58674, with MAX_JOBS=6 and VLLM_USE_PRECOMPILED=1. It says pip install -U vllm is enough once a release contains that pull request. It also says transformers >= 5.18.0 and that --trust-remote-code is not needed. A note says 4.7 supports up to 256K context and to start max-model-len small. This page did not clone vLLM.
The Ollama cookbook says Ollama’s model code recognizes MiniCPM-V 4.7, and that ollama create and ollama run on a 4.7 GGUF fail until the bundled llama.cpp includes PR 29416. The registry command it prints for after that release is ollama run openbmb/minicpm-v4.7. The API example posts to http://localhost:11434/api/generate. This page did not run ollama run.
The llama.cpp cookbook says support was merged in llama.cpp PR 29416. The CUDA build line it prints is cmake -B build -DGGML_CUDA=ON, then cmake --build build --config Release. The speculative-decoding section’s llama-server example passes --port 8080. This page did not build that tree. The GGUF ids it names are openbmb/MiniCPM-V-4.7-1B-gguf and openbmb/MiniCPM-V-4.7-35B-A3B-gguf.
The SGLang cookbook says MiniCPM-V 4.7 support is not in upstream SGLang yet. It points at the fork tc-mb/sglang branch Support-MiniCPM-V4.7. The launch line uses --port 30000. The 35B-A3B line adds --tp-size 2 and a comment that the variant needs a large-memory GPU node. That comment prints no GB figure. This page does not install that fork. The SGLang guide linked above is the upstream install, not this fork.
When it fails
CUDA out of memory. The only GPU-sized number this page found is the cookbook’s ~70 GB bf16 clause for 35B-A3B, and that same sentence says the variant needs multiple GPUs or 4-bit weights. The 3 GB sentence is the phone sentence. If the process raises CUDA out of memory, use how to fix CUDA out of memory on a cloud GPU.
“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. The 4.7 note says torch>=2.11 bundles CUDA 13.1, and one workaround names the cu128 wheel index. The added block above passes that index only to torchvision and torchcodec. The note does not name compute capability 12.0. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not install a torch wheel and did not re-test this model on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.
libtorchcodec. The documented error string is RuntimeError: Could not load libtorchcodec. The note prints an av install, or the cu128 --index-url line above. The added block keeps torchcodec on that index and installs transformers first. This page did not reproduce the error.
What to copy off, then destroy
The transformers calls print output_text[0]. The server curls print the HTTP body. Copy that text, and the hf download directory if you passed --local-dir, before you destroy the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.
The pricing page FAQ states the billing rule in these words:
Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.
Prices are not copied here.
Frequently asked questions
What memory figures do the 4.7 doc and the vLLM cookbook print?
The 4.7 doc prints 13+ tokens/s with 3 GB of memory on iPhone 17 Pro Max. That sentence names a phone. The vLLM cookbook says the 1B model fits on a single consumer GPU and prints no GB figure for that clause. It says 35B-A3B is ~70 GB bf16 and needs multiple GPUs or 4-bit weights. The llama.cpp cookbook 14.4 GiB figure is the mix_q3gud_im file size. This page does not mark a catalog row as enough. Which listing you can start is on https://cloudgpu.app/deploy.
Which model ids and install line does the 4.7 doc print?
The README calls MiniCPM-V 4.7 the latest model and names the 35B-A3B and 1B variants. The inference code sets model_id to openbmb/MiniCPM-V-4.7-35B-A3B. The other id on that page is openbmb/MiniCPM-V-4.7-1B. The install line is pip install "transformers[torch]>=5.18.0" torchvision torchcodec. A CUDA 12.x workaround on the same page passes --index-url for the cu128 index together with transformers. The cu128 index lists torchvision and torchcodec and does not list transformers, so this page installs transformers first and passes that index only to torchvision and torchcodec. This page did not run the install. Model API cardData.license was apache-2.0 and gated was false for both ids on 2026-11-14.
Which serving routes do the docs list?
deployment_en.md lists vLLM, SGLang, llama.cpp, Ollama, and FlagOS. The 4.7 doc server is transformers serve on port 8000. The vLLM cookbook client uses http://localhost:8000/v1 and the serve command in that section does not pass --port. The Ollama cookbook says ollama run on a 4.7 GGUF fails until llama.cpp PR 29416 is bundled, and its later example posts to http://localhost:11434/api/generate. The llama.cpp cookbook server example passes --port 8080. The SGLang cookbook says 4.7 is not in upstream SGLang and points at a fork, with --port 30000. This page did not start those servers.
What license does the file print?
The MiniCPM-V LICENSE file begins with Apache License Version 2.0, January 2004. The appendix copyright line is Copyright OpenBMB. Both model cards say license apache-2.0, and the model API reported gated false. That license text is not a CloudGPU price.
Sources (read 2026-11-14, Asia/Shanghai)
- OpenBMB/MiniCPM-V README and
docs/minicpm_v4dot7_en.md(4.7 called latest, idsopenbmb/MiniCPM-V-4.7-35B-A3Bandopenbmb/MiniCPM-V-4.7-1B, transformers install, image and video calls,transformers serveport 8000, 3 GB phone sentence, sampling line,cu128--index-urlline): commit4dbbb6c58b6f8a004d6689028417296719f0831a, committed 2026-11-09T07:37:28Z.LICENSEappendix: Copyright OpenBMB. GitHub license fieldApache-2.0 - pip install, finding packages (
--index-urlreplaces the default index): https://pip.pypa.io/en/stable/cli/pip_install/#finding-packages, read 2026-11-14 - CUDA 12.8 wheel index listing (
torchvision/,torchcodec/, notransformerslink): https://download.pytorch.org/whl/cu128/, read 2026-11-14 docs/deployment_en.md(vLLM, SGLang, llama.cpp, Ollama, FlagOS): same commit- Cookbook
deployment/vllm/minicpm-v4_7_vllm.md(~70 GB bf16, 1B sentence with no GB figure, serve flags, PR 58674, 256K): OpenSQZ/MiniCPM-V-CookBook commit73b3ef502209d058cc65f785d96eed23db6c8d74, committed 2026-10-26T10:35:18Z - Cookbook
deployment/ollama/minicpm-v4_7_ollama.md(PR 29416 caveat,ollama run openbmb/minicpm-v4.7,http://localhost:11434/api/generate): same commit - Cookbook
deployment/llama.cpp/minicpm-v4_7_llamacpp.md(cmake -DGGML_CUDA=ON,mix_q3gud_im14.4 GiB,llama-server --port 8080): same commit - Cookbook
deployment/sglang/minicpm-v4_7_sglang.md(not in upstream SGLang, forktc-mb/sglangbranchSupport-MiniCPM-V4.7, port 30000,--tp-size 2): same commit - Cookbook
inference/minicpm-v4_7_ocr.md(same two ids, prompt asks for the text in the picture, no GPU GB figure): same commit - Hugging Face model API
openbmb/MiniCPM-V-4.7-35B-A3B:gatedfalse,cardData.licenseapache-2.0,pipeline_tagimage-text-to-text,lastModified2026-11-03T06:16:58.000Z,sha98e79ba972b586ac6146d3505771ce1467e199ba - Hugging Face model API
openbmb/MiniCPM-V-4.7-1B:gatedfalse,cardData.licenseapache-2.0,pipeline_tagimage-text-to-text,lastModified2026-10-30T08:56:31.000Z,shaad9bf379feb71204c888b22923d63322452407f9 - Public GPU memory: https://cloudgpu.app/gpu-prices.json (
updated_at2026-11-14T02:04:03.491Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at2026-11-14T02:04:03.382Z).GET /v1/public/compute-capabilitiesreturned feature flags and no GPU list. The catalog templateminicpm-4-8bis not treated as MiniCPM-V 4.7
Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.
Last updated: 2026-11-14 (Asia/Shanghai).