Instructions to use gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL # Run inference directly in the terminal: llama cli -hf gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL # Run inference directly in the terminal: llama cli -hf gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL # Run inference directly in the terminal: ./llama-cli -hf gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL # Run inference directly in the terminal: ./build/bin/llama-cli -hf gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
Use Docker
docker model run hf.co/gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
- LM Studio
- Jan
- vLLM
How to use gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
- Ollama
How to use gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE with Ollama:
ollama run hf.co/gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
- Unsloth Desktop
- Pi
How to use gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE with Docker Model Runner:
docker model run hf.co/gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
- Lemonade
How to use gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
Run and chat with the model
lemonade run user.MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE-UD-Q4_K_XL
List all available models
lemonade list
- Hermes Agent
How to use gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE:UD-Q4_K_XL" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
MiniCPM-V-4.7-35B-A3B Uncensored — Sangreal ICE
Five ICE 2.0 tiers of openbmb's MiniCPM-V 4.7 35B-A3B (35B total, 3B active, Qwen3.5-MoE text tower + SigLIP2 vision), uncensored trunk (openbmb's BF16 + Atomic Chat's refusal-direction LoRA, merged), quantized against Sangreal — a purpose-built 77-bucket calibration corpus — and shipping Qwen-Sharp v22.5.0-arrow4.0-minicpm — our agent-tuned chat template, a heavily modified derivative of Qwen-Sharp, fitted to MiniCPM-V's multimodal content format (spec below). Vision works through openbmb's own projector, shipped here unmodified. Sangreal-UD — Unsloth Dynamic 2.0 replays (with Sangreal10K and default chat-template) — on the same trunk are shipped as well.
⚠️ Uncensored. Refusal behaviour has been suppressed in the weights. Sandbox it at the OS level and control its network and code-execution access; with no refusal backstop, a prompt injection from a hostile page or third-party code has nothing to stop it.
ICE 2.0
All five tiers ship as ICEv2: 12G-ICEv2, 15G-ICEv2, 19G-ICEv2, 23G-ICEv2 and 25G-ICEv2.
Every tier is an ICE quantization of this trunk — Sangreal importance matrix, ICE recipe — finished by a Sangreal-calibrated post-quantization repair of the routed experts, fitted against this trunk's own BF16. Same GGUF types, stock llama.cpp.
The trunk
BF16/ (69.4 GB) = openbmb's official BF16 + Atomic Chat's
rank-1 refusal-direction LoRA, merged at scale 1.0 (f32, one BF16 rounding).
- Edit: 120 residual writers (attention / linear-attention outputs, every routed and shared expert's down
projection). Router, norms, embedding and
lm_headuntouched. - Verified: quantized to Q8_0, all 312 Q8_0 tensors are byte-identical to Atomic Chat's own baked build.
- Cost: 0.0090 mean KLD to the original BF16; MMLU 84.25 → 84.50 (Atomic Chat's measurements).
- Imatrix: Sangreal 10K, measured on a Qwen3.6-35B-A3B sibling. On the same 400 chunks it differs from MiniCPM's own by about as much as two corpus slices differ (routing TVD 0.108 vs 0.092).
At a glance — against Sangreal-UD at the same size
Mean KLD to BF16, one session. Size-matched = the Unsloth Dynamic 2.0 recipes (UD-Q2_K_XL, UD-IQ3_XXS, UD-IQ4_XS, UD-Q4_K_XL, UD-Q5_K_XL) replayed tensor-for-tensor on this same trunk with the same importance matrix, interpolated (log-linear) at each ICE file's exact byte size; negative = ICE closer to BF16. The recipe is the only difference. Paired = the same 64 chunks scored for both files against the same reference.
| tier | size | code @2K | code @16K | wiki @2K | paired, code @2K (t, chunks ICE better) |
|---|---|---|---|---|---|
| 12G-ICEv2 | 11.90 GB | +17.5% † | +19.3% † | +30.7% † | vs Q2_K_XL (12.29 GB): +17.5% (t +5.4, 7/64) |
| 15G-ICEv2 | 14.51 GB | +2.5% | +1.1% | +6.7% | vs IQ3_XXS (13.21 GB): -25.8% (t -10.4, 63/64); vs IQ4_XS (17.73 GB): +127.8% (t +7.8, 0/64) |
| 19G-ICEv2 | 18.47 GB | -14.7% | -15.9% | -5.4% | vs IQ4_XS (17.73 GB): -26.9% (t -10.6, 64/64); vs Q4_K_XL (22.36 GB): +92.6% (t +7.5, 1/64) |
| 23G-ICEv2 | 22.52 GB | -3.5% | -4.3% | +4.1% | vs Q4_K_XL (22.36 GB): -6.1% (t -3.4, 43/64); vs Q5_K_XL (26.59 GB): +88.6% (t +7.6, 1/64) |
| 25G-ICEv2 | 24.53 GB | -13.2% | -11.0% | -4.3% | vs Q4_K_XL (22.36 GB): -39.3% (t -7.8, 63/64); vs Q5_K_XL (26.59 GB): +21.8% (t +4.9, 6/64) |
Why a direct comparison is hard here. Unsloth Dynamic 2.0's ladder and the ICE tiers sit at different sizes (gap = UD file − ICE file):
| ICE tier | size | nearest Sangreal-UD | gap | comparison |
|---|---|---|---|---|
| 12G-ICEv2 | 11.90 GB | UD-Q2_K_XL 12.29 GB | +0.39 GB | direct; UD has nothing smaller |
| 15G-ICEv2 | 14.51 GB | UD-IQ3_XXS 13.21 / UD-IQ4_XS 17.73 GB | −1.30 / +3.22 GB | interpolated across 4.5 GB (UD-Q3_K_XL, ~16.8 GB, not replayed) |
| 19G-ICEv2 | 18.47 GB | UD-IQ4_XS 17.73 GB | −0.74 GB | direct: ICE −26.9%, 64/64 chunks |
| 23G-ICEv2 | 22.52 GB | UD-Q4_K_XL 22.36 GB | −0.16 GB | direct: ICE −6.1%, 43/64 chunks |
| 25G-ICEv2 | 24.53 GB | UD-Q4_K_XL 22.36 / UD-Q5_K_XL 26.59 GB | −2.17 / +2.06 GB | interpolated across 4.2 GB (UD-Q4_K_S, ~20.9 GB, not replayed) |
Where a UD tier sits within 0.8 GB below an ICE tier (19G, 23G), ICE wins the paired comparison on the same chunks (code @2K). 12G is 0.39 GB smaller than the only nearby UD file and loses to it; the 15G and 25G rows are interpolations, not head-to-heads.
† 12G-ICEv2 is outside Unsloth Dynamic 2.0's ladder, so instead of a size-matched point it is compared directly against Q2_K_XL (12.29 GB, 0.39 GB larger).
† 19G-ICEv2, 23G-ICEv2 and 25G-ICEv2 are clear winners in their respective category.
Code at 16K context (code.test.raw, n_ctx 16384 × 8), mean KLD to BF16 vs file size; lower-left is better.
All points from one session (one base, one binary); raw numbers in
measurements/2026-10-14/ and Table 2.
Measurements
One binary (llama.cpp 3653e6d), one reference (this trunk's own BF16, in this repo), one session
(2026-10-14, 8× RTX 4090). 64 chunks at n_ctx 2048; the long-context table uses 8 chunks at n_ctx 16384.
Every file below was measured in this session. Raw logs: measurements/2026-10-14/.
Table 1 — Code (code.test.raw)
PPL(base) 2.227770 · BF16 = 100
| file | size | mean KLD | 99% KLD | 99.9% KLD | PPL ratio | same top-1 | active bpw | file bpw | overall |
|---|---|---|---|---|---|---|---|---|---|
| ≈ 26.6 GB | |||||||||
| Sangreal-UD-Q5_K_XL | 26.59 GB | 0.004029 | 0.0618 | 0.3285 | 1.0022 | 98.51 % | 7.833 | 6.138 | 99.3 |
| ≈ 24.5 GB | |||||||||
| Sangreal 25G-ICEv2 | 24.53 GB | 0.004910 | 0.0755 | 0.3833 | 1.0015 | 98.37 % | 7.386 | 5.662 | 99.2 |
| ≈ 22–23 GB | |||||||||
| Sangreal 23G-ICEv2 | 22.52 GB | 0.007601 | 0.1217 | 0.6022 | 1.0026 | 98.01 % | 7.215 | 5.197 | 98.9 |
| Sangreal-UD-Q4_K_XL | 22.36 GB | 0.008086 | 0.1318 | 0.6784 | 1.0032 | 97.98 % | 7.473 | 5.161 | 98.8 |
| ≈ 18 GB | |||||||||
| Sangreal 19G-ICEv2 | 18.47 GB | 0.015575 | 0.2640 | 1.2559 | 1.0092 | 97.25 % | 6.872 | 4.263 | 98.1 |
| Sangreal-UD-IQ4_XS | 17.73 GB | 0.021321 | 0.3603 | 1.4235 | 1.0101 | 96.66 % | 6.757 | 4.092 | 97.5 |
| ≈ 14.5 GB | |||||||||
| Sangreal 15G-ICEv2 | 14.51 GB | 0.048564 | 0.8802 | 3.5920 | 1.0335 | 95.09 % | 6.531 | 3.350 | 95.3 |
| ≈ 12–13 GB | |||||||||
| Sangreal 12G-ICEv2 | 11.90 GB | 0.101390 | 1.8525 | 6.0519 | 1.0780 | 92.91 % | 6.313 | 2.746 | 91.4 |
| Sangreal-UD-IQ3_XXS | 13.21 GB | 0.065436 | 1.2006 | 4.1866 | 1.0398 | 94.22 % | 5.474 | 3.049 | 94.0 |
| Sangreal-UD-Q2_K_XL | 12.29 GB | 0.086275 | 1.5367 | 4.9039 | 1.0578 | 93.15 % | 4.700 | 2.837 | 92.4 |
Table 2 — Code at long context (code.test.raw, n_ctx 16384 × 8)
PPL(base) 1.960705 · BF16 = 100
Compare rows within this table only.
| file | size | mean KLD | 99% KLD | 99.9% KLD | PPL ratio | same top-1 | active bpw | file bpw | overall |
|---|---|---|---|---|---|---|---|---|---|
| ≈ 26.6 GB | |||||||||
| Sangreal-UD-Q5_K_XL | 26.59 GB | 0.003083 | 0.0509 | 0.2609 | 1.0011 | 98.80 % | 7.833 | 6.138 | 99.4 |
| ≈ 24.5 GB | |||||||||
| Sangreal 25G-ICEv2 | 24.53 GB | 0.003963 | 0.0614 | 0.3832 | 1.0012 | 98.63 % | 7.386 | 5.662 | 99.3 |
| ≈ 22–23 GB | |||||||||
| Sangreal 23G-ICEv2 | 22.52 GB | 0.006098 | 0.0965 | 0.5830 | 1.0024 | 98.29 % | 7.215 | 5.197 | 99.1 |
| Sangreal-UD-Q4_K_XL | 22.36 GB | 0.006554 | 0.1135 | 0.6148 | 1.0028 | 98.29 % | 7.473 | 5.161 | 99.0 |
| ≈ 18 GB | |||||||||
| Sangreal 19G-ICEv2 | 18.47 GB | 0.012302 | 0.2121 | 1.1660 | 1.0071 | 97.60 % | 6.872 | 4.263 | 98.4 |
| Sangreal-UD-IQ4_XS | 17.73 GB | 0.017039 | 0.2897 | 1.4315 | 1.0076 | 97.18 % | 6.757 | 4.092 | 98.0 |
| ≈ 14.5 GB | |||||||||
| Sangreal 15G-ICEv2 | 14.51 GB | 0.038140 | 0.6793 | 3.5125 | 1.0288 | 95.87 % | 6.531 | 3.350 | 96.2 |
| ≈ 12–13 GB | |||||||||
| Sangreal 12G-ICEv2 | 11.90 GB | 0.081199 | 1.5631 | 5.7263 | 1.0658 | 93.93 % | 6.313 | 2.746 | 92.9 |
| Sangreal-UD-IQ3_XXS | 13.21 GB | 0.052030 | 0.9736 | 3.9749 | 1.0343 | 95.17 % | 5.474 | 3.049 | 95.1 |
| Sangreal-UD-Q2_K_XL | 12.29 GB | 0.068050 | 1.2428 | 4.6511 | 1.0470 | 94.28 % | 4.700 | 2.837 | 93.8 |
Table 3 — English text (WikiText-2)
PPL(base) 5.981634 · BF16 = 100
| file | size | mean KLD | 99% KLD | 99.9% KLD | PPL ratio | same top-1 | active bpw | file bpw | overall |
|---|---|---|---|---|---|---|---|---|---|
| ≈ 26.6 GB | |||||||||
| Sangreal-UD-Q5_K_XL | 26.59 GB | 0.006247 | 0.0751 | 0.2920 | 1.0000 | 97.03 % | 7.833 | 6.138 | 98.7 |
| ≈ 24.5 GB | |||||||||
| Sangreal 25G-ICEv2 | 24.53 GB | 0.008174 | 0.1004 | 0.4065 | 1.0019 | 96.44 % | 7.386 | 5.662 | 98.4 |
| ≈ 22–23 GB | |||||||||
| Sangreal 23G-ICEv2 | 22.52 GB | 0.012065 | 0.1546 | 0.5345 | 1.0025 | 95.75 % | 7.215 | 5.197 | 97.9 |
| Sangreal-UD-Q4_K_XL | 22.36 GB | 0.011869 | 0.1450 | 0.6107 | 1.0046 | 95.84 % | 7.473 | 5.161 | 97.9 |
| ≈ 18 GB | |||||||||
| Sangreal 19G-ICEv2 | 18.47 GB | 0.025328 | 0.3329 | 1.1310 | 1.0116 | 94.00 % | 6.872 | 4.263 | 96.5 |
| Sangreal-UD-IQ4_XS | 17.73 GB | 0.031283 | 0.3938 | 1.4568 | 1.0074 | 93.23 % | 6.757 | 4.092 | 95.8 |
| ≈ 14.5 GB | |||||||||
| Sangreal 15G-ICEv2 | 14.51 GB | 0.071686 | 0.9510 | 3.1756 | 1.0397 | 90.15 % | 6.531 | 3.350 | 92.4 |
| ≈ 12–13 GB | |||||||||
| Sangreal 12G-ICEv2 | 11.90 GB | 0.157371 | 2.1219 | 5.4703 | 1.1064 | 85.68 % | 6.313 | 2.746 | 86.2 |
| Sangreal-UD-IQ3_XXS | 13.21 GB | 0.091588 | 1.1988 | 3.6791 | 1.0434 | 88.73 % | 5.474 | 3.049 | 90.7 |
| Sangreal-UD-Q2_K_XL | 12.29 GB | 0.120373 | 1.5442 | 4.7073 | 1.0644 | 86.71 % | 4.700 | 2.837 | 88.5 |
overall = 0.70/(1 + meanKLD) + 0.30 * sameTop1, ×100. BF16 = 100. The same composite as the
Ornith-1.5 ICE card: 70% on how close the whole output distribution stays, 30% on agreement about the argmax.
Read the tail columns as shape, not order.
99.9% KLDis roughly the 33rd-worst token of 32,768 — an extreme order statistic with large sampling variance, so it inverts between adjacent files without meaning anything. Rank onmean KLD.Two bpw columns. Only 8 of 256 experts fire per token, so a bit in
ffn_*_expsis worth ~3% of a bit in attention, the shared expert or the output head.active bpwweights by that (token embedding excluded: it is a lookup, not a matmul);file bpwis just size ÷ parameters.
Don't compare the tables to each other. Code is more predictable text, so every file scores about half the divergence on it. Compare rows within a table.
Every row is measured against this trunk's own BF16, published in this repo. The Unsloth Dynamic 2.0 rows are their recipes applied to the same weights with the same importance matrix, so a difference here is the recipe and nothing else.
What Sangreal is
The calibration corpus these tiers were quantized against. Built from primary
sources, not assembled from eaddario's set, bartowski's calibration_datav5, or any
other ready-made calibration file. 77 buckets, 9,533 documents, 47,443,549 tokens,
sha256 85a6b823a6762bf6….
The full render is 92,663 chunks. These tiers use a 10,000-chunk pass over it (The trunk says which model it was measured on).
| block | buckets | share | documents | synthetic |
|---|---|---|---|---|
| code + cyber + spec | 36 | 45.10% | 5,858 | 0.1% |
| reasoning | 5 | 13.16% | 553 | 100.0% |
| agentic | 7 | 11.95% | 1,018 | 65.2% |
| science + domain | 11 | 11.24% | 1,183 | 0.3% |
| language | 11 | 9.66% | 596 | 0.0% |
| mathematics | 7 | 8.89% | 325 | 0.0% |
| total | 77 | 100% | 9,533 | 21.7% |
Split: technical 70.2 · science+domain 20.1 · language 9.7.
Synthetic is 21.7% by bytes and sits in exactly three buckets — teacher:k2-horizon,
teacher:deepseek-v4-pro, teacher:hermes. Everything outside reasoning and
agentic is real text.
Language — 11 languages, 5 non-Latin scripts
| bucket | share | docs | bucket | share | docs | |
|---|---|---|---|---|---|---|
arabic |
0.92% | 48 | russian |
0.87% | 58 | |
chinese |
0.89% | 31 | spanish |
0.87% | 72 | |
hindi |
0.88% | 44 | portuguese |
0.87% | 70 | |
japanese |
0.88% | 33 | turkish |
0.87% | 56 | |
french |
0.88% | 60 | german |
0.86% | 73 | |
english |
0.87% | 51 |
The spread across the whole block is 0.06 points, and that is deliberate:
language's job here is activation, not ranking. Each bucket sits just above the
saturation floor at 44.9% consumption, so these buckets select for the first time —
the legacy v1 spec had consumed 96% of turkish and 92% of english.
Mathematics — absent from the pool until this cycle
| bucket | share | docs |
|---|---|---|
math (general) |
3.16% | 170 |
analysis |
1.24% | 28 |
algebra |
1.16% | 46 |
geometry |
1.12% | 30 |
proof |
1.08% | 28 |
topology |
1.05% | 20 |
number-theory |
0.06% | 3 |
Sourced from the LaTeX algebraic geometry, mathlib4, UniMath, math-comp, open-web-math, AutoMathText and proof-pile.
The imatrix and the recipes are not published with this release.
What's inside
ICE = Isolation of Compounding Error: allocate bits by how far a quantization error travels, not
by how large the activations are. Routers stay F32, SSM decay gates stay F32, the KV-cached projections stay
F16, the always-on dense path stays Q8_0, and the budget goes to the routed expert bank — most of the
parameters, but only 8-of-256 active per token. ICE 1.6 keeps token_embd at Q8_0 (its error propagates
with context) and moves the output head to Q6_K (its error stays flat from 2K to 16K). Method and the
cases where it does not win: gbuzhf/ICE-quantization.
No MTP head. The config declares one MTP layer, but the checkpoint carries no MTP weights. These tiers
are the 40-block trunk; there is no built-in draft model. A straight conversion copies mtp_num_hidden_layers
into block_count (and a 41-entry recurrent_layers), producing a GGUF that advertises 41 blocks and looks for
a block that does not exist. Every file in this repo declares 40, verified on each one.
Chat template: Qwen-Sharp v22.5.0-arrow4.0-minicpm (ours; spec below). MiniCPM-V 4.7 keeps the Qwen3.5/3.6 chat tokens, so the template's delimiters are native tokens — checked on every tier at signing.
Vision. The edit touches only the language model's residual writers, so the projector is openbmb's own,
shipped byte-for-byte: mmproj-MiniCPM-V-4.7-35B-A3B-F16.gguf (default) and mmproj-MiniCPM-V-4.7-35B-A3B-F16-4x.gguf
(4× visual-token compression). Load with --mmproj <file>; MiniCPM-V 4.7 needs llama.cpp 69f201a or later.
Chat template — Qwen-Sharp v22.5.0-arrow4.0-minicpm
Every ICE GGUF embeds arrow4.0-minicpm (the two UD files keep openbmb's own template); to pin it explicitly, pass the file shipped here:
llama-server -m <model>.gguf --jinja --chat-template-file chat_template_sharp-v22.5.0-arrow4.0-minicpm.jinja
arrow4.0 is our agent layer on Qwen-Sharp v22.5.0. Plain chat stays byte-identical to Sharp; with tools it adds short agent rules, one note per tool result, a STATUS line, thinking only at decision points, .arrow project memory and a hand-back report when work stalls. The -minicpm file renders images, videos and multi-part content exactly as openbmb's own template does (a bare <|image_pad|>, parts joined by a newline); text, tools and thinking are arrow4.0's.
Full description and switches: gbuzhf/Qwen-Sharp-Arrow-Chat-Templates.
Files
| file | size | sha256 |
|---|---|---|
MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-12G-ICEv2.gguf |
11.90 GB | e7c4c1799571… |
MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-15G-ICEv2.gguf |
14.51 GB | 0f276dc0f05f… |
MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-19G-ICEv2.gguf |
18.47 GB | e3bceae66ee1… |
MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-23G-ICEv2.gguf |
22.52 GB | c2afa57d9ff4… |
MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-25G-ICEv2.gguf |
24.53 GB | ba1f4af5af73… |
UD2/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-UD-Q2_K_XL.gguf |
12.29 GB | d47aab169327… |
UD2/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-UD-IQ4_XS.gguf |
17.73 GB | e60d066b39e1… |
mmproj-MiniCPM-V-4.7-35B-A3B-Q8_0.gguf |
0.73 GB | 7c837b42a485… |
mmproj-MiniCPM-V-4.7-35B-A3B-F16.gguf |
1.12 GB | bff3b688e14c… |
mmproj-MiniCPM-V-4.7-35B-A3B-F16-4x.gguf |
0.91 GB | 30f4daac0f61… |
MiniCPM-V-4.7-35B-A3B-Uncensored-Q8_0.gguf |
36.90 GB | e1e2b777cced… |
BF16/MiniCPM-V-4.7-35B-A3B-Uncensored-BF16-00001-of-00002.gguf |
44.87 GB | b82fc991c265… |
BF16/MiniCPM-V-4.7-35B-A3B-Uncensored-BF16-00002-of-00002.gguf |
24.51 GB | 86525e24f1f9… |
measurements/2026-10-14/— rawllama-perplexityoutput for every row of every table (ICEv2 and the Unsloth Dynamic 2.0 ladder, × 3 columns) and the three BF16 base runs.
Credits
| base model | openbmb/MiniCPM-V-4.7-35B-A3B |
| refusal-direction LoRA | AtomicChat/MiniCPM-V-4.7-35B-A3B-Uncensored-GGUF |
| vision projector | openbmb/MiniCPM-V-4.7-35B-A3B-gguf |
| comparison recipes | Unsloth Dynamic 2.0 |
| chat template | peculiar-ragdoll/Qwen-Sharp-Chat-Templates |
| ICE method | gbuzhf/ICE-quantization |
KLD measures fidelity to this repo's reference and nothing else — not reasoning, tool use or speed. It is also within-model: every file here is measured against this trunk's own BF16, so these values are not comparable to another repo's. Compare across models with PPL.
- Downloads last month
- -
Model tree for gbuzhf/MiniCPM-V-4.7-35B-A3B-Uncensored-Sangreal-ICE
Base model
openbmb/MiniCPM-V-4.7-35B-A3B