Hacker News new | ask | show | jobs
by MoonWalk 36 days ago
I'd appreciate an explanation of what "open weight model" means. Is it a "weight model" that is open, or a model with open weights (so should be "open-weight model"), or is it weights that can be applied to a model?

Are weights separable from a model? And if not, what is the point of saying "open-weight model" instead of just "open model?"

To the newcomer, it's hard to determine what the components of an AI system are from the throwing-around of these terms.

3 comments

As another commenter said a "model" is a file (or group of files, there's multiple formats available; GGUF format is all in one file for example). You download it to the hardware of your choice (ie your own desktop with NVIDIA GPU). You run the inference engine (llama-cpp, ollama,lm studio etc) and tell it where the downloaded model is and it runs inference (so you can start chatting with it, or run agents).

"Open weights model" means the developer made the model available for everyone for free. You can download it from huggingface.co for example and do whatever you want with it.

Why "open weights" and not "open source"? Because the "source code" for LLM would include things like training data, training methodologies and tools, so that you can do the training and produce the model (files) yourself. That would be like compiling from source code. Which is not done with these models, it's company's know-how, they only share the end result.

It's more analogous to "freeware" which is what we traditionally call freely distributed binary executable files. But people started calling them "open weights" instead and the term stuck.

A completely open model is one like the Allen Institute's Olmo model series:

https://allenai.org/olmo

The trained weights are open, the training software is open, and the data that goes into training the model is open.

Not many models are fully open.

An open weights model is one that has freely available trained weights, and maybe fine-tuning tools, but it lacks the original training data (and usually lacks the training software). These are the most commonly used local models, like Google's Gemma series, Meta's Llama, or Alibaba's Qwen.

So you can apply different weights to those "non-open" models?

Also, I've read a bunch of descriptions of AI components, but none of them has said what the weights are applied to in the model. I guess that every model contains a dictionary of words and phrases, and the weights map relationships between them?

All the descriptions simply talk about weights being applied to "input," but neglect to say what that input is compared to. If a user submits a query, are the words in the query weighed against the words in the model?

Can you recommend a primer on this whole process?

The weights are just numbers. I don't what technical background you have in other areas of computing, but I think that this is a good, short introduction that doesn't assume too much:

https://www.3blue1brown.com/lessons/mini-llm/

To quote part of it, Training a model can be thought of as tuning the dials on a really big machine. The way that a language model behaves is entirely determined by these many different continuous values, usually called parameters or weights.

Longer and slightly more technical, "Intro to Large Language Models" by Andrej Karpathy:

https://www.youtube.com/watch?v=zjkBMFhNj_g

Thanks for the reply. I've been programming professionally since the '90s (no background in ML or neural networks and whatnot), and I realize that the weights are numbers. So I was asking whether different weight sets can be applied to a model at will.

I'm really just trying to get a handle on the different layers so I can set up an environment and put it to work for limited coding assistance. For my purposes, I think an all-local setup is the best way for me to learn and should be enough for the coding tasks I have in mind. Mainly I want to automate tedious tasks away, like "modify these Swift classes' members and JSON deserialization routines to match what's coming out of my server API."

Thanks for the link! Reading it right now... and yes, this looks great. Appreciate it.

An "open weights" model is one where you can download all the data and the code that you need to run inference with that model on your own hardware (typically from Huggingface.co).

That data includes not only the "weights" but also various files with required information, e.g. the tokenizer, the chat template, files that describe the structure of the "weights", e.g. number of layers, the number of "experts", routing information, etc. All this information may be distributed in many files (e.g. *.safetensors files with weights, *.json files etc.) or it may be aggregated in a single container file (with the .gguf extension).

You can see an example of the files included in a very simple open weights LLM here:

https://huggingface.co/google/gemma-4-12B-it/tree/main

Bigger LLMs have much more files, especially much more *.safetensors files, which contain the "weights". The "weights", i.e. matrices of numbers that are used in the computational algorithm that generates the output tokens, constitute the bulk of the data needed to run a model, i.e. from a few gigabytes to a couple of terabytes, which is why the term "open-weights" is used, but in fact by this term it is understood that all data needed for running inference is open.

For an open weights LLM, you do not have access to the data set used for training the model or to the algorithms that have been used during the training of that model.

You can still do some fine-tuning of the model, using your own training methods and your own additional training data. To facilitate this, several open weights models offer not only a model version that can be used for inference to implement a chat application or an agentic workflow, but also a "base" or "raw" version that is not suitable for being used directly for inference but which is suitable for you to do a post-training/fine-tuning, to create a model more appropriate for your particular needs.

An "open weights" model is sufficient for most of the potential LLM users, because training a model is something that requires expertise, expensive hardware and a lot of time, so few would be able to do it even when given access to the necessary data.