Downloads · 30 days
4
6% of all-time downloads
canbingol/qwen2.5-3B-Instruct-tool-call-en-mixed-when2call-v2
qwen2.5-3B-Instruct-tool-call-en-mixed-when2call-v2 is a machine learning model from canbingol. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for peft. The card lists the license as apache-2.0.
This model was fine-tuned for experimental purposes, as part of an investigation into reducing over-triggered tool calls (i.e., getting the model to correctly abstain when no tool is relevant).
Downloads · 30 days
4
6% of all-time downloads
All-time downloads
65
Public
Repo size
251 MB
Likes
0
Public
Click a slice to open those files.
.safetensors240 MB · 95%
From the Hugging Face model README
This model was fine-tuned for experimental purposes, as part of an investigation into reducing over-triggered tool calls (i.e., getting the model to correctly abstain when no tool is relevant).
nvidia/When2Call (train_sft) was included in training to improve this behavior. However, this had an unintended side effect: the model's core tool-calling ability degraded significantly. It now frequently asks the user for clarification/input even for simple, complete, unambiguous tool-call requests where all required parameters are already provided.
Do not use this model in production or for tool-calling tasks. It is kept public only as a record of this experiment (see BFCL eval results above — simple_python_acc and multiple_acc collapsed while irrelevance_acc hit ceiling, indicating over-correction rather than genuine improvement).
LoRA fine-tune of Qwen/Qwen2.5-3B-Instruct for function/tool calling.
apply_chat_templater=32, lora_alpha=64, lora_dropout=0.05, target_modules=all-linear, bias=none, task_type=CAUSAL_LM
lr=2e-4, epochs=1, per_device_batch=8, grad_accum=16 (effective 128), warmup_ratio=0.03, max_grad_norm=0.3, bf16=True, attn_implementation=sdpa, loss_type=nll
train_loss=0.354, val_loss=0.173, mean_token_accuracy=0.956, runtime≈4h02m (A100)
| Metric | Score |
|---|---|
| accuracy (all) | 0.429 |
| irrelevance_acc | 1.000 |
| multiple_acc | 0.045 |
| parallel_acc | 0.595 |
| parallel_multiple_acc | 0.640 |
| simple_python_acc | 0.090 |
Note: irrelevance_acc reached 1.000 (perfect abstention), but simple_python_acc (0.090) and multiple_acc (0.045) collapsed even further. Even with a reduced When2Call subset (3.3k), the negative signal causes heavy over-abstention from tool calling.
| Run | accuracy | irrelevance_acc | simple_python_acc | multiple_acc |
|---|---|---|---|---|
| Base Qwen2.5-3B | 0.815 | 0.608 | 0.953 | 0.910 |
| EN-only (xlam 60k) | 0.705 | 0.213 | 0.893 | 0.865 |
| EN + no_robots | 0.730 | 0.225 | 0.910 | 0.875 |
| EN + no_robots + When2Call (13.5k) | 0.534 | 0.996 | 0.207 | 0.190 |
| EN + no_robots + When2Call (3.3k) (this model) | 0.429 | 1.000 | 0.090 | 0.045 |