CoolFace
Modelpublic

canbingol/qwen2.5-3B-Instruct-tool-call-en-mixed-when2call-v2

sourceHugging Faceapache-2.0updated 1mo agoView on Hugging Face
0likes13downloads
Model Card

⚠️ Warning

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

Qwen2.5-3B-Instruct — Tool Call (EN, Mixed + When2Call 3.3k)

LoRA fine-tune of Qwen/Qwen2.5-3B-Instruct for function/tool calling.

Data

  • —Salesforce/xlam-function-calling-60k — 54,000 (tool-call)
  • —HuggingFaceH4/no_robots — 8,000, filtered ≤2,000 chars (no-tool SFT)
  • —nvidia/When2Call (train_sft) — 3,300 (irrelevance/negative signal)
  • —Concatenated, shuffled, formatted via apply_chat_template

LoRA

r=32, loraalpha=64, loradropout=0.05, targetmodules=all-linear, bias=none, tasktype=CAUSAL_LM

Training

lr=2e-4, epochs=1, perdevicebatch=8, gradaccum=16 (effective 128), warmupratio=0.03, maxgradnorm=0.3, bf16=True, attnimplementation=sdpa, losstype=nll

Training Results (step 505, final)

trainloss=0.354, valloss=0.173, meantokenaccuracy=0.956, runtime≈4h02m (A100)

BFCL Eval Results (inspect_evals/bfcl)

MetricScore
accuracy (all)0.429
irrelevance_acc1.000
multiple_acc0.045
parallel_acc0.595
parallelmultipleacc0.640
simplepythonacc0.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.

Comparison to prior runs

Runaccuracyirrelevance_accsimple_python_accmultiple_acc
Base Qwen2.5-3B0.8150.6080.9530.910
EN-only (xlam 60k)0.7050.2130.8930.865
EN + no_robots0.7300.2250.9100.875
EN + no_robots + When2Call (13.5k)0.5340.9960.2070.190
EN + no_robots + When2Call (3.3k) (this model)0.4291.0000.0900.045