Downloads · 30 days
0
nikhilwalia23/qwen3-1.7b-banking77-intent
qwen3-1.7b-banking77-intent is a text classification model from nikhilwalia23. Use it when you need a label for a piece of text. It is set up for transformers. The card lists the license as apache-2.0.
A LoRA fine-tune of unsloth/qwen3-1.7b-unsloth-bnb-4bit for 77-class intent classification on customer banking queries, trained on the banking77 dataset.
Downloads · 30 days
0
Access
Public
Updated Sep 25, 2026
Repo size
81.2 MB
Likes
0
Public
Click a slice to open those files.
.safetensors69.8 MB · 86%
From the Hugging Face model README
A LoRA fine-tune of unsloth/qwen3-1.7b-unsloth-bnb-4bit for 77-class intent classification on customer banking queries, trained on the banking77 dataset.
This model takes a free-text customer banking query and classifies it into one of 77 fine-grained intents (e.g. card_arrival, transfer_not_received_by_recipient, declined_transfer). It was fine-tuned using QLoRA (4-bit base + LoRA adapter) with Unsloth, keeping the entire training run within a free Google Colab T4 GPU.
SFTTrainerClassifying customer support queries in a banking/fintech context into a fixed set of 77 intent categories — e.g. for automated ticket routing or intent-based FAQ retrieval. This is a portfolio/learning project demonstrating an end-to-end fine-tuning pipeline; it has not been validated for production use.
Out of scope: general-purpose chat, domains outside retail banking support queries, languages other than English.
banking77 — 13,083 real customer service queries from an online banking platform, labeled across 77 fine-grained intents. Trained on a 4,000-example subset of the 9,993-row train split; evaluated on a 300-example sample from the 3,076-row test split.
SFTTrainer)Each training example was formatted as a chat turn via tokenizer.apply_chat_template, with the query as the user message and the ground-truth intent string as the assistant response. The model was not shown the list of 77 valid intents in the prompt — it learned the label space directly from training examples.
Accuracy measured on a held-out 300-example sample from the test split, exact-match against the gold intent string:
| Model | Accuracy |
|---|---|
| Base model (zero-shot) | [0%] |
| This fine-tuned model | [90%] |
Note on the comparison: part of the gap reflects the base model not knowing the exact intent-string format to output, in addition to task accuracy — fine-tuning here teaches both the classification task and the expected output format. banking77 is also noted to have some near-duplicate intents (e.g. multiple card-related categories), which caps achievable accuracy for any model at this scale.
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "nikhilwalia23/qwen3-1.7b-banking77-intent",
max_seq_length = 1024,
load_in_4bit = True,
)
FastLanguageModel.for_inference(model)
messages = [{"role": "user", "content": "My card hasn't arrived yet, it's been two weeks"}]
inputs = tokenizer.apply_chat_template(
messages, tokenize=True, add_generation_prompt=True, return_tensors="pt"
).to("cuda")
outputs = model.generate(input_ids=inputs, max_new_tokens=15)
print(tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True))
unsloth/qwen3-1.7b-unsloth-bnb-4bit) to be loaded alongside it.This qwen3 model was trained 2x faster with Unsloth and Hugging Face's TRL library.