ewinregirgojr's picture
Add model-index eval YAML, arch spec, thinking docs, limitations, citation, ModelScope; remove column meanings note
b8ed16e verified
|
Raw
History Blame
12.9 kB
metadata
license: apache-2.0
base_model: openbmb/MiniCPM5-1B
tags:
  - gguf
  - llama.cpp
  - llama-cpp
  - ollama
  - lm-studio
  - minicpm
  - minicpm5
  - minicpm5-1b
  - tool-calling
  - function-calling
  - tool-use
  - agentic
  - agentic-ai
  - ai-agent
  - xml-tool-calling
  - json-function-calling
  - quantized
  - quantization
  - q4_k_m
  - q8_0
  - f16
  - gguf-my-repo
  - small-language-model
  - slm
  - edge-ai
  - on-device
  - local-llm
  - offline-ai
  - privacy
  - openbmb
language:
  - en
pipeline_tag: text-generation
datasets:
  - Team-ACE/ToolACE
model-index:
  - name: MiniCPM5-1B-Agentic-Tooluse-v3
    results:
      - task:
          type: text-generation
          name: Tool calling
        dataset:
          name: >-
            External ToolACE-derived first-call evaluation (held-out 300
            examples)
          type: Team-ACE/ToolACE
        metrics:
          - type: parseable_rate
            value: 1
            name: Parseable tool-call rate
          - type: valid_name_rate
            value: 0.9867
            name: Valid available-tool name rate
          - type: expected_name_rate
            value: 0.9533
            name: Expected tool-name rate
          - type: args_exact_rate
            value: 0.7467
            name: Exact-arguments rate
          - type: arg_key_overlap
            value: 0.9388
            name: Argument-key overlap
          - type: no_schema_copy_rate
            value: 0.9967
            name: No-schema-copy rate
          - type: no_repetition_rate
            value: 0.34
            name: No-repetition rate
          - type: stopped_cleanly_rate
            value: 0
            name: Stopped-cleanly rate

MiniCPM5-1B-Agentic-Tooluse-v3-GGUF β€” Local Function-Calling LLM (llama.cpp / Ollama / LM Studio)

MiniCPM5-1B-Agentic-Tooluse-v3 is a 1-billion-parameter open-weight function-calling model you can run entirely offline on a CPU β€” no GPU, no cloud API, no data leaving your machine. It is quantized to GGUF format and works out of the box with llama.cpp, Ollama, LM Studio, koboldcpp, and text-generation-webui.

If you are looking for a local LLM for tool calling, a small function-calling model for Raspberry Pi or a laptop, a private offline AI agent backbone, or a free alternative to GPT-4o / Claude function calling that runs on your own hardware, this is it.

74.67% exact-argument accuracy on a held-out 300-example benchmark β€” trained with QLoRA supervised fine-tuning followed by GRPO reinforcement learning, rewarding exact function-name and argument-value correctness. No GPU required at Q4_K_M.

Why this model

MiniCPM5-1B-Agentic-Tooluse-v3 is fine-tuned specifically to parse a tool schema and a natural-language user request, then emit a structured, correctly-named, correctly-valued function call β€” the exact skill that powers LangChain agents, LlamaIndex pipelines, AutoGen, CrewAI, MCP tool servers, ReAct loops, and home-automation assistants.

Unlike most small open tool-calling models that stop at supervised fine-tuning, this model goes further with GRPO reinforcement learning on top of the SFT checkpoint, specifically rewarding the two hardest parts of tool calling: choosing the right function name and getting every argument value exactly right.

Compared to GPT-4o / Claude for function calling: this model is 100% free, runs locally, keeps all data private, has zero per-call cost, and is fine-tunable β€” it trades some absolute accuracy for massive gains in cost, latency, and privacy.

Why this model

MiniCPM5-1B-Agentic-Tooluse-v3 is a compact 1B-parameter model fine-tuned specifically for agentic tool/function calling: it parses a tool schema plus a user request and reliably emits a structured, correctly-named, correctly-valued function call β€” the core capability behind LangChain agents, MCP servers, ReAct loops, home-automation assistants, and any app that needs an LLM to reliably drive external APIs and tools.

Unlike most small open tool-calling models, this one went through a two-stage pipeline: QLoRA supervised fine-tuning followed by GRPO reinforcement learning, specifically rewarding exact function-name and exact argument-value correctness.

Results

Evaluated on a held-out 300-example test slice drawn from a seeded shuffle of ToolACE (see Split integrity). The base-model column is the same model with the same prompt and no adapter.

The published weights are SFT + GRPO (see GRPO / RLVR). The SFT column is kept because every negative result below is measured against it.

metric v2 (previous release) SFT retrain (pre-GRPO) v3 = SFT + GRPO (published)
parseable β€” output is a well-formed call 0.9933 1.0000 1.0000
valid_name β€” name exists among the offered tools 0.9700 0.9867 0.9867
expected_name β€” name matches gold 0.9067 0.9567 0.9533
args_exact β€” every argument value matches gold 0.6133 0.7367 0.7467
arg_key_overlap β€” F1 over argument keys 0.8757 0.9422 0.9388
mean of 5 0.8718 0.9245 0.9251

GRPO buys +0.0100 on args_exact, the metric that matters here, and gives back 0.0034 (one test example each) on expected_name and arg_key_overlap. That trade is reported rather than hidden: the mean moves only +0.0006, so this is a targeted gain on the hardest metric, not a broad improvement.

Full 8-metric benchmark (held-out test set, n=300)

This table mirrors the evaluation format from v2 and shows Base, v2, and v3 side-by-side across all 8 metrics using a single consistent harness and held-out test slice:

Metric Base MiniCPM5-1B v2 (previous release) v3 (this model) Delta (v2 β†’ v3)
parseable_rate 0.0133 0.9933 1.0000 +0.0067
valid_name_rate 0.0133 0.9700 0.9867 +0.0167
expected_name_rate 0.0133 0.9267 0.9533 +0.0267
args_exact_rate 0.1500 0.6533 0.7467 +0.0934
arg_key_overlap 0.0033 0.7517 0.9388 +0.1871
no_schema_copy_rate 1.0000 1.0000 0.9967 -0.0033
no_repetition_rate 0.9967 1.0000 0.3400 -0.6600
stopped_cleanly_rate 0.0000 0.1500 0.0000 -0.1500

What the additional metrics mean:

  • no_schema_copy_rate β€” the model did not copy the tool schema's own field description verbatim into an argument value.
  • no_repetition_rate β€” the completion did not contain a duplicated function-call block or degenerate repeated-phrase loop. This model has a known weakness here: it often continues generating filler content after the tool call completes. Use a parser that extracts the first completed <function>...</function> block.
  • stopped_cleanly_rate β€” the model naturally stopped immediately after the completed </function> tag with no trailing tokens. Use a parser that treats the first completed <function>...</function> block as the action boundary β€” do not rely on natural end-of-generation.

Available quantizations

File Quant Size Best for
MiniCPM5-1B-Agentic-Tooluse-v3.F16.gguf F16 ~2.02 GB Maximum quality, GPU or high-RAM CPU inference
MiniCPM5-1B-Agentic-Tooluse-v3.Q8_0.gguf Q8_0 ~1.07 GB Near-lossless quality, recommended default for most users
MiniCPM5-1B-Agentic-Tooluse-v3.Q4_K_M.gguf Q4_K_M ~656 MB Smallest, fastest β€” best for edge devices, phones, and CPU-only/low-RAM machines

Quickstart

llama.cpp:


./llama-cli -m MiniCPM5-1B-Agentic-Tooluse-v3.Q8_0.gguf -p "Your prompt with tool schema here"

llama-server (OpenAI-compatible API, works with most agent frameworks):


./llama-server -m MiniCPM5-1B-Agentic-Tooluse-v3.Q4_K_M.gguf --port 8080

Ollama:


# Create a Modelfile:

#   FROM ./MiniCPM5-1B-Agentic-Tooluse-v3.Q8_0.gguf

ollama create minicpm5-tooluse-v3 -f Modelfile

ollama run minicpm5-tooluse-v3

LM Studio: just download one of the .gguf files above directly through the LM Studio search/download UI.

Ideal use cases

  • Fully local / offline / private AI agents (no data leaves your machine)

  • Home automation and smart-home voice assistants

  • Mobile, browser-extension, and embedded/IoT tool-calling agents

  • Cost-sensitive, high-volume backend services that can't afford large-model API costs per call

  • Drop-in function-calling backbone for LangChain, LlamaIndex, AutoGen, CrewAI, and MCP-based agent stacks

  • Hobbyist and researcher experimentation with small-model agentic reasoning

FAQ

Which quant should I use? Q8_0 for the best quality-to-size tradeoff on most machines; Q4_K_M if you need the smallest possible footprint or are running on a phone/Raspberry Pi-class device; F16 if you have plenty of RAM/VRAM and want maximum fidelity.

Do I need a GPU? No β€” that's the point of this model. All three quantizations run well on CPU; a GPU just makes it faster.

How was this trained? QLoRA supervised fine-tuning on tool-calling trajectories, followed by GRPO (Group Relative Policy Optimization) reinforcement-learning refinement targeting exact argument correctness.

Base model architecture

MiniCPM5-1B uses a standard LlamaForCausalLM architecture:

Property Value
Parameters (total) 1,080,632,832
Parameters (non-embedding) 679,552,512
Architecture LlamaForCausalLM
Layers 24
Attention heads (GQA) 16 Q / 2 KV
Context length 131,072 tokens
Training SFT β†’ RL (GRPO) fine-tune on openbmb/MiniCPM5-1B

Thinking mode

MiniCPM5-1B has a built-in <think>...</think> chat template. The same checkpoint can act as a fast assistant or a deliberate chain-of-thought reasoner β€” controlled by a single flag:

# Fast mode β€” recommended for tool calling (thinking OFF)
prompt = tokenizer.apply_chat_template(
    messages, tools=tools, add_generation_prompt=True,
    enable_thinking=False,
    tokenize=False,
)

# Reasoning mode (thinking ON β€” NOT recommended for tool calling)
prompt = tokenizer.apply_chat_template(
    messages, tools=tools, add_generation_prompt=True,
    enable_thinking=True,
    tokenize=False,
)

Important: always use enable_thinking=False for tool/function calling. With thinking ON the model spends its token budget inside <think>...</think> and may not reach a completed function call. All benchmark numbers in this card use thinking OFF.

Citation

If you use this model, please cite the base model paper:

@article{minicpm4,
  title   = {MiniCPM4: Ultra-Efficient LLMs on End Devices},
  author  = {MiniCPM Team},
  journal = {arXiv preprint arXiv:2506.07900},
  year    = {2025}
}

And the ToolACE dataset used for fine-tuning:

@article{toolace,
  title   = {ToolACE: Winning the Points of LLM Function Calling},
  author  = {Liu, Ying and others},
  journal = {arXiv preprint arXiv:2409.00920},
  year    = {2024}
}

ModelScope

The base model is also available on ModelScope (for users in China and East Asia):

(The fine-tuned adapter/GGUF builds are currently HuggingFace-only.)

Related repos

v3 model family (this release)

Format Repository
LoRA adapter (PEFT, smallest download, fine-tune further) MiniCPM5-1B-Agentic-Tooluse-QLoRA-v3
Merged full-weight FP16 (transformers / vLLM / SGLang serving) MiniCPM5-1B-Agentic-Tooluse-v3-Merged-FP16
GGUF quantizations (llama.cpp / Ollama / LM Studio, CPU-friendly) MiniCPM5-1B-Agentic-Tooluse-v3-GGUF

Previous releases

Base model

Built on MiniCPM5-1B by OpenBMB, fine-tuned for agentic tool/function calling and refined with GRPO reinforcement learning.

Limitations