Part 3 · Open weights

LLMs · ~7 min

Open weights vs closed APIs

What open really means here, what the licence actually lets you do, and the honest trade.

Lessons 04 and 05 covered the big three providers and what you pay them. This lesson covers the other option: downloading the model and running it yourself. Before the mechanics of that, which is lesson 08, you need to know what you are actually downloading and what you are allowed to do with it. Those two questions are where most of the confusion lives.

Open means the weights, and nothing else is promised

A model, from lesson 01, is a very large pile of numbers. Those numbers are the weights. When a lab says a model is open, what they mean, almost always, is that you can download that file.

That is genuinely useful and it is much less than open source normally means.

What you usually getWhat you usually do not get
The weights, as a multi-gigabyte downloadThe training data, or a list of what was in it
The architecture and config, so you can load itThe training code and the exact recipe
A tokenizerThe compute to reproduce it — often millions of dollars
A model card describing evals and intended useAny warranty that it behaves a given way

In software terms it is closer to being handed a binary you are allowed to modify than being handed source. You can run it, quantise it, fine-tune it and serve it. You cannot rebuild it from scratch, and you cannot audit what went into it.

The right phrase is open weights. Say that and you will never mislead anyone, including yourself. A few genuinely open efforts do publish data and code as well, and they say so loudly, because it is rare.

The licence is the file you have to read

There is no single open model licence. There is a spectrum, and where a model sits on it decides whether you can build a business on it.

Where it sitsTypical termsWhat it means for you
Permissive — Apache-2.0, MITUse, modify, redistribute, commercially. Keep the notice.Effectively no constraint. This is the easy case.
Open weights with conditions — vendor community licencesCommercial use allowed, plus attached rules: acceptable-use policy, attribution or naming requirements, sometimes a scale threshold above which you must askUsable, but legal should read it, and you need to know which rules you are agreeing to
Non-commercial or research-only — CC-BY-NC and similarFree to experiment, not to sellFine for a prototype, fatal if it reaches production unnoticed
Weights available, restrictedDownload permitted, redistribution or hosting-as-a-service restrictedCheck specifically whether you may serve it to third parties

Four clauses are worth finding by name every time:

  • Commercial use. Allowed at all, and allowed at your size?
  • Output usage. May you use the model's outputs to train or fine-tune another model? Several licences say no. If your plan is to distil a big model into a small one, this clause is the plan.
  • Redistribution and hosting. May you ship the weights inside your product, or serve them to customers?
  • Acceptable use. A list of prohibited applications you are contractually agreeing to enforce.

Open weights is a distribution model, not a licence. The only thing that tells you what you may do is the file that ships with the download.

Two practical notes. The licence attaches to the version you downloaded, so a later release under different terms does not change your rights to the copy you have — and does not extend them either. And the blog post announcing a model is marketing; the LICENSE file in the weights repo is the agreement. Read the second one.

# The licence is metadata on every weights repo. Check it before you download 40 GB.
curl -s https://huggingface.co/api/models/mistralai/Mistral-7B-Instruct-v0.3 \
  | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('id'), '->', d.get('cardData',{}).get('license'))"

That gives you the declared identifier, which is the start. For anything with conditions attached, open the actual text.

The honest trade

Neither side wins. They trade different things, and which trade suits you depends on facts about your product, not about the models.

Closed APIOpen weights
Peak qualityThe frontier lives here firstTrails it, by a gap that keeps closing
Ops burdenNone. It is someone else's pagerYours: GPUs, drivers, serving, upgrades, on-call
Capacity planningNone. Rate limits instead (lesson 06)Entirely yours — you size for peak and pay for idle
Cost shapePer token. Zero at zero traffic, linear upwardPer GPU-hour. Flat, whether busy or idle
Data residencyData leaves your networkRuns in your VPC, your datacentre, or air-gapped
Model stabilityThe provider can deprecate it (lesson 10)The file on your disk is yours forever
Fine-tuningLimited to what the provider offersFull access — LoRA, full fine-tune, anything
Control of behaviourThe provider's refusal and safety layerYours, with the responsibility that brings

On the quality gap, be careful about how you hold it. The frontier is closed, and on the hardest work — long multi-step reasoning, tricky code, unusual languages, careful tool use — the difference is real and you will feel it. On ordinary production work — classify this ticket, extract these fields, summarise this call, answer from this document — the gap is far smaller, and often small enough not to matter. Most of what teams actually ship is the second kind.

Any specific number you read about that gap is a number about two specific model versions on one specific day, and it will be wrong within months. The stable version of the advice is: check the current public comparisons to build a shortlist, then decide with your own twenty cases. That is lesson 09.

The last thing to notice is that this is not an exclusive choice. A common and boring architecture is open weights handling the routine majority in your own infrastructure, escalating to a closed frontier model for the hard remainder. You get most of the cost and residency benefit, and you keep the ceiling. Lesson 09 shows the routing that makes it work.

Your win

  • Read the LICENSE file in the weights repo before you design anything around it.
  • Say open weights, not open source — the training data and recipe are almost never included.
  • Check the output-usage clause if you plan to train or distil your own model.
  • Choose closed for the frontier and zero ops, open for residency, stability and fine-tuning.
  • Judge the quality gap on your own eval, never on a leaderboard screenshot.

Retrieval practice — recall, don’t peek

  1. Question 1

    A model is described as open. What are you reliably being given?

  2. Question 2

    Which of these is a real reason to reach for open weights over a closed API?

  3. Question 3

    Before shipping a product built on a downloaded model, the first thing to check is...

  4. Question 4

    Apache-2.0 and a vendor community licence differ mainly in that...

  5. Question 5

    The most honest way to describe the quality gap between open weights and the closed frontier is...

Go deeper