MiniCPM5-1B Agentic Tooluse Merged FP16

Standalone merged FP16 checkpoint of openbmb/MiniCPM5-1B and the latest MiniCPM5-1B-Agentic-Tooluse-QLoRA-v2 adapter after the July 2026 Nemotron SFT+DPO repair.

This repository contains the complete model. It is not an adapter and does not require PEFT at inference time.

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

Latest v3 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

v2 family (this release)

Current Files

The current model weights are one indexed checkpoint:

  • model-00001-of-00002.safetensors
  • model-00002-of-00002.safetensors
  • model.safetensors.index.json

The repository also includes the matching tokenizer, chat_template.jinja, model configuration, generation configuration and external evaluation artifacts. The previous single-file model remains recoverable from Hub history but is not part of the current branch.

Tool-Calling Behavior

MiniCPM5-1B natively emits XML-style calls:

<function name="tool_name"><param name="parameter">value</param></function>

The fine-tuning specializes first-call tool selection, function-name accuracy, argument selection, schema-copy avoidance and repeated-call suppression.

An application remains responsible for parsing and validating calls, executing tools externally, and returning tool results in a new turn.

Recommended Tool-Calling Deployment

OpenBMB recommends SGLang with its built-in MiniCPM5 parser:

pip install "sglang[srt]>=0.5.12"

python -m sglang.launch_server \
  --model-path ewinregirgojr/MiniCPM5-1B-Agentic-Tooluse-Merged-FP16 \
  --port 30000 \
  --tool-call-parser minicpm5

The parser converts a completed <function ...>...</function> block into an OpenAI-compatible tool_calls response.

Transformers

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "ewinregirgojr/MiniCPM5-1B-Agentic-Tooluse-Merged-FP16"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    dtype=torch.float16,
    device_map="auto",
)
model.eval()

Use tokenizer.apply_chat_template(...) and the repository's matching chat template. For deterministic tool selection, override the sampling defaults:

outputs = model.generate(
    **inputs,
    do_sample=False,
    max_new_tokens=128,
    pad_token_id=tokenizer.pad_token_id,
    eos_token_id=tokenizer.eos_token_id,
)

Remove token_type_ids from inputs if the installed Transformers/tokenizer combination returns them, because this Llama model does not consume that argument.

vLLM

The merged safetensors checkpoint is the preferred format for vLLM:

vllm serve ewinregirgojr/MiniCPM5-1B-Agentic-Tooluse-Merged-FP16

Parser availability depends on the installed vLLM release. Use SGLang's official minicpm5 parser path when OpenAI-compatible tool-call extraction is required and the vLLM build does not provide an equivalent parser.

External Evaluation

The final adapter and this merged checkpoint have identical weights for evaluation purposes. Evaluation used 300 examples derived from the external Team-ACE/ToolACE dataset, deterministic decoding, and the same cases for both models. This is not an official ToolACE or BFCL leaderboard submission.

Metric Base MiniCPM5-1B Repaired model Delta
Parseable tool call 0.0133 0.9933 +0.9800
Valid available-tool name 0.0133 0.9700 +0.9567
Expected tool name 0.0133 0.9267 +0.9133
Exact arguments 0.1500 0.6533 +0.5033
Argument-key overlap 0.0033 0.7517 +0.7484
No schema copying 1.0000 1.0000 +0.0000
No repetition 0.9967 1.0000 +0.0033
Natural clean termination 0.0000 0.1500 +0.1500

The full rows and metrics are published in:

  • external_toolace_base_vs_nemotron_dpo_eval.json
  • EVAL_RESULTS.md

Understanding the 15% Termination Metric

stopped_cleanly_rate=0.15 is a strict natural-termination metric. It measures whether the model naturally ended immediately after a completed function call without runtime intervention.

It does not mean that only 15% of cases produced usable calls. In the same evaluation, 99.33% were parseable, 97% used an available tool name, and 92.67% selected the expected tool.

MiniCPM5's deployment contract uses a parser to extract the completed XML function block. Production should treat the first completed </function> as the action boundary and prevent generated synthetic tool responses or later dialogue from being interpreted as additional actions.

Training Lineage

The current adapter was produced by:

  1. Earlier xLAM/Glaive SFT and preference-repair stages.
  2. Targeted Nemotron SFT continuation from the previous DPO adapter.
  3. DPO preference optimization over valid versus corrupted tool calls.
  4. Merge into openbmb/MiniCPM5-1B.

Nemotron sources used in the repair:

  • nvidia/Nemotron-SFT-Agentic-v2
  • nvidia/Nemotron-RL-Agentic-Function-Calling-Pivot-v1
  • nvidia/Nemotron-RL-Agentic-Conversational-Tool-Use-Pivot-v1

The data pipeline inspected physical dataset files, skipped one malformed JSONL row in the SFT tool-calling file, removed oversized policy text where needed, preserved tool schemas and recent context, and rejected unknown arguments, schema-copy placeholders and invalid expected tools.

Measured Improvements and Scope

This merged checkpoint contains the same repaired adapter behavior and improved every reported task-quality metric over base MiniCPM5-1B:

  • Parseable calls: 1.33% -> 99.33%
  • Valid available-tool names: 1.33% -> 97.00%
  • Expected-tool selection: 1.33% -> 92.67%
  • Exact arguments: 15.00% -> 65.33%
  • Argument-key overlap: 0.33% -> 75.17%
  • No repetition: 99.67% -> 100.00%
  • Natural clean termination: 0.00% -> 15.00%

The remaining gap to 100% is residual error after a large improvement, not evidence that merging or fine-tuning degraded the base model.

Deployment Notes

  • Schema validation, permission checks and confirmation for sensitive actions are standard requirements for every tool-calling model.
  • Exact-argument accuracy improved by 50.33 percentage points; applications should still validate generated values before execution.
  • Valid-name accuracy improved by 95.67 percentage points; rare near misses can remain on unseen tool libraries.
  • Natural termination improved from 0% to 15%. MiniCPM5's parser-based serving contract extracts the completed call, so this metric is separate from the 99.33% parseable-call rate.
  • The external evaluation is custom rather than an official ToolACE/BFCL leaderboard submission.
  • GGUF quantizations may differ slightly from FP16 and are published separately.

Limitations

Downloads last month
1,067
Safetensors
Model size
1B params
Tensor type
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ewinregirgojr/MiniCPM5-1B-Agentic-Tooluse-Merged-FP16

Finetuned
(47)
this model
Quantizations
2 models

Dataset used to train ewinregirgojr/MiniCPM5-1B-Agentic-Tooluse-Merged-FP16

Papers for ewinregirgojr/MiniCPM5-1B-Agentic-Tooluse-Merged-FP16

Evaluation results

  • Parseable tool-call rate on External ToolACE-derived first-call evaluation (held-out 300 examples)
    self-reported
    0.993
  • Valid available-tool name rate on External ToolACE-derived first-call evaluation (held-out 300 examples)
    self-reported
    0.970
  • Expected tool-name rate on External ToolACE-derived first-call evaluation (held-out 300 examples)
    self-reported
    0.927
  • Exact-arguments rate on External ToolACE-derived first-call evaluation (held-out 300 examples)
    self-reported
    0.653
  • Argument-key overlap on External ToolACE-derived first-call evaluation (held-out 300 examples)
    self-reported
    0.752
  • No-schema-copy rate on External ToolACE-derived first-call evaluation (held-out 300 examples)
    self-reported
    1.000
  • No-repetition rate on External ToolACE-derived first-call evaluation (held-out 300 examples)
    self-reported
    1.000
  • Stopped-cleanly rate on External ToolACE-derived first-call evaluation (held-out 300 examples)
    self-reported
    0.150