Joerg Oster wrote: ↑Sun Aug 09, 2020 1:20 pm
It is especially in unbalanced positions where classic eval seems to lack some knowledge,
at least that was my impression from many examples given in the past.
I suppose any gains from using the classic eval come solely from the time saving.
This suggests that any simplification of the classic eval will now pass in fishtest because it will save even more time.
Joerg Oster wrote: ↑Sun Aug 09, 2020 1:20 pm
It is especially in unbalanced positions where classic eval seems to lack some knowledge,
at least that was my impression from many examples given in the past.
I suppose any gains from using the classic eval come solely from the time saving.
This suggests that any simplification of the classic eval will now pass in fishtest because it will save even more time.
Btw, I'm not really sure why it speeds up since skipping the NNUE eval would seem to break the incremental updating (at least if the parent node did not get NNUE-evaluated).
Joerg Oster wrote: ↑Sun Aug 09, 2020 1:20 pm
It is especially in unbalanced positions where classic eval seems to lack some knowledge,
at least that was my impression from many examples given in the past.
I suppose any gains from using the classic eval come solely from the time saving.
This suggests that any simplification of the classic eval will now pass in fishtest because it will save even more time.
Indeed. Let's not forget that the "pure" NNUE-eval version that was merged was +90 Elo over Stockfish with classical evaluation.
Time to admit that the era of humans tweaking evaluation code is done (thank God). Exploration of network architectures and training methods seems important. But it's time to return to focusing on searching. Does anyone really think that lazy smp is an optimal way to use 64 threads, for example?
Joerg Oster wrote: ↑Sun Aug 09, 2020 1:20 pm
It is especially in unbalanced positions where classic eval seems to lack some knowledge,
at least that was my impression from many examples given in the past.
I suppose any gains from using the classic eval come solely from the time saving.
This suggests that any simplification of the classic eval will now pass in fishtest because it will save even more time.
Btw, I'm not really sure why it speeds up since skipping the NNUE eval would seem to break the incremental updating (at least if the parent node did not get NNUE-evaluated).
Joerg Oster wrote: ↑Sun Aug 09, 2020 1:20 pm
It is especially in unbalanced positions where classic eval seems to lack some knowledge,
at least that was my impression from many examples given in the past.
I suppose any gains from using the classic eval come solely from the time saving.
This suggests that any simplification of the classic eval will now pass in fishtest because it will save even more time.
Btw, I'm not really sure why it speeds up since skipping the NNUE eval would seem to break the incremental updating (at least if the parent node did not get NNUE-evaluated).
I believe the time savings comes from not having to compute the final layers. The incremental updates are still done, but they only update the first layer. The last 2 layers are still quite expensive.
That gives me an idea for NNUE lazy eval though . Perhaps training a much smaller final layer (distilling the net) for material imbalanced positions. That way you could get a massive speed up still, but simplify having to use the classical eval.
carldaman wrote: ↑Sat Aug 08, 2020 10:57 pm
It defeats the purpose if the NNUE cannot always be set to active [as an option], because then you're at the mercy of the engine only using NNUE when it chooses. Hopefully the SF team will wake up to the fact that people also use the engine for analysis.
With a trivial change to the source code, you can build your own executable which always uses NNUE.
However this change can never yield stronger analysis.
Over time, using "always NNUE" will be gradually weaker and weaker as the nets are optimized for their intended use in balanced positions.
We're making too many assumptions for now, while in the early stages of NNUE. Much more convenient is if the end user is enabled to analyze with or without NNUE whenever he chooses. That way one can get more than one opinion on a given position, without loading a different engine altogether.
carldaman wrote: ↑Sat Aug 08, 2020 10:57 pm
It defeats the purpose if the NNUE cannot always be set to active [as an option], because then you're at the mercy of the engine only using NNUE when it chooses. Hopefully the SF team will wake up to the fact that people also use the engine for analysis.
With a trivial change to the source code, you can build your own executable which always uses NNUE.
However this change can never yield stronger analysis.
Over time, using "always NNUE" will be gradually weaker and weaker as the nets are optimized for their intended use in balanced positions.
We're making too many assumptions for now, while in the early stages of NNUE. Much more convenient is if the end user is enabled to analyze with or without NNUE whenever he chooses. That way one can get more than one opinion on a given position, without loading a different engine altogether.
Wish they'd just delete the classical evaluation completely, and stop this awkward hybridization. Yes, the NNUE evaluation is (currently) half as fast as the classical one. And given that it still was +90 Elo above classical-fish. Folks are just emotionally attached to the classical evaluation, because so many people tweaked it over the years. NNUE is the future; let it happen and evolve. And start working on SMP search.
Wish they'd just delete the classical evaluation completely, and stop this awkward hybridization. Yes, the NNUE evaluation is (currently) half as fast as the classical one. And given that it still was +90 Elo above classical-fish. Folks are just emotionally attached to the classical evaluation, because so many people tweaked it over the years. NNUE is the future; let it happen and evolve. And start working on SMP search.
And why do you think Classical SF beats NN's when it does? It is because it does certain things better, correct?
Wish they'd just delete the classical evaluation completely, and stop this awkward hybridization. Yes, the NNUE evaluation is (currently) half as fast as the classical one. And given that it still was +90 Elo above classical-fish. Folks are just emotionally attached to the classical evaluation, because so many people tweaked it over the years. NNUE is the future; let it happen and evolve. And start working on SMP search.
And why do you think Classical SF beats NN's when it does? It is because it does certain things better, correct?
Wish they'd just delete the classical evaluation completely, and stop this awkward hybridization. Yes, the NNUE evaluation is (currently) half as fast as the classical one. And given that it still was +90 Elo above classical-fish. Folks are just emotionally attached to the classical evaluation, because so many people tweaked it over the years. NNUE is the future; let it happen and evolve. And start working on SMP search.
And why do you think Classical SF beats NN's when it does? It is because it does certain things better, correct?