Open source chess developers warn about a commercial engine based on Stockfish
lichess.org
lichess.org
> It is sad to see claims of innovation where there has been none, and claims of improvement in an engine that is weaker than its open-source origins. It is also sad to see people appropriating the open-source work and effort of others and claiming it as their own.
> Everyone is permitted and encouraged to modify and improve code from Stockfish/Leela while giving credit; that is the intent of open-source software. Everyone is allowed to copy Stockfish/Leela and sell them, provided the terms of the Stockfish/Leela license are met. But don’t pretend that the product being sold is something it isn’t.
Related Article on Lichess (which is also open source) about Fat Fritz 2: https://lichess.org/blog/YCvy7xMAACIA8007/fat-fritz-2-is-a-r...
See also https://blog.valerieaurora.org/2017/07/18/the-al-capone-theo....
[1] https://github.com/official-stockfish/Stockfish/compare/550f...
https://en.chessbase.com/feedback/fat-fritz-2-best-of-both-w...
ChessBase could easily comply with any open source license by linking the full source code, including the method they used to generate NN weights (if they think the license applies here as well), in a footnote.
It would still be a scam, because their claims of superiority, originality ("almost from scratch"), and innovation (see the funny part about technology from Japan) are wrong, and purposely so.
https://en.wikipedia.org/wiki/Attribution_(copyright)
For instance, let's look at the BSD license. It requires copyright notices in source code to be preserved. That means that it reserves the attribution right.
The original license required them in executable code; the two-clause version relaxes it; it doesn't demand any expression of attribution in the compiled code.
However, it does not appear to fully waive the attribution right; it requires the copyright notices and license clauses to remain in the source code. The compiled code is still the original author's copyright; nothing in the license says that it isn't.
If someone claims they developed it, it's infringement on the attribution copyright, even though they have the license-granted right to redistribute the code without making such deceptive claims.
IANAL, but if you're going to plagiarize, I suspect the safest bet is to pick something that has lapsed into the public domain, not something with copyrights and licenses in it.
What is the specific licensing issue here?
If this is about them not liking the product, fine, but don't dirty the open source ethos unless they are breaking the license. Part of the problem is the current HN headline perhaps.
I don't think under GPL the net weights have to be open sourced.
[1] https://blog.stockfishchess.org/post/643239805544792064/stat...
There seems to be confusion on what the issue is.
> “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
They did none of this and so are in copyright violation. And so should be sued.
Hello Ben!
Seriously, there's some attitude in open source circles that looks down on using the law to achieve compliance. Why bother putting up such a carefully thought-out legal document, and then whining on a blog when it's broken, instead of using it for its intended purpose -- a court of law?
Also, due to the ill view of patents on this forum, I imagine people here are simply put off from using the law and thus opt for the dopamine hit.
I'm not talking about HackerNews in particular here. There's a deep divide in the Linux kernel community, for instance, about GPL enforcement. Some people, often represented by the Software Freedom Conservancy, believe in "speak softly but carry a big stick": i.e., try by negotiation to get violators into compliance, but sue when negotiation fails. Other people (including, IIRC people like Greg KH) have at some point openly stated that they would never consider a lawsuit an appropriate course of action.
I'm not sure where the Leela Zero and Stockfish people stand on this; I just sort of assumed from the tone of the article that they were in the "never sue" camp. Maybe they're in the "I didn't realize we could do that" camp, in which case I'd strongly recommend they get in touch with SFC.
Because
* legal action is expensive, time-consuming, and may be simply impossible (or equivalently impracticable) depending on where you, or the other parties, reside/do business; and
* legal documents do not in actuality exist to enable someone's courtroom drama fantasies. In anticipation of civil disagreement, competent lawyers will advise that adversarial proceedings are a last resort, not a first measure, and draft documents accordingly.
That is not what Joost VandeVondele, current maintainer of the Stockfish project, posts:
> Recently, ChessBase has started distribution and sales of the Fat Fritz 2 chess engine. This chess engine is a Stockfish derivative, with a few lines of code modification (engine name, authors list and a few parameters), and a new set of NNUE net weights considered proprietary
> Selling Stockfish derivatives is possible with the GPLv3 license we grant, but not without requirements. In particular, the license states that if one redistributes a program derived from our work, the corresponding modifications of our sources and all information needed to build that program must be made available. Only after explicitly informing Albert Silver (the author of the net in Fat Fritz 2) of a license violation have matching C++ sources, but not the net weights, been made available. Obviously, we condemn the approach taken.
https://blog.stockfishchess.org/post/643239805544792064/stat...
Stockfish _is_ currently licensed under GPLv3. Chessbase is allowed to sell a modified copy, but only under the same license and they have to provide the source.
That would mean the training set and training algorithm (and random number generator seed) would have to be distributed under the GPL, too.
Add in parallel linking, and program behavior can change.
https://en.chessbase.com/post/how-a-neural-network-is-made
where the author tries to argue that doubling the neural network size in StockFish makes for an appreciable strength increase. However, only blitz results are shown. Looking at http://computerchess.org.uk/ccrl/4040/ we see Fat Fritz being only 2 ELO stronger than SF at blitz while losing out on longer time controls. This questionable tradeoff makes for a very poor excuse to charge $100 versus the free SF.
Public comments are once again blocked.
https://en.chessbase.com/post/chess-and-artificial-intellige... ChessBase founder Frederic Friedel talks about Fat Fritz
https://en.chessbase.com/post/interview-with-albert-silver-h... 1 hr video interview with Silver about his "path to inventing the [Fat Fritz] 2.0 engine"
https://en.chessbase.com/post/fat-fritz-2-0-the-new-number-1 "Fat Fritz has revolutionised the world of chess engines."
https://en.chessbase.com/post/fat-fritz-2-best-of-both-world...
https://en.chessbase.com/post/fat-fritz-ingenious-without-st...
https://en.chessbase.com/post/fat-fritz-and-the-1200 has a section "What differentiates Fat Fritz from Leela?"
https://en.chessbase.com/post/fat-fritz-defeats-stockfish-ma...
https://en.chessbase.com/post/fat-fritz-what-on-earth-is-tha... 2019 - Albert Silver describes in detail how he made his "AlphaZero clone" Fat Fritz
The GPL is clear here: you must release sources in the preferred form of the work for making changes in it. For a neural network, that is the training data, models and scripts - unless you really are just editing the final weights.
How would a judge distinguish the two?
The NN engine is just a substrate. It can't do anything on its own, and what it can do is vastly altered by the specific database of weights that are applied.
Additionally, as a proportion of what makes a NN system work, the weights are the vast, physical bulk of it.
I don't think any legal team employing a real ML expert witness would have any trouble arguing that the weights are the code.
Or like the bitstream to an fpga not the vhdl.
vhdl really is source, so it comes down to if nn weights really are more like vhdl or more like the bitstream.
It seems like the closest analog to a source for nn weights is training data and scripts.
In that case, it seems fine to license the weights seperately, just like the source to an image viewer or audio player, yet not some image that is displayed in it.
I'm not so sure about shipping them together under a single name as a single product. Maybe that act causes them to be obligated to provide the source to generate the nn weights?
I would love that, not because I value their data but because it would mean it was only their own attempt to mis-represent that now makes them have to give away their store. If they had simply packaged up their fork of Stockfish plus proprietary nn model honestly and in good faith, there would be no problem. Maybe they couldn't get $99 for that from very many people but, oh well!
If people want to drop 100$ on something that doesn't work as well as the free alternative, more power to them. People do it everyday in the real world.
For them to promote this "new" engine on their shop[0] feels wrong, I would expect them to meet certain quality threshold.
Lichess does mention this in the bottom of the post, which has the same feeling:
> Everyone is permitted and encouraged to modify and improve code from Stockfish/Leela while giving credit; that is the intent of open-source software. Everyone is allowed to copy Stockfish/Leela and sell them, provided the terms of the Stockfish/Leela license are met. But don’t pretend that the product being sold is something it isn’t.
The license allows to use the code, it does NOT allow taking the credit for things you did not do.
There's way too little credit given in open source in general, and I'm glad to see people fight back again (it was more customary to fight back before 2010).
And for those who say, hey you, there are prebuilt binaries, just download them! Check out this message [1]
" The binaries at the top of the table are fastest, but may not support all CPUs. If you don't know which CPU you have, you can go down the list and pick the first binary that does not crash. "
Yeah okay, a pragmatic set of instructions that can't fail...
From this I think we could see why a product built on top of stockfish might make sense, even if the linked product might not do as such.
Then, you will find a /lot/ of GUI interfaces for your favorite OS (Linux, Android, BSD, Win/Mac...), and probably it will have Stockfish included.
As such, you don't have to download or build stockfish, basically any free chess app that you will find will make it available to you. I can think of no reason to make a free chess interface without Stockfish.
https://blog.stockfishchess.org/post/643239805544792064/stat...
In fact, isn't the position evaluation pretty much the only thing that makes Stockfish different from Leela, the rest being just some tweaks on top of traversing the decision tree? And if it now seems that NN is better at this after all, what is the purpose of having these 2 engines at all, shouldn't all the future work just be moving over to Leela?
It uses clever integer arithmetic in the neural network, so you don't need a monster GPU to get good performance. I believe as of now it's using both the nn and the classic heuristic-based system for different situations.
> I believe as of now it's using both the nn and the classic heuristic-based system for different situations.
That's what I'm actually curious about. How does it combine these 2, precisely?
Edit: actually, reading more carefully the "Hybrid" section it kind of answers the last question. But still makes me wonder if the rest of the 2 engines cannot be combined.
(1) an evaluation function, that quantifies black/white advantage in a chess position.
(2) a search algorithm, that iteratively checks move sequences from a starting position using (1) and returns a recommendation of the best move to play.
Historically (1) was handcrafted, but it recently switched to a 'NNUE' neural network architecture (now it using different evaluation functions depending on how balanced the position is).
This is a good video if you want to understand how Stockfish works.
https://www.youtube.com/watch?v=pUyURF1Tqvg
"But if it turns out to be that heuristics-based approach has lost to NN, it isn't that clear anymore why these have to be 2 separate projects. At least, in terms of the rest of the engine."
Leela's evaluation function is a deep neural network, inference can only be carried out efficiently using GPU, whilst the Stockfish system has been optimised for a CPU-based computer architecture. The innovation of NNUE is that inference can be performed efficiently on a CPU, partly because the network is much smaller, and partly because the architecture is designed to be efficient at recomputing evaluations of only a single piece has changed.
Hope that comes to the website soon.
Everyone is permitted and encouraged to modify and improve code from Stockfish/Leela while giving credit; that is the intent of open-source software. Everyone is allowed to copy Stockfish/Leela and sell them, provided the terms of the Stockfish/Leela license are met. But don’t pretend that the product being sold is something it isn’t.
However, this article implies that nobody really cares about them releasing the source, as it seems that it does not have any interesting improvements.
Taking the work of others, erasing their name and inserting your own, is the kind of crap we expect from lousy cheaters in high school, not businesses who want to establish themselves in a market based on a centuries-old global institution.
Or Amazon Web Services
All that is really left is targeting people who can't or won't perform even the most cursory research relating to their purchases.
involved GPL code.
What's the issue? Did OS contributors suddenly realize you can make money off software? They're upset at marketers doing marketing?
Don't understand the downvotes. If they violated the terms of the license or did something illegal then sue, otherwise they're just whinging.
These seem to be their main gripes
One can (and most people do) condemn some actions even if they are technically legal.
Moreover, it infringe GPL. I would love if a country started enforcing GPL with huge fines. Company-destroying fines.
Have you used the internet or turned on a Tv in the last 20 years? Do you really think Dodge has "The Best Truck in the world" or that Verizon really has the "fastest 5g in America". This is marketing 101 for any business in the US.
As described in the article, selling it isn't the problem. Selling it and refusing to live up to the license obligations is.
To stockfish dev, you should change your license.
Anyone else is free to use said driver, but in this case if they make him faster they have to make their changes public because of the GPL
Related to this: the GPL's obligations about sharing the source, kick in if you're sharing the binary. It's not relevant whether you made any changes yourself. [0] For compliance, the lazy derivative product will have to make the source available. I wonder if they've done that.
[0] https://www.fsf.org/bulletin/2020/fall/why-providing-source-...