{"course":{"slug":"hugging-face","title":"Hugging Face, End to End","url":"https://addaly.com/learn/hugging-face","level":"intermediate","track":"create"},"lesson":{"slug":"reading-a-model-name","title":"A model's name is a specification, if you can read it","url":"https://addaly.com/learn/hugging-face/reading-a-model-name","position":4,"of":75,"minutes":8,"answer":"A repository name usually encodes owner, family, parameter count, tuning style and weight format, which is enough to compute memory and rule a model in or out, but it never encodes context length or licence.","keyIdea":"A repository name usually encodes owner, family, parameter count, tuning style and weight format, which is enough to compute memory and rule a model in or out, but it never encodes context length or licence, and a mixture-of-experts name like 8x7B states resident memory rather than compute."},"body":{"format":"markdown","text":"## Nine fields in one string\n\nHere is a repository identifier you will meet:\n\n```\nQwen/Qwen2.5-7B-Instruct-GGUF\n```\n\nUnpacked, that is: owner `Qwen`, family `Qwen2.5`, roughly seven billion parameters, tuned to follow instructions, converted to the GGUF file format. Four of those five facts change what you can do with it, and all four are in the name. Learning to read the convention saves you opening twenty repositories to find out they were the wrong shape.\n\nThe convention is a habit, not a rule. Nobody validates it. But it is followed often enough that a name that breaks it is itself a signal: usually that the uploader is new, occasionally that they are hiding something.\n\n## Parameter counts, and the arithmetic they imply\n\n`7B` means about seven billion parameters. `0.5B`, `1.5B`, `3B`, `8B`, `14B`, `32B`, `70B` and `405B` are the common rungs. The number is the single most decision-relevant token in the name, because it converts directly into memory:\n\n> **bytes ≈ parameters × bytes per parameter**\n\nAt bfloat16 that is two bytes each, so a 7B model is about 14 GB of weights. At 4-bit quantization it is roughly 3.5 to 4.5 GB. Add a gigabyte or two for the activations and the key-value cache during generation, and you can decide in your head whether a model fits a free Colab T4 (16 GB) or your laptop (often 8 GB of usable RAM) before you click anything.\n\nTwo naming patterns hide a different arithmetic:\n\n> Figure: What a mixture-of-experts name is actually stating. A two by two grid, rows Mixtral 8x7B and Qwen3-30B-A3B, columns Must sit in memory and Used per token: Mixtral 8x7B and Must sit in memory: 47B; Mixtral 8x7B and Used per token: 13B; Qwen3-30B-A3B and Must sit in memory: 30B; Qwen3-30B-A3B and Used per token: 3B. People size an 8x7B as a 13B because that is the speed they experience, and then run out of memory. The first column is what you must fit; the second is what you get for it. A name like 30B-A3B is the honest version of the same arithmetic, because it prints both numbers.\n\n- **`8x7B`** is a mixture of experts. It does *not* mean 56 billion parameters of compute; it means roughly 47 billion parameters must be **resident in memory** while only about 13 billion are used per token. It is fast for its size and large for its speed. People size it as a 13B and run out of RAM.\n- **`A3B`** or similar, as in `Qwen3-30B-A3B`, states both numbers explicitly: 30 billion total, 3 billion active. This is the honest version of the same naming problem.\n\n## Base, instruct, chat, and why it matters more than size\n\n- **No suffix, or `-Base`**: the model was trained to continue text and nothing else. Ask it a question and a good base model will often produce three more questions, because that is what a page of questions looks like. This is not a fault.\n- **`-Instruct`, `-it`, `-Chat`**: the model has been tuned to treat the input as an instruction or a conversation. It expects its own chat template, and using the wrong one degrades output in ways that look like the model being stupid rather than misused.\n- **`-Coder`, `-Math`, `-Vision`, `-VL`**: specialised, usually at some cost to general ability.\n- **`-Reasoning`, `-R1`, `-Thinking`**: trained to emit a long internal working-out before its answer. Budget for many more output tokens than you expect, because you pay for the thinking.\n\nThe practical rule: for anything you would phrase as a request, you want an instruct or chat variant. Choosing a base model by mistake is the single most common reason a beginner concludes that open models are bad.\n\n## Format and quantization suffixes\n\n- **`-GGUF`**: converted for `llama.cpp` and the tools built on it, which run well on CPU and on Apple silicon. Files inside are further labelled `Q4_K_M`, `Q5_K_S`, `Q8_0`: the digit is bits per weight, the letters are the variant of the scheme. `Q4_K_M` is the common default: about a quarter of the memory of fp16 for a quality loss most people cannot detect in ordinary use, and can detect on code and arithmetic.\n- **`-AWQ`, `-GPTQ`**: 4-bit schemes aimed at GPU serving rather than CPU.\n- **`-ONNX`**: converted to a runtime that works in browsers and on ordinary CPUs.\n- **`-bnb-4bit`**: pre-quantized with bitsandbytes, loadable directly by transformers.\n\n## Distil, mini, tiny, turbo\n\n`distil` has a specific meaning: a smaller model trained to imitate a larger one, as in `distilbert` or `distil-whisper`. `mini`, `tiny`, `small`, `nano` and `turbo` have no agreed meaning at all and are chosen by whoever uploaded the file. Check the config, not the adjective.\n\n## The two things the name never tells you\n\n**Context length.** A 7B model might accept 4,096 tokens or 128,000. That number lives in `config.json` as `max_position_embeddings`, and it is often the constraint that decides your project.\n\n**Licence.** Nothing in the name is load-bearing here. `Llama` in a name does not tell you which Llama licence applies, and a fine-tune of a non-commercial model is still non-commercial no matter what its own card says.\n\n## Do this now\n\nTake three models you have heard of and write out, from the name alone, the parameter count, whether it is instruction-tuned, and the memory it needs at bf16 and at 4-bit. Then open each config to check what you could not have known (context length) and notice how often that, not size, is the deciding number."},"check":{"question":"Somebody sizes a machine for `mistralai/Mixtral-8x7B-Instruct-v0.1` by reasoning that only about 13B parameters are used per token, so a 16 GB GPU at 4-bit should be comfortable. What is wrong with the reasoning?","options":[{"text":"Mixture-of-experts models cannot be quantized to 4 bits, so the memory estimate should have used bfloat16 throughout.","correct":false,"tempting":"Invents a restriction; MoE weights quantize with the same schemes as dense weights."},{"text":"The 8x7B naming means 56 billion parameters, so every figure in the estimate is too small by a factor of four.","correct":false,"tempting":"Multiplies the name out literally; the experts share layers, so the true total is about 47B rather than 56B."},{"text":"All experts stay resident in memory even though only two run per token, so it needs about 47B parameters' worth of space.","correct":true},{"text":"The instruct suffix adds a second copy of the weights for the chat head, which doubles the memory an equivalent base model would need.","correct":false,"tempting":"Imagines instruction tuning adds weights; it changes the existing ones and adds only a template."}]},"prev":{"slug":"reading-a-model-card","title":"Read the licence before you read the demo","url":"https://addaly.com/learn/hugging-face/reading-a-model-card"},"next":{"slug":"inside-a-repository","title":"What the files in a model repository are for","url":"https://addaly.com/learn/hugging-face/inside-a-repository"},"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) 'A model's name is a specification, if you can read it', in Hugging Face, End to End. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/hugging-face/reading-a-model-name (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"A model’s name is a specification, if you can read it","courseTitle":"Hugging Face, End to End","module":{"index":1,"slug":"the-hub-as-a-repository-host","title":"The Hub, read properly"},"answer":null,"keyIdea":"A repository name usually encodes owner, family, parameter count, tuning style and weight format, which is enough to compute memory and rule a model in or out, but it never encodes context length or licence, and a mixture-of-experts name like 8x7B states resident memory rather than compute.","hero":{"kind":"figure","figure":{"t":"figure","label":"Figure","figure":{"cols":["Must sit in memory","Used per token"],"rows":["Mixtral 8x7B","Qwen3-30B-A3B"],"type":"matrix","cells":[["47B","13B"],["30B","3B"]],"title":"What a mixture-of-experts name is actually stating","caption":"People size an 8x7B as a 13B because that is the speed they experience, and then run out of memory. The first column is what you must fit; the second is what you get for it. A name like 30B-A3B is the honest version of the same arithmetic, because it prints both numbers.","cellLabels":[["about 94 GB at bf16","the speed of a 13B"],["about 60 GB at bf16","the speed of a 3B"]]},"alt":"Figure: What a mixture-of-experts name is actually stating. A two by two grid, rows Mixtral 8x7B and Qwen3-30B-A3B, columns Must sit in memory and Used per token: Mixtral 8x7B and Must sit in memory: 47B; Mixtral 8x7B and Used per token: 13B; Qwen3-30B-A3B and Must sit in memory: 30B; Qwen3-30B-A3B and Used per token: 3B. People size an 8x7B as a 13B because that is the speed they experience, and then run out of memory. The first column is what you must fit; the second is what you get for it. A name like 30B-A3B is the honest version of the same arithmetic, because it prints both numbers."}},"blocks":[{"t":"h2","id":"nine-fields-in-one-string","runs":[{"text":"Nine fields in one string"}]},{"t":"p","runs":[{"text":"Here is a repository identifier you will meet:"}]},{"t":"code","lang":"","label":"Text","text":"Qwen/Qwen2.5-7B-Instruct-GGUF"},{"t":"p","runs":[{"text":"Unpacked, that is: owner "},{"text":"Qwen","code":true},{"text":", family "},{"text":"Qwen2.5","code":true},{"text":", roughly seven billion parameters, tuned to follow instructions, converted to the GGUF file format. Four of those five facts change what you can do with it, and all four are in the name. Learning to read the convention saves you opening twenty repositories to find out they were the wrong shape."}]},{"t":"p","runs":[{"text":"The convention is a habit, not a rule. Nobody validates it. But it is followed often enough that a name that breaks it is itself a signal: usually that the uploader is new, occasionally that they are hiding something."}]},{"t":"h2","id":"parameter-counts-and-the-arithmetic-they-imply","runs":[{"text":"Parameter counts, and the arithmetic they imply"}]},{"t":"p","runs":[{"text":"7B","code":true},{"text":" means about seven billion parameters. "},{"text":"0.5B","code":true},{"text":", "},{"text":"1.5B","code":true},{"text":", "},{"text":"3B","code":true},{"text":", "},{"text":"8B","code":true},{"text":", "},{"text":"14B","code":true},{"text":", "},{"text":"32B","code":true},{"text":", "},{"text":"70B","code":true},{"text":" and "},{"text":"405B","code":true},{"text":" are the common rungs. The number is the single most decision-relevant token in the name, because it converts directly into memory:"}]},{"t":"quote","runs":[{"text":"bytes ≈ parameters × bytes per parameter","b":true}]},{"t":"p","runs":[{"text":"At bfloat16 that is two bytes each, so a 7B model is about 14 GB of weights. At 4-bit quantization it is roughly 3.5 to 4.5 GB. Add a gigabyte or two for the activations and the key-value cache during generation, and you can decide in your head whether a model fits a free Colab T4 (16 GB) or your laptop (often 8 GB of usable RAM) before you click anything."}]},{"t":"p","runs":[{"text":"Two naming patterns hide a different arithmetic:"}]},{"t":"ul","items":[[{"text":"8x7B","b":true,"code":true},{"text":" is a mixture of experts. It does "},{"text":"not","i":true},{"text":" mean 56 billion parameters of compute; it means roughly 47 billion parameters must be "},{"text":"resident in memory","b":true},{"text":" while only about 13 billion are used per token. It is fast for its size and large for its speed. People size it as a 13B and run out of RAM."}],[{"text":"A3B","b":true,"code":true},{"text":" or similar, as in "},{"text":"Qwen3-30B-A3B","code":true},{"text":", states both numbers explicitly: 30 billion total, 3 billion active. This is the honest version of the same naming problem."}]]},{"t":"h2","id":"base-instruct-chat-and-why-it-matters-more-than-size","runs":[{"text":"Base, instruct, chat, and why it matters more than size"}]},{"t":"ul","items":[[{"text":"No suffix, or ","b":true},{"text":"-Base","b":true,"code":true},{"text":": the model was trained to continue text and nothing else. Ask it a question and a good base model will often produce three more questions, because that is what a page of questions looks like. This is not a fault."}],[{"text":"-Instruct","b":true,"code":true},{"text":", ","b":true},{"text":"-it","b":true,"code":true},{"text":", ","b":true},{"text":"-Chat","b":true,"code":true},{"text":": the model has been tuned to treat the input as an instruction or a conversation. It expects its own chat template, and using the wrong one degrades output in ways that look like the model being stupid rather than misused."}],[{"text":"-Coder","b":true,"code":true},{"text":", ","b":true},{"text":"-Math","b":true,"code":true},{"text":", ","b":true},{"text":"-Vision","b":true,"code":true},{"text":", ","b":true},{"text":"-VL","b":true,"code":true},{"text":": specialised, usually at some cost to general ability."}],[{"text":"-Reasoning","b":true,"code":true},{"text":", ","b":true},{"text":"-R1","b":true,"code":true},{"text":", ","b":true},{"text":"-Thinking","b":true,"code":true},{"text":": trained to emit a long internal working-out before its answer. Budget for many more output tokens than you expect, because you pay for the thinking."}]]},{"t":"p","runs":[{"text":"The practical rule: for anything you would phrase as a request, you want an instruct or chat variant. Choosing a base model by mistake is the single most common reason a beginner concludes that open models are bad."}]},{"t":"h2","id":"format-and-quantization-suffixes","runs":[{"text":"Format and quantization suffixes"}]},{"t":"ul","items":[[{"text":"-GGUF","b":true,"code":true},{"text":": converted for "},{"text":"llama.cpp","code":true},{"text":" and the tools built on it, which run well on CPU and on Apple silicon. Files inside are further labelled "},{"text":"Q4_K_M","code":true},{"text":", "},{"text":"Q5_K_S","code":true},{"text":", "},{"text":"Q8_0","code":true},{"text":": the digit is bits per weight, the letters are the variant of the scheme. "},{"text":"Q4_K_M","code":true},{"text":" is the common default: about a quarter of the memory of fp16 for a quality loss most people cannot detect in ordinary use, and can detect on code and arithmetic."}],[{"text":"-AWQ","b":true,"code":true},{"text":", ","b":true},{"text":"-GPTQ","b":true,"code":true},{"text":": 4-bit schemes aimed at GPU serving rather than CPU."}],[{"text":"-ONNX","b":true,"code":true},{"text":": converted to a runtime that works in browsers and on ordinary CPUs."}],[{"text":"-bnb-4bit","b":true,"code":true},{"text":": pre-quantized with bitsandbytes, loadable directly by transformers."}]]},{"t":"h2","id":"distil-mini-tiny-turbo","runs":[{"text":"Distil, mini, tiny, turbo"}]},{"t":"p","runs":[{"text":"distil","code":true},{"text":" has a specific meaning: a smaller model trained to imitate a larger one, as in "},{"text":"distilbert","code":true},{"text":" or "},{"text":"distil-whisper","code":true},{"text":". "},{"text":"mini","code":true},{"text":", "},{"text":"tiny","code":true},{"text":", "},{"text":"small","code":true},{"text":", "},{"text":"nano","code":true},{"text":" and "},{"text":"turbo","code":true},{"text":" have no agreed meaning at all and are chosen by whoever uploaded the file. Check the config, not the adjective."}]},{"t":"h2","id":"the-two-things-the-name-never-tells-you","runs":[{"text":"The two things the name never tells you"}]},{"t":"p","runs":[{"text":"Context length.","b":true},{"text":" A 7B model might accept 4,096 tokens or 128,000. That number lives in "},{"text":"config.json","code":true},{"text":" as "},{"text":"max_position_embeddings","code":true},{"text":", and it is often the constraint that decides your project."}]},{"t":"p","runs":[{"text":"Licence.","b":true},{"text":" Nothing in the name is load-bearing here. "},{"text":"Llama","code":true},{"text":" in a name does not tell you which Llama licence applies, and a fine-tune of a non-commercial model is still non-commercial no matter what its own card says."}]},{"t":"h2","id":"do-this-now","runs":[{"text":"Do this now"}],"role":"try"},{"t":"p","runs":[{"text":"Take three models you have heard of and write out, from the name alone, the parameter count, whether it is instruction-tuned, and the memory it needs at bf16 and at 4-bit. Then open each config to check what you could not have known (context length) and notice how often that, not size, is the deciding number."}]}],"check":{"question":[{"text":"Somebody sizes a machine for "},{"text":"mistralai/Mixtral-8x7B-Instruct-v0.1","code":true},{"text":" by reasoning that only about 13B parameters are used per token, so a 16 GB GPU at 4-bit should be comfortable. What is wrong with the reasoning?"}],"options":[{"text":[{"text":"Mixture-of-experts models cannot be quantized to 4 bits, so the memory estimate should have used bfloat16 throughout."}],"correct":false,"tempting":[{"text":"Invents a restriction; MoE weights quantize with the same schemes as dense weights."}]},{"text":[{"text":"The 8x7B naming means 56 billion parameters, so every figure in the estimate is too small by a factor of four."}],"correct":false,"tempting":[{"text":"Multiplies the name out literally; the experts share layers, so the true total is about 47B rather than 56B."}]},{"text":[{"text":"All experts stay resident in memory even though only two run per token, so it needs about 47B parameters’ worth of space."}],"correct":true,"tempting":null},{"text":[{"text":"The instruct suffix adds a second copy of the weights for the chat head, which doubles the memory an equivalent base model would need."}],"correct":false,"tempting":[{"text":"Imagines instruction tuning adds weights; it changes the existing ones and adds only a template."}]}],"order":[0,2,1,3],"why":null},"prev":{"slug":"reading-a-model-card","title":"Read the licence before you read the demo","minutes":11},"next":{"slug":"inside-a-repository","title":"What the files in a model repository are for","minutes":10}}}