Picking the task type is the first decision in training a small language model, and it constrains everything downstream: what your training data has to look like, which student models are available, and which metrics tell you whether it worked.
There are three.
| If you need to… | Task type |
|---|---|
| Produce one answer for one input: an extraction, a transformation, a label from a fixed set, an answer over a retrieved passage | Question answering |
| Hold a conversation and call tools in it, without acting on what the tools return | Chat completion |
| Run an agent loop: call tools, read their results, and answer | Agentic chat completion |
The distinctions that actually cause trouble
Classification is question answering. If the output is one of a known, closed set of labels, the answer is the label and nothing else. The labels and their definitions go in the task description, and a mutator with one value per label keeps the synthetic data spread across them.
Retrieval goes in the input. Open-book and closed-book are not separate task types. When you retrieve context at query time, put it in the user message and train question answering on it. When the knowledge has to live in the weights, train on question-and-answer rows and accept that every update is a retraining job and that the model cannot cite a source.
Chat completion versus agentic chat completion. Both train on whole conversations with tool calls in them. The difference is whether the model ever sees a tool result. If each assistant turn is followed by the next user turn, it’s chat completion. If the model reads what a tool returned and decides what to do next, it’s agentic chat completion, and the training data has to carry the full loop.
Task type constrains model choice
Chat completion with tools declared only works with a subset of student and teacher models, the ones with the necessary structured-output behaviour. Choosing a student first and a task second can put you in a position where your preferred model cannot do the job at all.
Where this cluster goes
The articles below cover each task type in depth, plus worked recipes for specific applications: support ticket triage, intent detection, content moderation, document question answering over contracts, voice assistant command routing, PII redaction, and text-to-SQL. Each recipe uses the real CLI commands end to end.
For getting the data together, see training data. For choosing between task types when more than one could work, start with the decision guide below.