daimon / model /reference /minicpm5-deploy-llama-cpp.SKILL.md
davidquicast's picture
chore: initial commit
f0347b4
|
Raw
History Blame Contribute Delete
3.41 kB
---
name: minicpm5-deploy-llama-cpp
description: Run MiniCPM5-1B with llama.cpp using the released GGUF artifacts (F16 / Q8_0 / Q4_K_M). Use when the user wants CPU-only / consumer-GPU / cross-platform native deployment, asks for "llama.cpp", "llama-cli", "llama-server", "GGUF", or has no Python available.
---
# Deploy MiniCPM5-1B with llama.cpp
CPU / edge / consumer-GPU deployment via the released GGUF artifacts. The artifacts work directly with vanilla `llama.cpp` and every downstream runtime (Ollama / LM Studio / `llama-cpp-python`).
## Required input
| Var | Example | Default |
| --- | --- | --- |
| `GGUF_REPO` | `openbmb/MiniCPM5-1B-GGUF` | required |
| `QUANT` | `Q4_K_M` (657 MB, recommended) / `Q8_0` (1.1 GB) / `F16` (2.1 GB) | `Q4_K_M` |
| `NGL` | `99` (all layers on GPU) / `0` (CPU only) | `99` if NVIDIA GPU, else `0` |
| `CTX` | `8192` (default) up to `131072` (128 K) | `8192` |
## Steps
### 1. Install llama.cpp
```bash
# macOS
brew install llama.cpp
# Linux / cross-platform: pre-built binary
curl -fsSL https://github.com/ggerganov/llama.cpp/releases/latest/download/llama-cli-linux.tar.gz | tar -xz
# OR build from source:
git clone --depth=1 https://github.com/ggerganov/llama.cpp.git && cd llama.cpp
mkdir build && cd build
cmake .. -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release # CPU-only: omit GGML_CUDA=ON
cmake --build . --config Release -j $(nproc) --target llama-cli llama-server
```
### 2. Download the GGUF
```bash
mkdir -p ~/minicpm5 && cd ~/minicpm5
huggingface-cli download ${GGUF_REPO} MiniCPM5-1B-${QUANT}.gguf --local-dir .
```
### 3a. Interactive chat (CLI)
```bash
llama-cli -m MiniCPM5-1B-${QUANT}.gguf \
-n 2048 --temp 0.7 --top-p 0.95 -ngl ${NGL} -c ${CTX}
```
### 3b. OpenAI-compatible HTTP server
```bash
llama-server -m MiniCPM5-1B-${QUANT}.gguf \
--port 8080 -ngl ${NGL} -c ${CTX} --jinja
```
### 4. Validate
```bash
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "MiniCPM5-1B",
"messages": [{"role":"user","content":"1+1=?"}],
"temperature": 0.7, "top_p": 0.95, "max_tokens": 64
}'
```
Expected: `"2"` in the reply.
## Sampling defaults
| Mode | `--temp` | `--top-p` |
| --- | --- | --- |
| Think | 0.9 | 0.95 |
| No-think | 0.7 | 0.95 |
## Choosing a quant
| Quant | Disk | RAM | Quality |
| --- | --- | --- | --- |
| F16 | 2.1 GB | ~3 GB | reference |
| Q8_0 | 1.1 GB | ~2 GB | ~indistinguishable from F16 |
| **Q4_K_M** | **657 MB** | **~1.3 GB** | small drop, ideal for laptops |
## Common pitfalls
- **Slow on CPU + large context**: drop `-c 131072` to `-c 8192` if you don't need 128 K.
## Building your own GGUF (advanced)
If you've trained your own MiniCPM5-1B variant, build a GGUF with:
```bash
python convert_hf_to_gguf.py /path/to/your-fp16-hf --outfile out/F16.gguf --outtype f16
llama-quantize out/F16.gguf out/Q4_K_M.gguf Q4_K_M
```
## When NOT to use
- NVIDIA GPU + want OpenAI-compatible serving -> `minicpm5-deploy-vllm`
- Apple Silicon native -> `minicpm5-deploy-mlx` is faster
- Just want one-line desktop run -> `minicpm5-deploy-ollama`
- Want a desktop GUI -> `minicpm5-deploy-lmstudio`
## Reference
[`docs/deployment/llama_cpp.md`](../../docs/deployment/llama_cpp.md)
---
_Source: https://github.com/OpenBMB/MiniCPM/blob/main/skills/minicpm5-deploy-llama-cpp/SKILL.md (fetched 2026-06-15 for reference)._