Final Release of Ethereal, V12.75

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

Moderators: hgm, Rebel, chrisw

Koivisto
Posts: 50
Joined: Fri Sep 04, 2020 10:30 pm
Full name: Kim Kahre

Re: Final Release of Ethereal, V12.75

Post by Koivisto »

AndrewGrant wrote: Fri Oct 09, 2020 11:22 am An hour after I make this post I'm filled with regret.

[1] Do people really want to see a bunch of NNUE engines, all running the same evaluation function, occupying the top slots of computer chess?
[2] Would people really find it interesting to have Ethereal use whatever "best" network is out there?
[3] Are people still interested when engines replace 50% of what made them unique?
[4] Do people want to continue to have Ethereal, acting as a Stockfish-lite, for new programmers?
[5] Is Chess doomed to go the route of Shogi and Go? We share the Networks, but have our own searches? Is that okay?
[6] Is this chess world okay with me plunking in a Network file and never changing it again?
1) No
2) No
3) I think most strong engines have very similar searches these days, so actually more than 50% of what makes the engines unique is replaced.
4) I really dont want to see ethereal turn into a nnue engine.
5) I really don't like it but whatever happens happens
6) I would really like to see you continue working on Ethereal :)
frankp
Posts: 228
Joined: Sun Mar 12, 2006 3:11 pm

Re: Final Release of Ethereal, V12.75

Post by frankp »

Search improvements pretty much dominated chess for a long time (I am talking about 1980’s on-wards) through increasing computer speed and clever algorithms. The recent neural net innovations (in chess) showed how poor human implementation of evaluation in chess programs is (and perhaps also how poor human understanding is too) to the extent that it overcame even the mighty SF’s search for a short while. I find all this exciting rather than a cause for depression. Looking forward to a self-learning NN designed search function ;)

Anyway thanks for Ethereal Andrew and good luck for the future.
User avatar
Scally
Posts: 232
Joined: Thu Sep 28, 2017 9:34 pm
Location: Bermondsey, London
Full name: Alan Cooper

Re: Final Release of Ethereal, V12.75

Post by Scally »

alex67a wrote: Fri Oct 09, 2020 3:36 pm
Scally wrote: Fri Oct 09, 2020 12:23 pm Hi Andrew,

I’ve just compiled your EtherLito NNUE version for the Raspberry Pi, it’s version Number is 12.69, is that correct or should I change the version to 12.75?

Best wishes on your new endeavours ....


Al.
Hi Scally,

can you give to me a link for the executable ?
I want try the engine

thx
Hi Alex,

Sure it’s here in my Dropbox account: https://www.dropbox.com/s/vkflhksw1h117 ... -RPi4?dl=0

It’s compiled on a Raspberry Pi 4, you will need to give it executable permissions via
chmod a+x EtherlitoNN-RPi4

I have changed the version to 12.75, but If Andrew say’s it’s still 12.69 then I’ll change it back.


Cheers,

Al.
schack
Posts: 172
Joined: Thu May 27, 2010 3:32 am

Re: Final Release of Ethereal, V12.75

Post by schack »

Andrew - I think this an opportunity rather than a bad situation.

SF seems to be abandoning work on the classical evaluation. All the search modifications are to suit NNUE, not classical eval. Komodo, too, appears to be heading in the NNUE direction.

Why not focus on making Ethereal the strongest handcrafted eval engine there is? From the perspective who is using the computer for analysis every day, that would be of immense help to me. If everyone is going NNUE and using the same networks, that negates the value of using different engines to check things. I'd much rather have a unique Ethereal than 10 random engines with the same NNUE file if I want to run different types of evaluations.

I hope this makes sense. (Just don't code in contempt, etc. Make it as analysis friendly as possible!)
alex67a
Posts: 50
Joined: Mon Sep 10, 2018 10:15 am
Location: Denmark
Full name: Alexander Spence

Re: Final Release of Ethereal, V12.75

Post by alex67a »

Scally wrote: Fri Oct 09, 2020 4:11 pm
alex67a wrote: Fri Oct 09, 2020 3:36 pm
Scally wrote: Fri Oct 09, 2020 12:23 pm Hi Andrew,

I’ve just compiled your EtherLito NNUE version for the Raspberry Pi, it’s version Number is 12.69, is that correct or should I change the version to 12.75?

Best wishes on your new endeavours ....


Al.
Hi Scally,

can you give to me a link for the executable ?
I want try the engine

thx
Hi Alex,

Sure it’s here in my Dropbox account: https://www.dropbox.com/s/vkflhksw1h117 ... -RPi4?dl=0

It’s compiled on a Raspberry Pi 4, you will need to give it executable permissions via
chmod a+x EtherlitoNN-RPi4

I have changed the version to 12.75, but If Andrew say’s it’s still 12.69 then I’ll change it back.


Cheers,

Al.
Hi,

sorry, I'm searching windows 64bit executable...

thanks, however...
Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Final Release of Ethereal, V12.75

Post by Dann Corbit »

mvanthoor wrote: Fri Oct 09, 2020 1:12 pm
Dann Corbit wrote: Fri Oct 09, 2020 10:58 am A lot of people who have spent a lot of hours toiling on evaluation are keenly disappointed.

...

So stop jealously guarding your evaluation functions, which are made of terms extracted from any decent chess book, and focus on the really interesting part of a chess engine.
Search.
No, search has nothing to do with chess. Bit boards and other newer board representations haven't either. They're just a way to see deeper by cutting the tree or going faster. In the end, you don't need an evaluation at all. If you extrapolate to the logical conclusion, the only thing you need to have is a material count, because if you can see far enough ahead, you can always know who is better in what position.

But that's not how humans play chess.

The complaint most often heard about chess engines (and Go engines even more so) is that they don't play "like a human"; the neural networks do that better. The reason is that they search less and evaluate more.

For me, the evaluation gives the program its personality. A better search just gives it more speed. Have you seen this topic?

http://talkchess.com/forum3/viewtopic.php?f=2&t=75324

I doubt that all of those sacs are due to search speed. That engine KNOWS about open lines and moving pieces with tempo; it actively sacrifices material for huge positional gains. That is not something a search can reveal, unless you can go all the way to the end (which it probably can't).

I'd be thrilled if I can make my engine play like Thinker in the above example.
Thinker, the shining beacon in a dark world:
http://www.talkchess.com/forum3/viewtop ... =2&t=52325
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.
Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Final Release of Ethereal, V12.75

Post by Dann Corbit »

Raphexon wrote: Fri Oct 09, 2020 2:19 pm
Dann Corbit wrote: Fri Oct 09, 2020 12:09 pm
Alayan wrote: Fri Oct 09, 2020 11:47 am It's not "a new evaluation term". A new evalution term doesn't discard the rest of the eval, it doesn't kill eval originality. It's a drop-in eval replacement.
What is "eval originality"?
Is there some term that chess engine programmers know about but nobody else does?
I guess that every single evaluation term in every chess engine on earth is found in a chess book or in the mind of a GM.
That goes for what the NNs do also, but it may be something that great players do instinctively and they do not know how to voice it.

Of course I might be wrong.

Can some one give me a counter example to show how engines are doing something original that is not found in books or known by GMs?
If you take a term from a book, or from a GM you still have to translate into machine code.
True for every programming endeavor, such as tic-tac-toe as well. This seems to be an argument that although the terms are all well known, it is the implementation details that are original. Therefore if Joe writes a quicksort and Sally writes a quicksort, those quicksorts are original because the implementation details are original. But the implementation details for (for instance) Rybka were very different than the implementation details for Fruit. I would argue that the evaluation function of Rybka was not very original for the most part, even though the implementation details were different. I do not think Rybka was an example of copyright violation, but I do think the evaluation was largely unoriginal, despite the differences in implementation details.
You still have to decide (or tune) the values.
There's a lot of manual labour and tinkering.
Or is the originality contained in a framework that does 10,000 games to find the constant while you are sleeping?
I do not disagree that there is work involved. I find it hard to see the originality in this.
And if programmers just guessed on evaluation terms like they did in the stone ages of chess engines, we would see lots of variation but the engines would lose strength because of this. The idea of running a zillion games to find a number for an evaluation constant was made popular by Vas. Some others might have been doing it, but they did not explain it to the world. So I would say that Vas was original here, and everyone else is simply copying what he did. Highly unoriginal. That is OK, though. There is nothing wrong from learning a good idea and then doing it.
Everybody does this differently.
I was under the impression that they all used one of about three different testing frameworks to drive out the value that they are searching for.
Besides Fishtest, Andrew's framework, and the Texel framework, I suppose there might be others but it looks to me like they all do the same thing.

NNUE disconnects art from eval, instead of painstakingly translating chess terms to machine code you're just feeding data into a calculator that returns a function to best approximate that data.
I agree that term by term evaluation functions written by brute force examination of each constant are very labor intensive to write.
I also agree that not everyone will choose the same collection of items to include in the evaluation function.
I might add the Berliner idea of edge pawns being worth less in the opening and more in the endgame to my engine or not.
Is that what makes it original?

NNUE is really a technique that is a labor saving device. Someone doing Shogi came up with a brilliant way to use the NN to compute an evaluation with much less manual labor than even the frameworks. I think there might be very different ways to write NN tools and they can be utilized in ways we did not imagine yet. And if NNUE is bad for chess, then what about the NN approach in Alpha Zero, LC0, and various other attempts?
While some of the offshoots may be rather copy-like, there are also other attempts that are looking in new directions.
Fat Fritz is looking at different ways to train the network. There are approaches that are trying to vary how it searches. There are different sized networks, from tiny to titanic. All of these approaches produce different results.

I guess if we knew the eval terms that we are missing, then the hand tuned evaluation would be just as strong as the NNUE evaluations.
I look at the NNUE stuff as a new labor saving device, like tablebase files, but one that is much more customizable and trainable than a tablebase. In short, it is a new and revolutionary technique that makes chess programming much easier.

Now that NNUE is known to the world, we are never going to put that genie back into the bottle.
If people want to, they can ban all NN programs from contests and insist on evaluation functions tuned by a million games.
But that is just as excluding as banning NN programs. Not everyone can afford to buy a giant raft of computers or even to rent them.
So I guess what we will be left with in the end is SF verses LC0 for every contest from now to infinity.
After all, they have the most effort into tuning those engines and are therefore the most "this is original due to hard work" engines on the planet.

I want to make something clear. I admire the hard work of people like Andrew. I also admire the hard work of people who write a 1400 Elo chess engine. I am not dismissive of anyone's efforts. I actually have hopes for a new openness, that is spawned by these new techniques.
To me, anyone who learns how to make code play the game of chess and is not just doing some lame copy/paste job is doing something both interesting and admirable.
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.
dkappe
Posts: 1631
Joined: Tue Aug 21, 2018 7:52 pm
Full name: Dietrich Kappe

Re: Final Release of Ethereal, V12.75

Post by dkappe »

AndrewGrant wrote: Fri Oct 09, 2020 11:22 am
[1] Do people really want to see a bunch of NNUE engines, all running the same evaluation function, occupying the top slots of computer chess?
Prove it. The Toga III nets, trained off of Toga II 4.0.1, play nothing like SF NNUE.

It’s surprising to see so many smart technical people think of neural networks as this magical meat grinder that turns everything into a uniform evaluation function. Poppycock! If everyone uses the same network, then sure. But why would you do that?
Fat Titz by Stockfish, the engine with the bodaciously big net. Remember: size matters. If you want to learn more about this engine just google for "Fat Titz".
Tony P.
Posts: 216
Joined: Sun Jan 22, 2017 8:30 pm
Location: Russia

Re: Final Release of Ethereal, V12.75

Post by Tony P. »

AndrewGrant wrote: Fri Oct 09, 2020 9:08 am Using various Networks, I am able to beat Stockfish 11 in a 500 game match by over +50 elo. Chess is dead.
It's funny how you've showed how alive chess is and, in the same breath, pronounced it dead :roll:
Dann Corbit
Posts: 12537
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Final Release of Ethereal, V12.75

Post by Dann Corbit »

schack wrote: Fri Oct 09, 2020 4:29 pm Komodo, too, appears to be heading in the NNUE direction.
Did I miss some important announcement? I was completely unaware that Komodo had gone NNUE.
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.