Hacker News new | ask | show | jobs
by fddhjjj 1796 days ago
> Stockfish claims they haven't released their NN weights. But that claim makes no sense. They distribute the weights with every copy of Fat Fritz. Otherwise, the product wouldn't work

There was a comment addressing that yesterday https://news.ycombinator.com/item?id=27901876

The form matters.

1 comments

I agree that the form matters. But what exactly does Stockfish want? It's not clear even to me, as a student of ML, what it means to release NN weights. Does it count if they release fp16 weights? Those are often used for inferencing, but not for training. Do they have to release optimizer state? You normally strip that from checkpoints, since otherwise it'd be a gargantuan checkpoint. Does it need to be loadable via pickle? Torch? Tensorflow? Is it sufficient to just dump the weights as one bigass binary blob that you can load with numpy.frombuffer? (How do we know that there isn't such a file in Fat Fritz 2 already?)

I don't know; I want to agree, but this is fraught with peril.

> It's not clear even to me, as a student of ML, what it means to release NN weights.

While such questions seem reasonable the first time you encounter them, they have been thoroughly answered for similar things: For example, for source code, releasing the code handwritten on toilet paper is not a "preferred form of modification" (as the GPL requires). A public web site with ASCII code is. In the past, a CD shipped by post also was, but I don't know if the situation there is changing.

So, for the weights of a deep network, it's pretty clear that any reasonably documented format for loading the weights into memory would do. That could be one of the well-established matrix/tensor blob formats, or a pickle file, or HDF5, or whatever. Nobody thinks that Stockfish would fight them over the exact format chosen.

As for the training parameters etc., and the questions you get into there, those seem indeed to be open questions when it comes to FOSS and deep learning. Debian has started taking its first steps in thinking about how this all relates to the Debian Free Software Guidelines, for example: https://salsa.debian.org/deeplearning-team/ml-policy

> I don't know; I want to agree, but this is fraught with peril.

Yes, the legal world often is. It's full of words like "reasonable", "expectation", "preferred", etc. But I think you're overcomplicating the matter. There is definitely a gray zone here, but ChessBase GmbH are not in that gray zone, they're clearly far into the wrong.

> Does it need to be loadable via pickle? Torch? Tensorflow?

If they don’t use pickle, they shouldn’t release in pickle format. They should release in a format such that you can take the source they release and use the model weights as required “installation information” and run the software. Probably the native format for the app.

We don’t know if they do or they don’t. That would be a matter to be decided in the court. Likewise you might argue the weights are not installation information in the GPL sense. Stock fish asserts they don’t release weights. Chess base hasn’t commented. I can’t find them.

Simply stating “the software runs! The weights must already be distributed” isn’t correct in the sense that the GPL demands. By analogy, “the software runs the source must already be distributed” isn’t correct in the same way.

I looked I don’t even see where they are releasing the code. Is it this? https://github.com/DanielUranga/Stockfish