{"course":{"slug":"open-models","title":"The Open Model Ecosystem","url":"https://addaly.com/learn/open-models","level":"intermediate","track":"deep"},"lesson":{"slug":"reading-the-licence","title":"Reading the Licence Before You Ship","url":"https://addaly.com/learn/open-models/reading-the-licence","position":2,"of":71,"minutes":9,"answer":"A licence travels with every fine-tune and every download; check the chain, not the badge on the page.","keyIdea":"A licence travels with every fine-tune and every download; check the chain, not the badge on the page."},"body":{"format":"markdown","text":"I am not a lawyer and this is not legal advice. It is a list of the things that surprise people, so you know what to hand to someone who is.\n\n## Three families\n\n**Genuine open source.** Apache 2.0 or MIT. Mistral's main line, Qwen3, DeepSeek-R1, Phi-4, OLMo, IBM Granite, SmolLM. Keep the notice, do what you like. No user caps, no acceptable use policy, no naming rules. If two candidates are close and one is Apache 2.0, that is a real tiebreaker.\n\n**Bespoke community licences.** Llama, Gemma, and some Qwen releases. Free for nearly everyone, with conditions attached. Written by the lab, not by lawyers who expected you to redistribute.\n\n**Non-commercial or non-production.** Cohere's Command R family under CC-BY-NC. Mistral's Codestral under a non-production licence. A large share of research fine-tunes on Hugging Face. You can prototype. You cannot ship.\n\n## The clauses people miss\n\n**User thresholds.** Llama's licence stops being free above 700 million monthly active users, measured before the model's release date. Some Qwen releases use 100 million. This will not bite you. It bites the company that acquires you, and it is the first thing their diligence checks.\n\n**Naming and attribution.** Llama requires \"Built with Llama\" displayed prominently, a specific attribution line in your notice file, and any model you derive from it must have a name that *starts with* \"Llama\". Teams discover this after printing the branding.\n\n**Acceptable use policies incorporated by reference.** Gemma's terms attach a prohibited use policy that Google can update, and reserve Google's right to restrict use it believes violates that policy. You are agreeing to a document that can change after you ship.\n\n**Territory.** Llama 4's licence carried a restriction on the multimodal models for entities domiciled in the EU. Read the geography clause if you have European users or a European entity.\n\n**What you may do with outputs.** Some licences restrict using generations to train other models. Llama's recent terms allow it if the resulting model's name begins with \"Llama\". If your plan is to generate synthetic training data, this clause is the whole plan.\n\n## The inheritance trap\n\nThis is the one that catches careful people.\n\n`DeepSeek-R1-Distill-Llama-70B` is a Llama model that was trained on R1's reasoning traces. DeepSeek-R1 itself is MIT. The distill is not. It carries Meta's community licence, because the base weights are Meta's.\n\nA fine-tune inherits the base model's licence. So does a fine-tune of a fine-tune. Follow the chain to the bottom:\n\n> Figure: Tracing a licence to the bottom of the chain. Steps: 1. Open the model card (Front matter first: license, base_model, and whether the repo is gated); 2. Read the LICENSE and the use policy (User caps, naming rules, territory clauses, and what you may do with outputs); 3. Open the parent named by base_model (A fine-tune inherits the base's terms, and so does a fine-tune of a fine-tune); 4. Repeat until there is no base_model field (That release is the bottom, unless the card's prose names a parent the metadata leaves out, as the 70B distill's does); 5. Check the training data separately (Outputs scraped from a closed API carry that API's terms; a permissive tag does not repair it); 6. Write two lines into the inventory (Model, revision, licence, restrictions, date accepted, where it runs). DeepSeek-R1 is MIT. DeepSeek-R1-Distill-Llama-70B is not, because the base weights are Meta's. The badge on the page is the first link in the chain, never the answer.\n\n```bash\n# the front matter of a model card names its parent\nhf download deepseek-ai/DeepSeek-R1-Distill-Llama-70B README.md --local-dir ./card\nhead -20 ./card/README.md    # look for: license:, base_model:\n```\n\nRepeat on the parent. Keep going until you reach something with no `base_model` field, but do not trust the metadata alone. On this very model the front matter says `license: mit` and names no base model at all; only the License section of the card says it is derived from Llama 3.3 70B Instruct and originally under Meta's Llama 3.3 licence. Uploaders' metadata can be wrong, so read the card's prose and the base model's own licence too.\n\nAnd separately from the weights: the *data* a fine-tune was trained on has its own terms. A great many popular community fine-tunes were trained on outputs scraped from a closed commercial API, which typically breaches that API's terms of service. An Apache 2.0 badge on the resulting weights does not repair that.\n\n## A five minute check\n\nFor every model you are seriously considering:\n\n```bash\nhf download <org>/<model> LICENSE USE_POLICY.md README.md --local-dir ./chk\n```\n\nRead the LICENSE. Read the use policy. Read the README front matter for `license`, `base_model`, and whether the repo is gated.\n\nOn gated repos: clicking \"agree\" on Hugging Face is you entering an agreement. A CI job with a shared token that inherits your acceptance is not a separate acceptance, and mirroring the weights to a public bucket to dodge the gate breaks the terms you agreed to.\n\n## Write it down once\n\nKeep a two-line-per-model inventory in the repo:\n\n```\nQwen/Qwen3-8B | rev 9a3f21c | Apache-2.0 | no restrictions | prod: summarizer\ngoogle/gemma-3-4b-it | rev 4b1e07d | Gemma Terms | prohibited-use policy, updatable | prod: on-device\n```\n\nIt takes ten minutes to start and saves a bad week later, when someone asks what you are shipping and the honest answer has to be assembled from memory."},"check":{"question":"You fine-tune DeepSeek-R1-Distill-Llama-8B on your own support tickets and want to release the result publicly as \"Acme-Assist\". Which statement is correct?","options":[{"text":"The distill is built on Llama weights, so Meta's community licence and its naming rules apply to your release; R1's MIT licence does not cover it.","correct":true},{"text":"DeepSeek-R1 is MIT licensed, so anything distilled from it inherits MIT and you can release freely.","correct":false,"tempting":"Assumes the teacher model's licence flows to the student, when the licence follows the base weights that were actually trained."},{"text":"Because you fine-tuned it on your own data, the resulting weights are a new original work under whatever licence you choose.","correct":false,"tempting":"Treats a derivative work as an original one; fine-tuning modifies licensed weights rather than replacing them."},{"text":"MIT and community licences are compatible, so you can pick whichever of the two suits your release best.","correct":false,"tempting":"Treats licence selection as a preference rather than an obligation determined by the upstream terms."}]},"prev":{"slug":"open-weights-is-not-open-source","title":"Open Weights Is Not Open Source","url":"https://addaly.com/learn/open-models/open-weights-is-not-open-source"},"next":{"slug":"why-labs-release-weights","title":"Why a lab gives away a model","url":"https://addaly.com/learn/open-models/why-labs-release-weights"},"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) 'Reading the Licence Before You Ship', in The Open Model Ecosystem. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/open-models/reading-the-licence (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":"Reading the Licence Before You Ship","courseTitle":"The Open Model Ecosystem","module":{"index":1,"slug":"what-open-really-means","title":"What open actually means"},"answer":null,"keyIdea":"A licence travels with every fine-tune and every download; check the chain, not the badge on the page.","hero":{"kind":"figure","figure":{"t":"figure","label":"Figure","figure":{"type":"flow","steps":[{"label":"Open the model card","detail":"Front matter first: license, base_model, and whether the repo is gated"},{"label":"Read the LICENSE and the use policy","detail":"User caps, naming rules, territory clauses, and what you may do with outputs"},{"label":"Open the parent named by base_model","detail":"A fine-tune inherits the base’s terms, and so does a fine-tune of a fine-tune"},{"label":"Repeat until there is no base_model field","detail":"That release is the bottom, unless the card’s prose names a parent the metadata leaves out, as the 70B distill’s does"},{"label":"Check the training data separately","detail":"Outputs scraped from a closed API carry that API’s terms; a permissive tag does not repair it"},{"label":"Write two lines into the inventory","detail":"Model, revision, licence, restrictions, date accepted, where it runs"}],"title":"Tracing a licence to the bottom of the chain","caption":"DeepSeek-R1 is MIT. DeepSeek-R1-Distill-Llama-70B is not, because the base weights are Meta’s. The badge on the page is the first link in the chain, never the answer."},"alt":"Figure: Tracing a licence to the bottom of the chain. Steps: 1. Open the model card (Front matter first: license, base_model, and whether the repo is gated); 2. Read the LICENSE and the use policy (User caps, naming rules, territory clauses, and what you may do with outputs); 3. Open the parent named by base_model (A fine-tune inherits the base’s terms, and so does a fine-tune of a fine-tune); 4. Repeat until there is no base_model field (That release is the bottom, unless the card’s prose names a parent the metadata leaves out, as the 70B distill’s does); 5. Check the training data separately (Outputs scraped from a closed API carry that API’s terms; a permissive tag does not repair it); 6. Write two lines into the inventory (Model, revision, licence, restrictions, date accepted, where it runs). DeepSeek-R1 is MIT. DeepSeek-R1-Distill-Llama-70B is not, because the base weights are Meta’s. The badge on the page is the first link in the chain, never the answer."}},"blocks":[{"t":"p","runs":[{"text":"I am not a lawyer and this is not legal advice. It is a list of the things that surprise people, so you know what to hand to someone who is."}],"lede":true},{"t":"h2","id":"three-families","runs":[{"text":"Three families"}]},{"t":"p","runs":[{"text":"Genuine open source.","b":true},{"text":" Apache 2.0 or MIT. Mistral’s main line, Qwen3, DeepSeek-R1, Phi-4, OLMo, IBM Granite, SmolLM. Keep the notice, do what you like. No user caps, no acceptable use policy, no naming rules. If two candidates are close and one is Apache 2.0, that is a real tiebreaker."}]},{"t":"p","runs":[{"text":"Bespoke community licences.","b":true},{"text":" Llama, Gemma, and some Qwen releases. Free for nearly everyone, with conditions attached. Written by the lab, not by lawyers who expected you to redistribute."}]},{"t":"p","runs":[{"text":"Non-commercial or non-production.","b":true},{"text":" Cohere’s Command R family under CC-BY-NC. Mistral’s Codestral under a non-production licence. A large share of research fine-tunes on Hugging Face. You can prototype. You cannot ship."}]},{"t":"h2","id":"the-clauses-people-miss","runs":[{"text":"The clauses people miss"}]},{"t":"p","runs":[{"text":"User thresholds.","b":true},{"text":" Llama’s licence stops being free above 700 million monthly active users, measured before the model’s release date. Some Qwen releases use 100 million. This will not bite you. It bites the company that acquires you, and it is the first thing their diligence checks."}]},{"t":"p","runs":[{"text":"Naming and attribution.","b":true},{"text":" Llama requires “Built with Llama” displayed prominently, a specific attribution line in your notice file, and any model you derive from it must have a name that "},{"text":"starts with","i":true},{"text":" “Llama”. Teams discover this after printing the branding."}]},{"t":"p","runs":[{"text":"Acceptable use policies incorporated by reference.","b":true},{"text":" Gemma’s terms attach a prohibited use policy that Google can update, and reserve Google’s right to restrict use it believes violates that policy. You are agreeing to a document that can change after you ship."}]},{"t":"p","runs":[{"text":"Territory.","b":true},{"text":" Llama 4’s licence carried a restriction on the multimodal models for entities domiciled in the EU. Read the geography clause if you have European users or a European entity."}]},{"t":"p","runs":[{"text":"What you may do with outputs.","b":true},{"text":" Some licences restrict using generations to train other models. Llama’s recent terms allow it if the resulting model’s name begins with “Llama”. If your plan is to generate synthetic training data, this clause is the whole plan."}]},{"t":"h2","id":"the-inheritance-trap","runs":[{"text":"The inheritance trap"}]},{"t":"p","runs":[{"text":"This is the one that catches careful people."}]},{"t":"p","runs":[{"text":"DeepSeek-R1-Distill-Llama-70B","code":true},{"text":" is a Llama model that was trained on R1’s reasoning traces. DeepSeek-R1 itself is MIT. The distill is not. It carries Meta’s community licence, because the base weights are Meta’s."}]},{"t":"p","runs":[{"text":"A fine-tune inherits the base model’s licence. So does a fine-tune of a fine-tune. Follow the chain to the bottom:"}]},{"t":"code","lang":"bash","label":"Bash","text":"# the front matter of a model card names its parent\nhf download deepseek-ai/DeepSeek-R1-Distill-Llama-70B README.md --local-dir ./card\nhead -20 ./card/README.md    # look for: license:, base_model:"},{"t":"p","runs":[{"text":"Repeat on the parent. Keep going until you reach something with no "},{"text":"base_model","code":true},{"text":" field, but do not trust the metadata alone. On this very model the front matter says "},{"text":"license: mit","code":true},{"text":" and names no base model at all; only the License section of the card says it is derived from Llama 3.3 70B Instruct and originally under Meta’s Llama 3.3 licence. Uploaders’ metadata can be wrong, so read the card’s prose and the base model’s own licence too."}]},{"t":"p","runs":[{"text":"And separately from the weights: the "},{"text":"data","i":true},{"text":" a fine-tune was trained on has its own terms. A great many popular community fine-tunes were trained on outputs scraped from a closed commercial API, which typically breaches that API’s terms of service. An Apache 2.0 badge on the resulting weights does not repair that."}]},{"t":"h2","id":"a-five-minute-check","runs":[{"text":"A five minute check"}]},{"t":"p","runs":[{"text":"For every model you are seriously considering:"}]},{"t":"code","lang":"bash","label":"Bash","text":"hf download <org>/<model> LICENSE USE_POLICY.md README.md --local-dir ./chk"},{"t":"p","runs":[{"text":"Read the LICENSE. Read the use policy. Read the README front matter for "},{"text":"license","code":true},{"text":", "},{"text":"base_model","code":true},{"text":", and whether the repo is gated."}]},{"t":"p","runs":[{"text":"On gated repos: clicking “agree” on Hugging Face is you entering an agreement. A CI job with a shared token that inherits your acceptance is not a separate acceptance, and mirroring the weights to a public bucket to dodge the gate breaks the terms you agreed to."}]},{"t":"h2","id":"write-it-down-once","runs":[{"text":"Write it down once"}]},{"t":"p","runs":[{"text":"Keep a two-line-per-model inventory in the repo:"}]},{"t":"code","lang":"","label":"Text","text":"Qwen/Qwen3-8B | rev 9a3f21c | Apache-2.0 | no restrictions | prod: summarizer\ngoogle/gemma-3-4b-it | rev 4b1e07d | Gemma Terms | prohibited-use policy, updatable | prod: on-device"},{"t":"p","runs":[{"text":"It takes ten minutes to start and saves a bad week later, when someone asks what you are shipping and the honest answer has to be assembled from memory."}]}],"check":{"question":[{"text":"You fine-tune DeepSeek-R1-Distill-Llama-8B on your own support tickets and want to release the result publicly as “Acme-Assist”. Which statement is correct?"}],"options":[{"text":[{"text":"The distill is built on Llama weights, so Meta’s community licence and its naming rules apply to your release; R1’s MIT licence does not cover it."}],"correct":true,"tempting":null},{"text":[{"text":"DeepSeek-R1 is MIT licensed, so anything distilled from it inherits MIT and you can release freely."}],"correct":false,"tempting":[{"text":"Assumes the teacher model’s licence flows to the student, when the licence follows the base weights that were actually trained."}]},{"text":[{"text":"Because you fine-tuned it on your own data, the resulting weights are a new original work under whatever licence you choose."}],"correct":false,"tempting":[{"text":"Treats a derivative work as an original one; fine-tuning modifies licensed weights rather than replacing them."}]},{"text":[{"text":"MIT and community licences are compatible, so you can pick whichever of the two suits your release best."}],"correct":false,"tempting":[{"text":"Treats licence selection as a preference rather than an obligation determined by the upstream terms."}]}],"order":[2,1,0,3],"why":null},"prev":{"slug":"open-weights-is-not-open-source","title":"Open Weights Is Not Open Source","minutes":7},"next":{"slug":"why-labs-release-weights","title":"Why a lab gives away a model","minutes":9}}}