- Tiny footprint, real accuracy. 1B parameters total, LoRA adapter itself is under 100MB — deployable anywhere a 7B+ model can't go: mobile apps, browser extensions, IoT/embedded agents, offline assistants, cost-sensitive high-throughput API backends.
- Purpose-built for agentic tool use. Trained specifically to parse a tool/function schema plus a natural-language user request and emit a correctly-named, correctly-structured, correctly-valued function call — the core skill every LLM agent framework (LangChain, LlamaIndex, AutoGen, CrewAI, custom ReAct loops, MCP servers) depends on.
- Two-stage training pipeline: QLoRA SFT + GRPO reinforcement learning. Most open tool-calling fine-tunes stop at supervised fine-tuning. This adapter goes a step further with GRPO (Group Relative Policy Optimization) reinforcement learning on top of the SFT checkpoint, specifically rewarding exact function-name selection and exact argument-value correctness — the two hardest, most failure-prone parts of tool calling for small models.
- Honestly measured, not marketing numbers. Every metric below comes from one single evaluation harness run end-to-end on a locked, held-out 300-example test split — same parser, same grader, same slice, for the base model, the SFT model, and this GRPO-refined v3 model. No cherry-picked runs, no mixed benchmarks.
Benchmark results (held-out test set, n=300)
Table with columns: metric, v2 (previous release), SFT retrain, v3 (SFT + GRPO), Δ vs SFT| metric | v2 (previous release) | SFT retrain | v3 (SFT + GRPO) | Δ vs SFT |
|---|
| parseable | 0.9933 | 1.0000 | 1.0000 | +0.0000 |
| valid_name | 0.9700 | 0.9867 | 0.9933 | +0.0066 |
| expected_name | 0.9067 | 0.9567 | 0.9733 | +0.0166 |
| args_exact | 0.6133 | 0.7367 | 0.7500 | +0.0133 |
| arg_key_overlap | 0.8757 |
What these metrics mean, in plain terms:
parseable — the model's output is well-formed, machine-parseable function-call syntax (essentially solved at 100%).
valid_name — the model calls a function that actually exists in the provided tool schema.
expected_name — the model calls the correct function for the user's request (97%+ of the time, up from v2).
args_exact — the strictest metric: correct function and every single argument value matches the expected value exactly. This is the metric that separates a model that "looks right" from one that actually works in production, and it's where the GRPO reinforcement-learning stage delivers its biggest win over plain SFT.
arg_key_overlap — how much of the correct argument set (keys) the model produces, even when some values are imperfect.
Model details
- Base model: openbmb/MiniCPM5-1B — a compact, efficient, Llama-architecture 1B-parameter language model from OpenBMB, ideal for resource-constrained inference, edge computing, and low-latency serving.
- Adapter type: LoRA (Low-Rank Adaptation) via PEFT, rank
r=32, alpha=64, dropout=0.05
- Target modules:
q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj (full attention + MLP coverage)
- Training pipeline: QLoRA supervised fine-tuning on tool-calling / function-calling trajectories → GRPO reinforcement-learning refinement optimizing for exact argument correctness
Quickstart
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained("openbmb/MiniCPM5-1B")
tok = AutoTokenizer.from_pretrained("openbmb/MiniCPM5-1B")
model = PeftModel.from_pretrained(base, "ewinregirgojr/MiniCPM5-1B-Agentic-Tooluse-QLoRA-v3")
Prefer not to deal with adapter loading, or want a single-file local build? See the related repos below for a merged full-weight checkpoint and quantized GGUF files for llama.cpp / Ollama / LM Studio.
Ideal use cases
- Local, private, offline AI agents that need to call tools/APIs without sending data to a cloud LLM provider
- Home automation and smart-home assistants (small enough to run on a Raspberry Pi-class device or a home server)
- Mobile and embedded applications where a 7B+ model is impractical
- High-throughput, cost-sensitive backend services orchestrating many tool calls per request
- Any LangChain / LlamaIndex / AutoGen / MCP-based agent that needs a cheap, fast, locally-hostable function-calling backbone
- Research and experimentation on small-model reasoning, LoRA fine-tuning, and RL-based (GRPO) post-training for structured generation
FAQ
Is this a full model or an adapter? This repo is a LoRA adapter — small, fast to download, must be loaded on top of the base MiniCPM5-1B model via PEFT. If you want a single ready-to-serve checkpoint, use the Merged-FP16 or GGUF repos linked above instead.
Can I run this on CPU / a laptop / a phone? Yes — the whole point of a 1B-parameter model is that it's small enough for CPU inference, laptops, and (via the GGUF quantized builds) even lower-power edge devices.
How does this compare to using GPT-4o / Claude for function calling? This model trades some absolute accuracy for massive gains in cost, latency, privacy, and deployability — you get a locally-hostable, fine-tunable, fully open-weight alternative for agentic tool-use workloads where sending every request to a large hosted API isn't practical or affordable.
What license is this under? Apache 2.0, matching the base model.
Base model
Built on MiniCPM5-1B by OpenBMB.