Instructions to use jatayulabs/Qwen3-32B-ToolCall with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use jatayulabs/Qwen3-32B-ToolCall with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("unsloth/Qwen3-32B-bnb-4bit") model = PeftModel.from_pretrained(base_model, "jatayulabs/Qwen3-32B-ToolCall") - Notebooks
- Google Colab
- Kaggle
Qwen3-32B ToolCall
A 32B agentic tool-calling model that plans, orchestrates, and completes real-world tasks
in English, Hindi, and Hinglish.
๐งฉ GGUF build (serve anywhere) ยท ๐๏ธ Base: Qwen3-32B ยท ๐ชถ Jatayu Labs
๐ What this model does
Give it a goal and a toolbox โ it plans the sequence, calls the right tools with the right arguments, reads every result, recovers from failures, and reports back in the user's own language.
- Multi-step orchestration โ chains 4+ tool calls per task without hand-holding
- Strict, valid JSON โ arguments match the schema every step
- Multilingual by default โ English, เคนเคฟเคเคฆเฅ, and Hinglish in, matching language out
- Grounded answers โ final confirmations quote real values from tool results (order IDs, totals, ETAs)
- Graceful failure handling โ surfaces errors and proposes alternatives instead of hallucinating success
Verified episode 1 โ end-to-end order (English)
Unedited transcript, temperature 0.1. One request โ four correct tool calls โ grounded confirmation:
USER: Order 2 packets of Amul milk and 1 brown bread on Zepto. Pay cash on delivery.
[1] โ search_multiple_products({"queries": ["Amul milk", "brown bread"]})
[2] โ update_cart({"items": [{"product_id": "ZP-MILK-001", "quantity": 2},
{"product_id": "ZP-BREAD-007", "quantity": 1}]})
[3] โ get_payment_methods({})
[4] โ create_order({"payment_method": "COD"})
MODEL: Your order has been confirmed! ๐
Order ID: ZO-88121
Items: 2 ร Amul Taaza Toned Milk 500ml (โน29 each)
1 ร Britannia Brown Bread 400g (โน50)
Total: โน108 | Payment: Cash on Delivery
Estimated delivery: 9 minutes.
Every value in the confirmation (order ID, prices, ETA) is read from tool results โ nothing invented.
Verified episode 2 โ same task, in Hinglish
USER: yaar zepto se 2 amul doodh aur ek brown bread mangwa de, cash on delivery rakhna
[1] โ search_multiple_products({"queries": ["Amul doodh", "brown bread"]})
[2] โ update_cart({"items": [{"product_id": "ZP-MILK-001", "quantity": 2},
{"product_id": "ZP-BREAD-007", "quantity": 1}]})
[3] โ get_payment_methods({})
[4] โ create_order({"payment_method": "COD"})
MODEL: Your order has been confirmed! ๐ Order ID: ZO-88121 ยท Total โน108 ยท
COD ยท delivery in ~9 minutes.
Note the search query: the model kept the user's own word โ "Amul doodh" โ and the
catalog still resolved. Casual romanized Hindi is a first-class input, not an edge case.
Verified episode 3 โ Hindi in, Hindi out
USER: เคเฅเคชเคฏเคพ Zepto เคธเฅ 2 เค
เคฎเฅเคฒ เคฆเฅเคง เคเคฐ 1 เคฌเฅเคฐเคพเคเคจ เคฌเฅเคฐเฅเคก เคเคฐเฅเคกเคฐ เคเคฐเฅเคเฅค เคญเฅเคเคคเคพเคจ เคเฅเคถ เคเคจ เคกเคฟเคฒเฅเคตเคฐเฅ เคนเฅเคเคพเฅค
[1] โ search_multiple_products({"queries": ["Amul milk", "brown bread"]})
[2] โ update_cart({...}) [3] โ get_payment_methods({}) [4] โ create_order({"payment_method": "COD"})
MODEL: เคเคชเคเคพ เคเคฐเฅเคกเคฐ เคธเฅเคตเฅเคเฅเคค เคนเฅ เคเคฏเคพ เคนเฅ!
เคเคฐเฅเคกเคฐ ID: ZO-88121
เคเฅเคฒ เคฐเคพเคถเคฟ: โน108 ยท เคญเฅเคเคคเคพเคจ เคตเคฟเคงเคฟ: เคเฅเคถ เคเคจ เคกเคฟเคฒเฅเคตเคฐเฅ (COD)
เค
เคจเฅเคฎเคพเคจเคฟเคค เคกเคฟเคฒเฅเคตเคฐเฅ เคธเคฎเคฏ: 9 เคฎเคฟเคจเค
เคนเคฎ เคเคฒเฅเคฆ เคธเฅ เคเคฒเฅเคฆ เคเคชเคเฅ เคชเคพเคธ เคกเคฟเคฒเฅเคตเคฐ เคเคฐเฅเคเคเฅ! ๐
Devanagari request โ identical tool plan โ full Devanagari confirmation. No language flag, no prompt engineering โ the model mirrors the user.
Verified episode 4 โ error recovery
The backend rejects COD mid-flow. The model does the right thing for a payments flow: it stops, explains, and asks โ instead of silently switching or pretending success.
USER: Order 2 Amul milk on Zepto, cash on delivery.
[1] โ search_multiple_products({"queries": ["Amul milk"]})
[2] โ update_cart({"items": [{"product_id": "ZP-MILK-001", "quantity": 2}]})
[3] โ create_order({"payment_method": "cod"})
โ {"status": "error", "reason": "COD not available for this store. Available: UPI, Zepto Cash"}
MODEL: The Cash on Delivery (COD) option is not available for this store. You can
proceed using UPI or Zepto Cash. Would you like to update your payment preference?
Measured results
All episodes above are unedited runs against the released weights (temperature 0.1), using a real quick-commerce tool set (search / cart / payments / ordering).
| What we measured | Result |
|---|---|
| Multi-step episodes completed correctly | 4 / 4 (English, Hinglish, Hindi, error-injection) |
| Tool selection across all steps | 13 / 13 calls โ correct tool every time |
| Argument validity (schema-conformant JSON) | 13 / 13 calls |
| Language fidelity (reply matches user's language) | 3 / 3 |
| Hallucinated values in final answers | 0 โ every figure traceable to a tool result |
| Generation throughput (2ร NVIDIA A40, released GGUF build) | ~26.7 tok/s sustained across all 15 generations |
Quick start
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-32B", torch_dtype=torch.bfloat16, device_map="auto"
)
model = PeftModel.from_pretrained(base, "jatayulabs/Qwen3-32B-ToolCall")
tok = AutoTokenizer.from_pretrained("jatayulabs/Qwen3-32B-ToolCall")
Prefer an OpenAI-compatible endpoint on a single GPU? Use the
GGUF build โ
one llama-server command, full tools API support.
Checkpoints in this repo
| Location | Step | Train loss | Notes |
|---|---|---|---|
root / checkpoint-600/ |
600 | 0.070 | โ released โ best checkpoint |
checkpoint-400/ |
400 | 0.229 | conservative early checkpoint |
๐ฌ How we trained it
Trained on NVIDIA A100 GPUs with LLaMA-Factory, using LoRA on top of Qwen3-32B.
The curve tells the story: the model spends epoch 1 learning the format of structured tool calls (plateau ~0.45), masters it in a sharp drop at the epoch boundary (0.44 โ 0.23), grinds through epoch 2 refining planning, then locks in at 0.070 by step 600. Training continued to step 800 but began to overfit (0.077) โ step 600 is the release.
| Setting | Value |
|---|---|
| Base model | Qwen3-32B (32.8B params) |
| Method | LoRA โ rank 64, alpha 128, all attention + MLP projections |
| Trainable parameters | 537M (1.6% of total) |
| Optimizer | LoRA+ (AdamW, lr-ratio 16) |
| Learning rate | 1e-4, cosine decay, 10% warmup |
| Effective batch size | 16 (2 ร 8 grad accumulation) |
| Sequence length | 2,048 |
| Training data | 5,000 curated multi-step tool-calling conversations โ quick-commerce, payments, messaging, search โ with English, Hindi, and Hinglish coverage |
| Final train loss | 0.070 (step 600, epoch 2.1) |
๐ชถ About Jatayu Labs
Jatayu Labs is an Indian AI lab building agentic intelligence for a billion users โ in their own languages.
- ๐ง Fine-tuned LLMs for agentic tool calling and orchestration
- ๐ฏ Specialised small language models for focused production tasks
- ๐๏ธ Voice-modality models โ speech in, speech out
- ๐ฎ๐ณ Indic languages first โ Hindi, Hinglish, and regional languages as first-class citizens
Jatayu โ the bird of Indian epic who flew fastest and acted first.
License: Apache 2.0 ยท Contact: via the Community tab
- Downloads last month
- 135