Instructions to use Ttimms/MiniCPM5-2B-FP8 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Ttimms/MiniCPM5-2B-FP8 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Ttimms/MiniCPM5-2B-FP8") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Ttimms/MiniCPM5-2B-FP8") model = AutoModelForCausalLM.from_pretrained("Ttimms/MiniCPM5-2B-FP8", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Ttimms/MiniCPM5-2B-FP8 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Ttimms/MiniCPM5-2B-FP8" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Ttimms/MiniCPM5-2B-FP8", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Ttimms/MiniCPM5-2B-FP8
- SGLang
How to use Ttimms/MiniCPM5-2B-FP8 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Ttimms/MiniCPM5-2B-FP8" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Ttimms/MiniCPM5-2B-FP8", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Ttimms/MiniCPM5-2B-FP8" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Ttimms/MiniCPM5-2B-FP8", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Ttimms/MiniCPM5-2B-FP8 with Docker Model Runner:
docker model run hf.co/Ttimms/MiniCPM5-2B-FP8
Download README.md from Ttimms/MiniCPM5-2B-FP8: direct link, hf CLI and curl.
- Browser
- Download file 3.46 kB
-
https://huggingface.co/Ttimms/MiniCPM5-2B-FP8/resolve/main/README.md
- Command line
-
hf download hf://Ttimms/MiniCPM5-2B-FP8/README.md
-
curl -L -o README.md https://huggingface.co/Ttimms/MiniCPM5-2B-FP8/resolve/main/README.md
license: apache-2.0
base_model:
- openbmb/MiniCPM5-2B
base_model_relation: quantized
pipeline_tag: text-generation
library_name: transformers
tags:
- minicpm
- minicpm5
- llama
- fp8
- compressed-tensors
- quantization
- vllm
- blackwell
- code
- on-device
language:
- en
- zh
quantized_by: Ttimms
MiniCPM5-2B β FP8 (compressed-tensors)
FP8-dynamic quantization of openbmb/MiniCPM5-2B,
weights and activations in float8_e4m3 (per-channel weights, per-token dynamic
activations), lm_head and embeddings kept in bf16. Produced with
llm-compressor 0.13.
- 2.84 GiB on disk (bf16 base is 4.68 GiB β 39 % smaller)
- Serves on vLLM (
compressed-tensors), native FP8 tensor-core path on Ada / Blackwell - Near-lossless on coding benchmarks β see the eval below
This is the recommended quant for MiniCPM5-2B when you want maximum quality retention. If you need to fit closer to 2 GB, see the NVFP4 W4A16 build (smaller, ~2.4 pp HumanEval / ~4.8 pp MBPP cost).
Evaluation
lm-evaluation-harness, vLLM 0.26 backend, greedy decoding, median of 3 draws
with the range (the harness is non-deterministic run-to-run even at greedy β a
single draw is not a reproducible score). All arms measured in one session against
the released checkpoint. HumanEval-instruct pass@1/create_test (n = 164);
MBPP base 3-shot (n = 500).
| build | HumanEval-inst | MBPP (3-shot) | size | Ξ HE / MBPP |
|---|---|---|---|---|
| bf16 base | 86.59 % (85.98β86.59) | 50.60 % (50.40β51.00) | 4.68 GiB | β |
| FP8-dynamic (this) | 84.76 % (84.15β85.37) | 48.80 % (48.80β49.00) | 2.84 GiB | β1.8 / β1.8 pp |
| NVFP4-W4A16 GPTQ | 84.15 % (81.71β84.15) | 45.80 % (45.60β46.40) | 2.03 GiB | β2.4 / β4.8 pp |
| NVFP4-W4A16 RTN | 79.88 % (77.44β79.88) | 41.20 % (41.20β41.80) | 2.03 GiB | β6.7 / β9.4 pp |
| mixed (MLP-NVFP4 + attn-FP8) | 84.15 % (82.93β85.98) | 46.60 % (46.00β46.80) | 2.20 GiB | β2.4 / β4.0 pp |
Both FP8 deltas sit inside the eval's own run-to-run spread β FP8 is effectively lossless here. NVFP4 costs real accuracy on a 2.5 B dense model (little redundancy to absorb 4-bit weights); pick it only if the extra ~0.8 GiB matters for your KV budget.
Full comparison, serving notes, and a fine-tune experiment that regressed the base's coding (so these quants target the released checkpoint): https://github.com/t-timms/minicpm5-2b-quants
Usage
vllm serve Ttimms/MiniCPM5-2B-FP8 --max-model-len 32768 --kv-cache-dtype fp8
from vllm import LLM, SamplingParams
llm = LLM("Ttimms/MiniCPM5-2B-FP8", trust_remote_code=True)
print(llm.chat([{"role": "user", "content": "Write a Python LRU cache."}],
SamplingParams(temperature=0.6, max_tokens=512))[0].outputs[0].text)
On WSL, set VLLM_USE_V2_MODEL_RUNNER=0 (the V2 runner needs UVA, which WSL
disables).
Method & provenance
- Quantizer:
llm-compressor0.13,QuantizationModifier(scheme="FP8_DYNAMIC"), ignorelm_head+embed_tokens. No calibration data required (dynamic activations). - Base:
openbmb/MiniCPM5-2B(LlamaForCausalLM, 2.5 B, Apache-2.0). - Built and evaluated on an RTX 5070 Ti (Blackwell, SM120), vLLM 0.26.
License
Apache-2.0, inherited from openbmb/MiniCPM5-2B.