---
license: apache-2.0
base_model: openbmb/MiniCPM5-1B
library_name: transformers
pipeline_tag: text-generation
model-index:
- name: MiniCPM5-1B Agentic Tooluse Merged FP16
results:
- task:
type: text-generation
name: Tool calling
dataset:
name: External ToolACE-derived first-call evaluation
type: Team-ACE/ToolACE
metrics:
- type: parseable_rate
value: 0.9933333333333333
name: Parseable tool-call rate
- type: valid_name_rate
value: 0.97
name: Available-tool name rate
- type: expected_name_rate
value: 0.9266666666666666
name: Expected tool-name rate
- type: args_exact_rate
value: 0.6533333333333333
name: Exact-arguments rate
tags:
- minicpm
- minicpm5
- minicpm5-1b
- tool-calling
- function-calling
- tool-use
- agentic
- xml-tool-calling
- transformers
- sglang
- vllm
- safetensors
- merged-model
- nemotron
- dpo
- openbmb
widget:
- text: "Use the available tool to create a note titled Team Meeting Agenda."
- text: "Run tests for the calculator bug using the available tool."
---
# MiniCPM5-1B Agentic Tooluse Merged FP16
Standalone merged FP16 checkpoint of
[`openbmb/MiniCPM5-1B`](https://huggingface.co/openbmb/MiniCPM5-1B)
and the latest
[`MiniCPM5-1B-Agentic-Tooluse-QLoRA-v2`](https://huggingface.co/ewinregirgojr/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.
## Repositories
| Format | Repository |
|---|---|
| Merged FP16 Transformers model | This repository |
| LoRA/PEFT adapter | [`MiniCPM5-1B-Agentic-Tooluse-QLoRA-v2`](https://huggingface.co/ewinregirgojr/MiniCPM5-1B-Agentic-Tooluse-QLoRA-v2) |
| F16, Q8_0 and Q4_K_M GGUF | [`MiniCPM5-1B-Agentic-Tooluse-GGUF`](https://huggingface.co/ewinregirgojr/MiniCPM5-1B-Agentic-Tooluse-GGUF) |
## 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:
```xml
value
```
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:
```bash
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 `...` block into an OpenAI-compatible `tool_calls` response.
## Transformers
```python
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:
```python
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:
```bash
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`](https://huggingface.co/datasets/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 `` 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.