Stockfish removes classical evaluation

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

syzygy
Posts: 5713
Joined: Tue Feb 28, 2012 11:56 pm

Re: Stockfish removes classical evaluation

Post by syzygy »

amchess wrote: Sat Jul 22, 2023 1:37 am The problem is just that!
I don't dispute the use of a pure nnue approach if the goal is just to increase elo, but why eliminate the classic evaluation function, simply as an extra possibility, a bit like Stockfish's handicap mode which, although it proved totally inadequate, was kept instead?
At the game force level, it is a simple "if": so basically, no functional change...
The classical evaluation is a lot of code, so I understand that it has been removed.
Why do I have to go to an old engine to use the classic evaluation function? I can use the same tool...
Having to use different tools for different purposes is quite normal.
If switching between engines in your GUI is too cumbersome, you can ask the developer of your GUI to make it easier.
Dann Corbit
Posts: 12791
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Stockfish removes classical evaluation

Post by Dann Corbit »

amchess wrote: Sat Jul 22, 2023 1:37 am The problem is just that!
I don't dispute the use of a pure nnue approach if the goal is just to increase elo, but why eliminate the classic evaluation function, simply as an extra possibility, a bit like Stockfish's handicap mode which, although it proved totally inadequate, was kept instead?
At the game force level, it is a simple "if": so basically, no functional change...
Why do I have to go to an old engine to use the classic evaluation function? I can use the same tool...
I need to make dozens of changes to the SF code for my purposes in multiple files.
For example, I need bitboard operations that do not exist in the code base, and I write the analysis to disk so that I can load it into my database in a very reliable way.
Several hundred lines of code are added with every SF update.
But I use WinMerge and the whole job to update the code takes five minutes.
In fact, I find that I can easily apply the process to any of the publicly available SF variants.
You could do something like that.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
syzygy
Posts: 5713
Joined: Tue Feb 28, 2012 11:56 pm

Re: Stockfish removes classical evaluation

Post by syzygy »

Dann Corbit wrote: Thu Jul 27, 2023 10:34 pm
amchess wrote: Sat Jul 22, 2023 1:37 am The problem is just that!
I don't dispute the use of a pure nnue approach if the goal is just to increase elo, but why eliminate the classic evaluation function, simply as an extra possibility, a bit like Stockfish's handicap mode which, although it proved totally inadequate, was kept instead?
At the game force level, it is a simple "if": so basically, no functional change...
Why do I have to go to an old engine to use the classic evaluation function? I can use the same tool...
I need to make dozens of changes to the SF code for my purposes in multiple files.
For example, I need bitboard operations that do not exist in the code base, and I write the analysis to disk so that I can load it into my database in a very reliable way.
Several hundred lines of code are added with every SF update.
But I use WinMerge and the whole job to update the code takes five minutes.
In fact, I find that I can easily apply the process to any of the publicly available SF variants.
You could do something like that.
Or you could create your own branch in github that tracks the official stockfish.

As far as I understand, amchess is anyway using a modified Stockfish, since standard Stockfish did not allow you to change the evaluation parameters of the classical evaluation. (But I suppose he does not update and compile it himself. Whoever does it for him can just decide to keep the classical evaluation. Or if amchess uses a modified SF version that does not get updated, then there should not be any problem for him in the first place. Or to put it bluntly: this whole problem that is being reported is mostly surrealistic to me.)
amchess
Posts: 366
Joined: Tue Dec 05, 2017 2:42 pm

Re: Stockfish removes classical evaluation

Post by amchess »

I'm ShashChess developer and I compile and build myself.
It will have classical eval ONLY for handicap mode.
If not, it will be PURE nnue as Stockfish.
I reiterate that I disagree with the community's choice because they have shown that they do not care at all about providing a useful tool for the OTB player to improve themselves.
Keeping the classic eval in the way described for ShashChess does not in fact fundamentally impact the playing strength.
syzygy wrote: Fri Jul 28, 2023 4:02 pm
Dann Corbit wrote: Thu Jul 27, 2023 10:34 pm
amchess wrote: Sat Jul 22, 2023 1:37 am The problem is just that!
I don't dispute the use of a pure nnue approach if the goal is just to increase elo, but why eliminate the classic evaluation function, simply as an extra possibility, a bit like Stockfish's handicap mode which, although it proved totally inadequate, was kept instead?
At the game force level, it is a simple "if": so basically, no functional change...
Why do I have to go to an old engine to use the classic evaluation function? I can use the same tool...
I need to make dozens of changes to the SF code for my purposes in multiple files.
For example, I need bitboard operations that do not exist in the code base, and I write the analysis to disk so that I can load it into my database in a very reliable way.
Several hundred lines of code are added with every SF update.
But I use WinMerge and the whole job to update the code takes five minutes.
In fact, I find that I can easily apply the process to any of the publicly available SF variants.
You could do something like that.
Or you could create your own branch in github that tracks the official stockfish.

As far as I understand, amchess is anyway using a modified Stockfish, since standard Stockfish did not allow you to change the evaluation parameters of the classical evaluation. (But I suppose he does not update and compile it himself. Whoever does it for him can just decide to keep the classical evaluation. Or if amchess uses a modified SF version that does not get updated, then there should not be any problem for him in the first place. Or to put it bluntly: this whole problem that is being reported is mostly surrealistic to me.)
syzygy
Posts: 5713
Joined: Tue Feb 28, 2012 11:56 pm

Re: Stockfish removes classical evaluation

Post by syzygy »

amchess wrote: Sat Jul 29, 2023 9:21 pm I'm ShashChess developer and I compile and build myself.
It will have classical eval ONLY for handicap mode.
If not, it will be PURE nnue as Stockfish.
I reiterate that I disagree with the community's choice because they have shown that they do not care at all about providing a useful tool for the OTB player to improve themselves.
Keeping the classic eval in the way described for ShashChess does not in fact fundamentally impact the playing strength.
Sorry, I did not know about ShashChess.

But what does it matter for ShashChess development whether current SF still includes the classical eval, if the classical eval is anyway no longer developed any further?

I'm not sure whether you use ShashChess to play with SF's evaluation parameters or whether you use a variant that stays closer to SF (it seems ShashChess does not have the UCI options you showed earlier, but maybe I am not looking in the right place). But in either case:
- regular SF does NOT allow you to play with the classical eval parameters, and it never did,
- so to play with those parameters, you MUST use a modified SF,
- if you insist on having ONE binary that is both the latest SF and lets you play with the classical eval parameters, then you or someone else MUST maintain a fork of SF,
- in that case there is no extra burden in maintaining a fork of SF-dev in which the classical eval is preserved.

So from whatever direction I look at this, I do not see a ground for complaints. (Unless you believe the official SF should have a long list of UCI options to let users tweak the params, but this has never been the case anyway.)

It is possible that future changes to SF will make it harder to keep the classical eval functioning, but then that just proves that it was a good decision by SF developers to get rid of that code, namely to reduce the cost of maintenance.
AndrewGrant
Posts: 1960
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Re: Stockfish removes classical evaluation

Post by AndrewGrant »

Just sounds to me like amchess needs to get more familiar with handling git merges.
amchess
Posts: 366
Joined: Tue Dec 05, 2017 2:42 pm

Re: Stockfish removes classical evaluation

Post by amchess »

AndrewGrant wrote: Sat Jul 29, 2023 11:05 pm Just sounds to me like amchess needs to get more familiar with handling git merges.
I have also been using git for a lifetime for work since I am a programmer.
amchess
Posts: 366
Joined: Tue Dec 05, 2017 2:42 pm

Re: Stockfish removes classical evaluation

Post by amchess »

syzygy wrote: Sat Jul 29, 2023 10:34 pm
amchess wrote: Sat Jul 29, 2023 9:21 pm I'm ShashChess developer and I compile and build myself.
It will have classical eval ONLY for handicap mode.
If not, it will be PURE nnue as Stockfish.
I reiterate that I disagree with the community's choice because they have shown that they do not care at all about providing a useful tool for the OTB player to improve themselves.
Keeping the classic eval in the way described for ShashChess does not in fact fundamentally impact the playing strength.
Sorry, I did not know about ShashChess.

But what does it matter for ShashChess development whether current SF still includes the classical eval, if the classical eval is anyway no longer developed any further?

I'm not sure whether you use ShashChess to play with SF's evaluation parameters or whether you use a variant that stays closer to SF (it seems ShashChess does not have the UCI options you showed earlier, but maybe I am not looking in the right place). But in either case:
- regular SF does NOT allow you to play with the classical eval parameters, and it never did,
- so to play with those parameters, you MUST use a modified SF,
- if you insist on having ONE binary that is both the latest SF and lets you play with the classical eval parameters, then you or someone else MUST maintain a fork of SF,
- in that case there is no extra burden in maintaining a fork of SF-dev in which the classical eval is preserved.

So from whatever direction I look at this, I do not see a ground for complaints. (Unless you believe the official SF should have a long list of UCI options to let users tweak the params, but this has never been the case anyway.)

It is possible that future changes to SF will make it harder to keep the classical eval functioning, but then that just proves that it was a good decision by SF developers to get rid of that code, namely to reduce the cost of maintenance.
I don't care if Stockfish has removed the classical evaluation function. In fact, it is completely independent from the nnue. ShashChess has the parameters of Stockfish and those derived from Shashin's theory, in addition to R-learning and other minor additions. Until it was removed, Stockfish allowed disabling the neural network to play only with the classical evaluation function. Now, you just need to enable the classical evaluation function only for handicap mode and use the pure nnue approach otherwise, which is what Stockfish currently does. This is not a complaint, but just a bitter realization: the vast majority of chess programmers are only competing to see "who has the longest one" and are not remotely interested in improving the human player. Even Magnus Carlsen, with an Elo rating of around 2850, how can he progress by competing against an alien with a 3500 Elo rating? To improve, you do need a stronger player, but not like this, otherwise it's just depressing. This is the purpose of a true handicap mode: to simulate the thinking of a human player and not make increasingly frequent random mistakes as the Elo rating decreases. Therefore, ShashChess will continue to preserve the classical evaluation function for this purpose only. In my opinion, scientific research makes no sense if it doesn't improve people's lives; it would only be the result of hypertrophied ego and narcissism. Moreover, I don't even enjoy programming anymore, since nnue is flattening the maximum playing strength and reaching a saturation bottleneck. However, a lot can be done at the educational level, and that's the direction I'm heading in.
syzygy
Posts: 5713
Joined: Tue Feb 28, 2012 11:56 pm

Re: Stockfish removes classical evaluation

Post by syzygy »

amchess wrote: Mon Jul 31, 2023 10:54 amI don't care if Stockfish has removed the classical evaluation function.
Then what is the point of the discussion?
This is not a complaint, but just a bitter realization: the vast majority of chess programmers are only competing to see "who has the longest one" and are not remotely interested in improving the human player. Even Magnus Carlsen, with an Elo rating of around 2850, how can he progress by competing against an alien with a 3500 Elo rating?
If Magnus wants a weaker opponent, then there are plenty of chess engines that will suit his needs, including older versions of Stockfish.

The point of improving SF is indeed to improve SF.
Therefore, ShashChess will continue to preserve the classical evaluation function for this purpose only.
I do not think anyone will criticise you for that decision.

I fully agree that there is room for weaker engines and for more customisable engines. It is just not the goal of Stockfish to be that engine.
Moreover, I don't even enjoy programming anymore, since nnue is flattening the maximum playing strength and reaching a saturation bottleneck. However, a lot can be done at the educational level, and that's the direction I'm heading in.
Time to look for a different hobby.
Last edited by syzygy on Mon Jul 31, 2023 3:28 pm, edited 1 time in total.
syzygy
Posts: 5713
Joined: Tue Feb 28, 2012 11:56 pm

Re: Stockfish removes classical evaluation

Post by syzygy »

[misclicked]