Supervised fine-tuning
Customer support triage
How do I fine-tune a model to route and tag support tickets?
Train a small model on your own resolved tickets, labelled with the queue they ended up in. A 1.7B to 4B model matches frontier accuracy on this task because routing depends on your taxonomy, not on general knowledge — and your taxonomy is not in any base model.
| Objective | Supervised fine-tuning |
|---|---|
| Dataset shape | Ticket text in, queue label and priority out. Two to five thousand resolved tickets is usually enough. |
| Metric that decides it | Routing accuracy against a held-out month of tickets, plus the rate of misroutes that reached a human. |
| Cheapest starting point | Qwen3 1.7B on RTX 3080$0.09 per GPU-hour |
Triage is the clearest case in this catalogue for a small fine-tune over a large prompt. The decision boundary is your own: which queue, which priority, which team. A frontier model has to be told all of that in a system prompt on every single request, and it still guesses at the edges of your taxonomy because it has never seen your edge cases.
A fine-tuned 1.7B model has the taxonomy in its weights. The prompt collapses to the ticket text. That removes several thousand tokens per request, which at support volumes is where the cost actually lives — not in the model size but in the prompt you were repeating.
Start with the last twelve months of resolved tickets. Use the queue they were finally resolved in, not the queue they were first assigned to, or you will train the model to reproduce your existing misroutes.
The mistake to avoid
Training on first-assignment labels rather than final-resolution labels. The model learns to replicate the mistake you were trying to fix, and it will do so consistently enough that the accuracy metric looks fine.
Models to start from
In order. Start at the top and move down the list only if the evaluation gate says you have to — the smallest model that clears your bar is the one you pay for on every request forever.
Before you deploy it
Whatever the metric above says in isolation, the deployment decision is comparative: is this better than what is running today? Gate the candidate against the incumbent, blinded, on held-out cases from your own traffic. A fail is a cheap answer to an expensive question.
Frequently asked questions
How many tickets do I need?
Two to five thousand resolved tickets covering every queue is a reasonable starting point. What matters more than volume is coverage: a queue with thirty examples will be routed badly however many examples the other queues have.
Should I include the resolution text in training?
Not for a routing model. Route on what was known at the moment of arrival, or the model learns to depend on information it will not have at inference time.
Start with Qwen3 1.7B
Upload your dataset, read the validation report, and forecast the run before anything is leased.