The Stockfish team posts release notes and news for the open-source chess engine, including NNUE evaluation and its GPL lawsuit with ChessBase.
HN links it for Stockfish's engine strength, its NNUE neural evaluation, and its long-standing GPLv3 licensing, with TCEC matches also discussed.
I've read through this thread and I haven't seen a simple summary of the situation as it stands with respect to copying and the GPL violation. Here's what I believe to have happened:
1. ChessBase began selling the Fat Fritz 2 chess engine.
2. It came to the attention of Stockfish developers that FF2 is a Stockfish derivative "with a few lines of code modification". [1]
3. Stockfish notified ChessBase of the violation and demanded that they comply with the terms of the GPL. ChessBase responded by releasing the source code of Fat Fritz 2, but not the neural net weights created for use and distributed with FF2. [1]
4. Key Stockfish developers regard the distribution of FF2 without the neural net weights used in creating the work to be a violation of their rights under the GPL. ChessBase (apparently) disagree - I don't see a press release on their website to confirm their take on this.
This question appears to hinge on whether the weights constitute part of a derived work under the GPL. This may depend on whether the weights are "output" from running a covered program. Under the GPL 3, the output of a program is only covered only if, given its content, it constitutes a covered work (i.e. a part of a GPL 3 covered program).
The exact technical details still aren't clear to me. If ChessBase is willing to release any software that actually ships with FF2 (e.g. the NNUE file) under the GPL, I think that would cure their violation even if they don't release the code used to…
> 1. ChessBase was in violation of the GPL, but then cured the violation by releasing code (https://stockfishchess.org/blog/2021/statement-on-fat-fritz-...). But the post claims they refused to release the weights.
They mean that the weights are not open sourced. If the weights are distributed separately and not considered part of the "Corresponding Source", that may not be a GPL violation, and the blog post does not imply that it is. (They only say that they condemn the approach.)
> 2. But the weights are already being released with the program they're selling. Otherwise, how would the program run? Why would they refuse, when they already distribute the weights with every copy of the program? I thought maybe Fat Fritz 2 was a cloud-hosted solution (weights aren't provided locally), but https://en.chessbase.com/post/running-leela-and-fat-fritz-on... seems to indicate it can run on a laptop with a GPU.
The GPL can be interpreted to require that all the input necessary to reproduce and run a functioning binary must be distributed. If the weights and engine are integrated in one binary, and not "all the source code needed to generate, install, and run the object code and to modify the work, including scripts to control those activities" is provided, that could be a GPL violation. This does not apply if the weights are distributed separately under a different license.
> I'm on Stockfish's side here, because I suspect ChessBase simply duplicated StockFish's training…
Surprisingly, I find myself slightly skeptical of Stockfish's claims, which is... a disquieting feeling. Could someone help me out by finding the flaw in my logic?
1. ChessBase was in violation of the GPL, but then cured the violation by releasing code (https://stockfishchess.org/blog/2021/statement-on-fat-fritz-2/). But the post claims they refused to release the weights.
2. But the weights are already being released with the program they're selling. Otherwise, how would the program run? Why would they refuse, when they already distribute the weights with every copy of the program? I thought maybe Fat Fritz 2 was a cloud-hosted solution (weights aren't provided locally), but https://en.chessbase.com/post/running-leela-and-fat-fritz-on-your-notebook seems to indicate it can run on a laptop with a GPU.
I suspect Stockfish may be trying to argue that whatever code was used to generate the weights is also covered under GPL, and that ChessBase is in violation because they refuse to release this code. I hope they don't try that argument, because it's certainly not true; you're free to train a chess engine however you want, insert the weights into a GPL'd program, and then are under no obligation to release the code to train the weights.
3. Setting aside the question of copyright entirely, it's unclear that Fat Fritz 2 is actually worse. Stockfish references https://www.sp-cc.de/ as an independent rating system, but if you look at the detail view…
To elaborate, in the Top Chess Engine Championship (which is also used as a benchmark in the AlphaZero vs Stockfish comparison) Stockfish has won all seasons since May 2020[1,2]. A common runner up for those seasons is LCZero[3], which is an engine that is derived from/a reimplementation of AlphaZero. Stockfish is also ahead of LCZero in Fischer random chess (as hosted at TCEC) winning 4 out of the 5 FRC tournaments.
As for how close Stockfish 8 is to a current version of Stockfish, Stockfish 15 has ~400 more ELO than Stockfish 8 as measured in their own self-tests[4].
However, when making these comparisons between AlphaZero and Stockfish it might be tempting to frame it as machine-learning-engine vs classical-engine, which is not true. Stockfish incorporates a neural network when evaluating chess positions[5].
[1]: https://en.wikipedia.org/wiki/Top_Chess_Engine_Championship#Tournament_results
[2]: https://en.wikipedia.org/wiki/Stockfish_(chess)#Top_Chess_Engine_Championship
[3]: https://en.wikipedia.org/wiki/Leela_Chess_Zero
[4]: https://github.com/glinscott/fishtest/wiki/Regression-Tests#fishtest-progression
[5]: https://stockfishchess.org/blog/2020/introducing-nnue-evaluation/
Yes there is also another factor in a chess position which is not included in this encoding which is who is next to move.
That being said the basic idea is really interesting. I'd love to see a fully opensource competitor to chessbase. For people who don't know, chessbase is a subscription service which gives you a windows-only chess analysis platform and game database. It allows you to do advanced searches (eg I want to find games by 2500+ rated players in the Caro-Kann where black has a pawn on c5 and a bishop on e7 or whatever) which advanced players use to do "prep" (deep positional analysis typically of opening positions) which they save in reams of files prior to memorization. It's probably not an exaggeration to say nearly all strong players and serious improvers subscribe to it.
Chessbase made themselves persona non grata in the opensource world by apparently ripping off parts of stockfish and selling it under the names "Fat Fritz" and "Houdini"[1] and even were that not the case it would be great to have mac and linux opensource options.
[1] https://stockfishchess.org/blog/2022/public-court-hearing-soon/
We saw this in Chess engines about 20 years back (when they started getting seriously strong) they play Chess incredibly well but looks very little like what a human playing does.
It was fascinating to watch the changes in chess theory through that period as the machines validated or invalidated concepts and ideas that GM's had posited but been unable to prove one way or the other.
John Speelman wrote an intro to The Mammoth Book of Chess (that thing was awesome,I think I wore out three copies) which (paraphrasing horribly) that Chess is a realm of pure thought and that computers play it the way an alien might.
The best engines on commodity hardware now require offering pawn odds for a top human to even have a chance and their strength is accelerating[1] (stockfish now has a distributed test architecture to test for regressions which is incredibly cool[2])
[1] http://www.chess.com/article/view/how-rybka-and-i-tried-to-beat-the-strongest-chess-computer-in-the-world (Rybka was/is one of the strongest engines and in concert with a human it still couldn't beat Stockfish).
[2] https://stockfishchess.org/get-involved/