Read the license before you ship the weights
The word open, applied to model weights, tells you where the download button is and nothing more. I learned that the nearly-expensive way in April, and now I read license files the way I read lockfiles: before shipping, every time.
Three families cover most of what you'll actually meet. Apache 2.0 and MIT weights (Mistral Small is the flagship example, along with a decent slice of the Qwen line) let you do roughly anything, commercial use included, as long as the notices survive. Llama-style community licenses are free for most practical purposes but arrive with homework: acceptable-use policies, attribution requirements, clauses that only bite companies with hundreds of millions of users. Workable, but not open source in the strict sense, and in a contract review that difference stops being pedantic.
Then there's research-only. Same download page, same GGUF files, same one-line pull command. The weights don't refuse to load just because your use case turned commercial.
The license is the one part of a model no quant can shrink.
four days before handover
This spring we delivered an on-prem ticket-triage pipeline to a client. Everything local, which was half the sales pitch, since no ticket text was allowed to leave their racks. For the classifier I'd picked a research-preview model I'd been testing since March: simply the best thing that fit in 24 GB, beating my runner-up by about four points on our internal eval set. I stopped looking after that. Evaluated the weights with real care, the terms with none.
Four days before handover, a colleague on the review pass opened the repo and read one line of the LICENSE file aloud on the call. Research purposes only. Not ambiguous, not buried: sitting in a file I hadn't opened once in eleven weeks of daily use.
A model you can download is not automatically a model you can ship.
I won't name the model, because the fault wasn't theirs. We swapped in Mistral Small under Apache 2.0, re-ran everything, and ate a drop of about three points. The client never noticed the quality difference. A licensing dispute surfacing in their procurement office: that, they'd have noticed.
what the word open hides
A few traps I've collected since. The license tag on a Hugging Face model card is self-reported metadata; I've watched it disagree with the LICENSE file in the same repo, and the file wins. Gated repos add click-through terms that one teammate accepted months ago and nobody archived. Finetunes inherit the license of their base model, whatever the finetuner's README claims. And a third-party GGUF quant of a restricted model is still a derivative of a restricted model: re-uploading doesn't launder terms, which is one more reason to care where your quants come from.
One clause worth grepping for specifically: output restrictions. Some licenses limit using generations to train other models. If your pipeline distills anything, that sentence is about you.
the five-minute habit
- Open the actual LICENSE or terms file in the repo, not the sidebar tag.
- Search it for commercial, derivative, redistribute, output.
- Walk up to the base model and read its license too.
- If the repo is gated, save a copy of the click-through text with the project docs.
- Anything ambiguous goes to whoever signs the contract, not to a group chat.
That's the entire ritual. It now sits in our delivery checklist between the dependency audit and the pen-test booking, and it has flagged something real twice since April.
boring beats clever
For client deliverables my default is permissive-or-nothing, even at a measurable eval cost, and for European clients the license story stacks neatly onto the sovereignty argument they already care about. The honest cost of that stance: the Apache pool at any given size is thinner, and sometimes the community-licensed model is plainly better. For internal tooling I'll take a Llama-style license without a second thought. Its scary clauses target companies we'll never be.
The rule I actually follow is simpler than Apache-or-nothing: read it, then decide on purpose.