{"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-card","title":"Read the licence before you read the demo","url":"https://addaly.com/learn/hugging-face/reading-a-model-card","position":3,"of":75,"minutes":11,"answer":"Check the licence family and the base model before anything else, because a fine-tune inherits its parent's terms no matter what its own card claims.","keyIdea":"Check the licence family and the base model before anything else, because a fine-tune inherits its parent's terms no matter what its own card claims."},"body":{"format":"markdown","text":"## The order everyone reads it in is wrong\n\nMost people open a model page, look at the sample outputs, decide they like it, and start building. The licence gets checked at the end, if at all: usually the week before launch, by someone who is now unhappy.\n\nA model card is a `README.md` with a YAML block at the top. That block carries the machine-readable facts: `license`, `base_model`, `datasets`, `pipeline_tag`, `language`, `tags`. The prose underneath is written by whoever uploaded the model, and it is a mixture of documentation and advertising. Read the page in this order instead.\n\n## One: the licence, and which family it belongs to\n\nThe licence shows in the right-hand sidebar and in the front matter. There are roughly five families and they behave very differently.\n\n- **Permissive**: Apache-2.0, MIT, BSD. Commercial use, modification, redistribution, keep the notice. The easy case.\n- **Share-alike and copyleft**: anything CC-BY-SA, occasionally GPL. Your derivative may have to carry the same terms. That bites when you fine-tune.\n- **Non-commercial**: `cc-by-nc-4.0`, `cc-by-nc-sa-4.0`, and several custom research licences. Excellent models sit here. You may not put them in a paid product, and *my app is free but carries ads* is not a question the card answers. Image people meet this constantly: `sd-turbo` is the fastest thing you can run on a laptop CPU and its licence is non-commercial.\n- **Custom community licences**: Llama, Gemma and others. Mostly permissive in practice, with named conditions: an acceptable-use policy, an obligation to display attribution such as *Built with Llama*, a naming rule for derivative models, and in Llama's case a clause that only engages above 700 million monthly active users. Read one properly once; they are short.\n- **`other`, or no licence field at all.** Treat that as *unlicensed*, not as *free*. Absence of a licence is not permission.\n\nTwo traps. **Gated is not a licence**: clicking *Agree and access repository* gets you the files, and the licence still governs what you may then do with them. And **the model's licence and its training data's licence are separate questions**: a permissively licensed model trained on scraped material does not settle the second one for you.\n\n## Two: lineage, because you inherit it\n\nThe `base_model` field links a fine-tune to its parent, and the Hub draws the tree from it. This is the most useful thirty seconds on the page. A model presented as an original release is often three fine-tunes downstream of something whose terms, biases and context limit it silently inherits. If a card claims Apache-2.0 while its base model is under a non-commercial research licence, the card is wrong and the base wins. That happens more often than you would like, particularly on community merges.\n\n## Three: the numbers, and the sentence next to them\n\nAn evaluation table tells you what the author chose to measure. Ask three things of any of them.\n\n- **Which benchmarks are missing?** Six results with three obvious ones absent is a report, not an oversight.\n- **In what language and what format?** Nearly all famous scores are English multiple-choice. If your work is Hindi customer messages or Yoruba speech, the number is close to meaningless for you.\n- **Compared with what, and when?** Beating a 7B model is not the claim it sounds like if the comparison is two years old.\n\nLesson nine is entirely about this, and [/learn/evaluating-ai](/learn/evaluating-ai) takes it further.\n\n## Four: the limitations section\n\nScroll to *Bias, Risks and Limitations*. Most people skip it because it reads like boilerplate. It is usually where the author has written down, in plain language, the exact failure you are about to have: the languages it degrades on, the groups it misclassifies, the input length past which it falls apart, the fact that the speech model was trained on clean read audio and collapses on a phone call recorded in a market.\n\nA card with no limitations section is not a model without limitations.\n\n## Five: the Files tab, which cannot lie\n\nThe prose is written. The files are what exists.\n\n- **Size arithmetic.** Parameters times bytes per parameter. A 7-billion-parameter model at 16-bit is about 14 GB; at 8-bit about 7 GB; at 4-bit about 4 GB. Add the file sizes up and check them against what the card implies.\n- **Prefer `safetensors` to `.bin` or `.pt`.** The older PyTorch formats serialise with Python's own object format, and loading one can execute code embedded inside it. The safetensors format exists so that loading weights is only loading weights. If a repo offers both, take the safetensors.\n- **`trust_remote_code=True`** in the usage snippet means the repo ships custom Python that will run on your machine. Sometimes necessary. Always worth knowing you agreed to it.\n- **`config.json`** states the real architecture, hidden size and context length, whatever the prose above claims.\n\n## Do this now\n\nOpen the last model you used and answer three questions without scrolling to the demo: what is its licence, what is its base model, and name one stated limitation. If you cannot find all three, you have already learned something about that model."},"check":{"question":"A team wants to sell a product built on a fine-tuned model. Its card says `license: apache-2.0`, but the `base_model` field points at a model released under a non-commercial research licence. What is the accurate reading?","options":[{"text":"The fine-tune is a new work with its own weights, so the uploader's choice of Apache-2.0 governs and commercial use is fine.","correct":false,"tempting":"Treats training as an act that resets the terms attached to what was trained on."},{"text":"The non-commercial terms of the base flow down to the derivative, so the Apache-2.0 label on the card does not make it safe to sell.","correct":true},{"text":"Because the repository is not gated, no acceptance step was required, which means no restrictive terms are in force.","correct":false,"tempting":"Confuses the access gate with the licence, when the gate only controls who gets the files."},{"text":"The conflict makes the licensing void, so the ordinary copyright default applies and the weights can be used freely.","correct":false,"tempting":"Assumes an unclear licence resolves in the user's favour rather than removing permission."}]},"prev":{"slug":"searching-the-hub","title":"The search box is the worst way in","url":"https://addaly.com/learn/hugging-face/searching-the-hub"},"next":{"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"},"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) 'Read the licence before you read the demo', in Hugging Face, End to End. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/hugging-face/reading-a-model-card (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":"Read the licence before you read the demo","courseTitle":"Hugging Face, End to End","module":{"index":1,"slug":"the-hub-as-a-repository-host","title":"The Hub, read properly"},"answer":null,"keyIdea":"Check the licence family and the base model before anything else, because a fine-tune inherits its parent’s terms no matter what its own card claims.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"the-order-everyone-reads-it-in-is-wrong","runs":[{"text":"The order everyone reads it in is wrong"}]},{"t":"p","runs":[{"text":"Most people open a model page, look at the sample outputs, decide they like it, and start building. The licence gets checked at the end, if at all: usually the week before launch, by someone who is now unhappy."}]},{"t":"p","runs":[{"text":"A model card is a "},{"text":"README.md","code":true},{"text":" with a YAML block at the top. That block carries the machine-readable facts: "},{"text":"license","code":true},{"text":", "},{"text":"base_model","code":true},{"text":", "},{"text":"datasets","code":true},{"text":", "},{"text":"pipeline_tag","code":true},{"text":", "},{"text":"language","code":true},{"text":", "},{"text":"tags","code":true},{"text":". The prose underneath is written by whoever uploaded the model, and it is a mixture of documentation and advertising. Read the page in this order instead."}]},{"t":"h2","id":"one-the-licence-and-which-family-it-belongs-to","runs":[{"text":"One: the licence, and which family it belongs to"}]},{"t":"p","runs":[{"text":"The licence shows in the right-hand sidebar and in the front matter. There are roughly five families and they behave very differently."}]},{"t":"ul","items":[[{"text":"Permissive","b":true},{"text":": Apache-2.0, MIT, BSD. Commercial use, modification, redistribution, keep the notice. The easy case."}],[{"text":"Share-alike and copyleft","b":true},{"text":": anything CC-BY-SA, occasionally GPL. Your derivative may have to carry the same terms. That bites when you fine-tune."}],[{"text":"Non-commercial","b":true},{"text":": "},{"text":"cc-by-nc-4.0","code":true},{"text":", "},{"text":"cc-by-nc-sa-4.0","code":true},{"text":", and several custom research licences. Excellent models sit here. You may not put them in a paid product, and "},{"text":"my app is free but carries ads","i":true},{"text":" is not a question the card answers. Image people meet this constantly: "},{"text":"sd-turbo","code":true},{"text":" is the fastest thing you can run on a laptop CPU and its licence is non-commercial."}],[{"text":"Custom community licences","b":true},{"text":": Llama, Gemma and others. Mostly permissive in practice, with named conditions: an acceptable-use policy, an obligation to display attribution such as "},{"text":"Built with Llama","i":true},{"text":", a naming rule for derivative models, and in Llama’s case a clause that only engages above 700 million monthly active users. Read one properly once; they are short."}],[{"text":"other","b":true,"code":true},{"text":", or no licence field at all.","b":true},{"text":" Treat that as "},{"text":"unlicensed","i":true},{"text":", not as "},{"text":"free","i":true},{"text":". Absence of a licence is not permission."}]]},{"t":"p","runs":[{"text":"Two traps. "},{"text":"Gated is not a licence","b":true},{"text":": clicking "},{"text":"Agree and access repository","i":true},{"text":" gets you the files, and the licence still governs what you may then do with them. And "},{"text":"the model’s licence and its training data’s licence are separate questions","b":true},{"text":": a permissively licensed model trained on scraped material does not settle the second one for you."}]},{"t":"h2","id":"two-lineage-because-you-inherit-it","runs":[{"text":"Two: lineage, because you inherit it"}]},{"t":"p","runs":[{"text":"The "},{"text":"base_model","code":true},{"text":" field links a fine-tune to its parent, and the Hub draws the tree from it. This is the most useful thirty seconds on the page. A model presented as an original release is often three fine-tunes downstream of something whose terms, biases and context limit it silently inherits. If a card claims Apache-2.0 while its base model is under a non-commercial research licence, the card is wrong and the base wins. That happens more often than you would like, particularly on community merges."}]},{"t":"h2","id":"three-the-numbers-and-the-sentence-next-to-them","runs":[{"text":"Three: the numbers, and the sentence next to them"}]},{"t":"p","runs":[{"text":"An evaluation table tells you what the author chose to measure. Ask three things of any of them."}]},{"t":"ul","items":[[{"text":"Which benchmarks are missing?","b":true},{"text":" Six results with three obvious ones absent is a report, not an oversight."}],[{"text":"In what language and what format?","b":true},{"text":" Nearly all famous scores are English multiple-choice. If your work is Hindi customer messages or Yoruba speech, the number is close to meaningless for you."}],[{"text":"Compared with what, and when?","b":true},{"text":" Beating a 7B model is not the claim it sounds like if the comparison is two years old."}]]},{"t":"p","runs":[{"text":"Lesson nine is entirely about this, and "},{"text":"/learn/evaluating-ai","href":"https://addaly.com/learn/evaluating-ai"},{"text":" takes it further."}]},{"t":"h2","id":"four-the-limitations-section","runs":[{"text":"Four: the limitations section"}]},{"t":"p","runs":[{"text":"Scroll to "},{"text":"Bias, Risks and Limitations","i":true},{"text":". Most people skip it because it reads like boilerplate. It is usually where the author has written down, in plain language, the exact failure you are about to have: the languages it degrades on, the groups it misclassifies, the input length past which it falls apart, the fact that the speech model was trained on clean read audio and collapses on a phone call recorded in a market."}]},{"t":"p","runs":[{"text":"A card with no limitations section is not a model without limitations."}]},{"t":"h2","id":"five-the-files-tab-which-cannot-lie","runs":[{"text":"Five: the Files tab, which cannot lie"}]},{"t":"p","runs":[{"text":"The prose is written. The files are what exists."}]},{"t":"ul","items":[[{"text":"Size arithmetic.","b":true},{"text":" Parameters times bytes per parameter. A 7-billion-parameter model at 16-bit is about 14 GB; at 8-bit about 7 GB; at 4-bit about 4 GB. Add the file sizes up and check them against what the card implies."}],[{"text":"Prefer ","b":true},{"text":"safetensors","b":true,"code":true},{"text":" to ","b":true},{"text":".bin","b":true,"code":true},{"text":" or ","b":true},{"text":".pt","b":true,"code":true},{"text":".","b":true},{"text":" The older PyTorch formats serialise with Python’s own object format, and loading one can execute code embedded inside it. The safetensors format exists so that loading weights is only loading weights. If a repo offers both, take the safetensors."}],[{"text":"trust_remote_code=True","b":true,"code":true},{"text":" in the usage snippet means the repo ships custom Python that will run on your machine. Sometimes necessary. Always worth knowing you agreed to it."}],[{"text":"config.json","b":true,"code":true},{"text":" states the real architecture, hidden size and context length, whatever the prose above claims."}]]},{"t":"h2","id":"do-this-now","runs":[{"text":"Do this now"}],"role":"try"},{"t":"p","runs":[{"text":"Open the last model you used and answer three questions without scrolling to the demo: what is its licence, what is its base model, and name one stated limitation. If you cannot find all three, you have already learned something about that model."}]}],"check":{"question":[{"text":"A team wants to sell a product built on a fine-tuned model. Its card says "},{"text":"license: apache-2.0","code":true},{"text":", but the "},{"text":"base_model","code":true},{"text":" field points at a model released under a non-commercial research licence. What is the accurate reading?"}],"options":[{"text":[{"text":"The fine-tune is a new work with its own weights, so the uploader’s choice of Apache-2.0 governs and commercial use is fine."}],"correct":false,"tempting":[{"text":"Treats training as an act that resets the terms attached to what was trained on."}]},{"text":[{"text":"The non-commercial terms of the base flow down to the derivative, so the Apache-2.0 label on the card does not make it safe to sell."}],"correct":true,"tempting":null},{"text":[{"text":"Because the repository is not gated, no acceptance step was required, which means no restrictive terms are in force."}],"correct":false,"tempting":[{"text":"Confuses the access gate with the licence, when the gate only controls who gets the files."}]},{"text":[{"text":"The conflict makes the licensing void, so the ordinary copyright default applies and the weights can be used freely."}],"correct":false,"tempting":[{"text":"Assumes an unclear licence resolves in the user’s favour rather than removing permission."}]}],"order":[3,2,0,1],"why":null},"prev":{"slug":"searching-the-hub","title":"The search box is the worst way in","minutes":9},"next":{"slug":"reading-a-model-name","title":"A model’s name is a specification, if you can read it","minutes":8}}}