Spaces:
Running
Running
| 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)._ | |