{"course":{"slug":"open-models","title":"The Open Model Ecosystem","url":"https://addaly.com/learn/open-models","level":"intermediate","track":"deep"},"lesson":{"slug":"base-instruct-reasoning","title":"Base, Instruct, Reasoning","url":"https://addaly.com/learn/open-models/base-instruct-reasoning","position":21,"of":71,"minutes":8,"answer":"Reasoning models buy accuracy on multi-step problems with tokens and latency; most production tasks are not multi-step.","keyIdea":"Reasoning models buy accuracy on multi-step problems with tokens and latency; most production tasks are not multi-step."},"body":{"format":"markdown","text":"One family ships three or four variants of the same size, and the suffix on the repo name decides whether your afternoon works. `Qwen3-8B-Base`, `Qwen3-8B`, `Llama-3.1-8B-Instruct`, `DeepSeek-R1-Distill-Qwen-7B`. These are not versions. They are different tools.\n\n## Base: a document continuer\n\nA base model predicts the next token over the pretraining distribution. It has no assistant persona, no chat template, and no discipline about stopping. Ask it a question and it may reply with three more questions, because that is what a page of questions looks like on the web.\n\nYou prompt it as a document:\n\n```\nProduct: Kotoba Wireless Earbuds\nReview (5 stars): \n```\n\nUse a base model when you are: fine-tuning from scratch on your own data, doing few-shot classification by comparing token logprobs, measuring perplexity, or generating text that must not carry assistant voice.\n\nA base model is not \"the uncensored one\". It is the unfinished one. It will refuse nothing and also follow nothing.\n\n## Instruct: base plus manners, and a format contract\n\nAn instruct model is a base model further trained on instruction-following examples and then on human or synthetic preferences. It expects an exact conversation format: special tokens, role markers, an end-of-turn token.\n\nGet the format wrong and quality falls off a cliff in a way that looks exactly like \"this open model is bad\". This is the single most common self-inflicted wound in local inference. Print the template once and look at it:\n\n```python\nfrom transformers import AutoTokenizer\ntok = AutoTokenizer.from_pretrained(\"Qwen/Qwen3-8B\")\nprint(tok.apply_chat_template(\n    [{\"role\": \"system\", \"content\": \"You are terse.\"},\n     {\"role\": \"user\", \"content\": \"Summarize TCP in two lines.\"}],\n    tokenize=False, add_generation_prompt=True))\n```\n\nIf you serve through llama.cpp, vLLM or Ollama and call `/v1/chat/completions`, the template is applied for you from the model's own metadata. That is a good reason to use the chat endpoint rather than raw completions, even locally.\n\n## Reasoning: paying tokens for correctness\n\nA reasoning model has been trained, usually with reinforcement learning against checkable answers, to produce a long chain of thought before committing. You see it as a `<think>` block or a separate channel in the response.\n\nWhat you buy: multi-step maths, competition-style problems, non-obvious debugging, planning where a wrong early step ruins everything.\n\nWhat you pay:\n\n- Three to twenty times the output tokens for the same visible answer.\n- Seconds to minutes of latency, which rules it out of anything interactive at small scale.\n- More KV cache, so more memory, which matters on the machines most people have.\n- Worse behaviour on short structured tasks. It will deliberate about \"extract the invoice date\", and sometimes reason itself away from the correct answer.\n- Loop risk. Set a hard token cap.\n\nSome families ship hybrids that toggle thinking on and off. Distills like `R1-Distill-*` are instruct models trained to imitate reasoning traces: cheaper, weaker than the teacher, often still worth it.\n\nOne practical detail: unless the model card says otherwise, strip previous `<think>` blocks before sending conversation history back. Feeding old chains in as context tends to degrade the next turn.\n\n## Choosing, in one pass\n\n- Extraction, classification, routing, short replies → smallest instruct model that passes, temperature 0, constrained output.\n- Writing in a particular voice → instruct, and judge by reading, not by scoring.\n- Competition maths, algorithmic problems, root-cause analysis → reasoning, with a token cap.\n- Fine-tuning on ten thousand of your own examples → base if you want full control of the output format, instruct if you want to keep its existing manners and just shift the domain.\n\nThe mistake to avoid is treating these as a quality ladder with reasoning at the top. They are three different contracts about what the model does with your prompt."},"check":{"question":"A pipeline extracting invoice dates and totals is switched from an 8B instruct model to a 32B reasoning model. It gets slower and slightly less reliable. Best explanation?","options":[{"text":"The task is single-step and format-bound, so long deliberation adds latency and extra opportunities to overthink or break the required output shape.","correct":true},{"text":"The 32B model must be quantized too aggressively; requantizing at higher precision will fix the reliability drop.","correct":false,"tempting":"Blames numerical precision for what is a mismatch between the model's training objective and the task's shape."},{"text":"Reasoning models are strictly stronger, so the prompt is missing an explicit instruction to think step by step.","correct":false,"tempting":"Assumes capability is monotone across variants and that any regression must be a prompt defect."},{"text":"Temperature 0 prevents the model from exploring alternative reasoning paths, so it should be raised.","correct":false,"tempting":"Inverts the role of sampling: determinism is what an extraction task wants, not what is suppressing it."}]},"prev":{"slug":"inference-providers","title":"Renting open weights by the token","url":"https://addaly.com/learn/open-models/inference-providers"},"next":{"slug":"reading-config-json","title":"Every number in config.json","url":"https://addaly.com/learn/open-models/reading-config-json"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Base, Instruct, Reasoning', in The Open Model Ecosystem. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/open-models/base-instruct-reasoning (Accessed: 31 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Base, Instruct, Reasoning","courseTitle":"The Open Model Ecosystem","module":{"index":3,"slug":"inside-the-artefact","title":"Inside the files"},"answer":null,"keyIdea":"Reasoning models buy accuracy on multi-step problems with tokens and latency; most production tasks are not multi-step.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"p","runs":[{"text":"One family ships three or four variants of the same size, and the suffix on the repo name decides whether your afternoon works. "},{"text":"Qwen3-8B-Base","code":true},{"text":", "},{"text":"Qwen3-8B","code":true},{"text":", "},{"text":"Llama-3.1-8B-Instruct","code":true},{"text":", "},{"text":"DeepSeek-R1-Distill-Qwen-7B","code":true},{"text":". These are not versions. They are different tools."}],"lede":true},{"t":"h2","id":"base-a-document-continuer","runs":[{"text":"Base: a document continuer"}]},{"t":"p","runs":[{"text":"A base model predicts the next token over the pretraining distribution. It has no assistant persona, no chat template, and no discipline about stopping. Ask it a question and it may reply with three more questions, because that is what a page of questions looks like on the web."}]},{"t":"p","runs":[{"text":"You prompt it as a document:"}]},{"t":"code","lang":"","label":"Text","text":"Product: Kotoba Wireless Earbuds\nReview (5 stars): "},{"t":"p","runs":[{"text":"Use a base model when you are: fine-tuning from scratch on your own data, doing few-shot classification by comparing token logprobs, measuring perplexity, or generating text that must not carry assistant voice."}]},{"t":"p","runs":[{"text":"A base model is not “the uncensored one”. It is the unfinished one. It will refuse nothing and also follow nothing."}]},{"t":"h2","id":"instruct-base-plus-manners-and-a-format-contract","runs":[{"text":"Instruct: base plus manners, and a format contract"}]},{"t":"p","runs":[{"text":"An instruct model is a base model further trained on instruction-following examples and then on human or synthetic preferences. It expects an exact conversation format: special tokens, role markers, an end-of-turn token."}]},{"t":"p","runs":[{"text":"Get the format wrong and quality falls off a cliff in a way that looks exactly like “this open model is bad”. This is the single most common self-inflicted wound in local inference. Print the template once and look at it:"}]},{"t":"code","lang":"python","label":"Python","text":"from transformers import AutoTokenizer\ntok = AutoTokenizer.from_pretrained(\"Qwen/Qwen3-8B\")\nprint(tok.apply_chat_template(\n    [{\"role\": \"system\", \"content\": \"You are terse.\"},\n     {\"role\": \"user\", \"content\": \"Summarize TCP in two lines.\"}],\n    tokenize=False, add_generation_prompt=True))"},{"t":"p","runs":[{"text":"If you serve through llama.cpp, vLLM or Ollama and call "},{"text":"/v1/chat/completions","code":true},{"text":", the template is applied for you from the model’s own metadata. That is a good reason to use the chat endpoint rather than raw completions, even locally."}]},{"t":"h2","id":"reasoning-paying-tokens-for-correctness","runs":[{"text":"Reasoning: paying tokens for correctness"}]},{"t":"p","runs":[{"text":"A reasoning model has been trained, usually with reinforcement learning against checkable answers, to produce a long chain of thought before committing. You see it as a "},{"text":"<think>","code":true},{"text":" block or a separate channel in the response."}]},{"t":"p","runs":[{"text":"What you buy: multi-step maths, competition-style problems, non-obvious debugging, planning where a wrong early step ruins everything."}]},{"t":"p","runs":[{"text":"What you pay:"}]},{"t":"ul","items":[[{"text":"Three to twenty times the output tokens for the same visible answer."}],[{"text":"Seconds to minutes of latency, which rules it out of anything interactive at small scale."}],[{"text":"More KV cache, so more memory, which matters on the machines most people have."}],[{"text":"Worse behaviour on short structured tasks. It will deliberate about “extract the invoice date”, and sometimes reason itself away from the correct answer."}],[{"text":"Loop risk. Set a hard token cap."}]]},{"t":"p","runs":[{"text":"Some families ship hybrids that toggle thinking on and off. Distills like "},{"text":"R1-Distill-*","code":true},{"text":" are instruct models trained to imitate reasoning traces: cheaper, weaker than the teacher, often still worth it."}]},{"t":"p","runs":[{"text":"One practical detail: unless the model card says otherwise, strip previous "},{"text":"<think>","code":true},{"text":" blocks before sending conversation history back. Feeding old chains in as context tends to degrade the next turn."}]},{"t":"h2","id":"choosing-in-one-pass","runs":[{"text":"Choosing, in one pass"}]},{"t":"ul","items":[[{"text":"Extraction, classification, routing, short replies → smallest instruct model that passes, temperature 0, constrained output."}],[{"text":"Writing in a particular voice → instruct, and judge by reading, not by scoring."}],[{"text":"Competition maths, algorithmic problems, root-cause analysis → reasoning, with a token cap."}],[{"text":"Fine-tuning on ten thousand of your own examples → base if you want full control of the output format, instruct if you want to keep its existing manners and just shift the domain."}]]},{"t":"p","runs":[{"text":"The mistake to avoid is treating these as a quality ladder with reasoning at the top. They are three different contracts about what the model does with your prompt."}]}],"check":{"question":[{"text":"A pipeline extracting invoice dates and totals is switched from an 8B instruct model to a 32B reasoning model. It gets slower and slightly less reliable. Best explanation?"}],"options":[{"text":[{"text":"The task is single-step and format-bound, so long deliberation adds latency and extra opportunities to overthink or break the required output shape."}],"correct":true,"tempting":null},{"text":[{"text":"The 32B model must be quantized too aggressively; requantizing at higher precision will fix the reliability drop."}],"correct":false,"tempting":[{"text":"Blames numerical precision for what is a mismatch between the model’s training objective and the task’s shape."}]},{"text":[{"text":"Reasoning models are strictly stronger, so the prompt is missing an explicit instruction to think step by step."}],"correct":false,"tempting":[{"text":"Assumes capability is monotone across variants and that any regression must be a prompt defect."}]},{"text":[{"text":"Temperature 0 prevents the model from exploring alternative reasoning paths, so it should be raised."}],"correct":false,"tempting":[{"text":"Inverts the role of sampling: determinism is what an extraction task wants, not what is suppressing it."}]}],"order":[3,2,0,1],"why":null},"prev":{"slug":"inference-providers","title":"Renting open weights by the token","minutes":8},"next":{"slug":"reading-config-json","title":"Every number in config.json","minutes":10}}}