--- 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.