Incredible Stockfish Patch

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

Moderators: hgm, Rebel, chrisw

User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Incredible Stockfish Patch

Post by Ovyron »

carldaman wrote:Stockfish and Houdini would be worth much less in comparison, if that were to happen. :wink:
Indeed, Houdini attempted a learning feature, but it was so bad nobody used it and it was removed from later versions.

I guess a problem is Stockfish Learning is GPL'd, by definition you can't plug it in your engine and sell it, Houdini or Komodo can't just copy and paste the code because it'd be illegal to sell the engine, they'd have to open the source which isn't going to happen!

Why don't other top free engine authors implement learning? They're too busy chasing elo, what with them not even fully implementing UCI? Chances are they haven't implented the Exclude Moves feature, you're lucky if they have implemented MultiPV, and some engines like Booot don't even allow you to make it play at fixed depth! So Learning is at the bottom of the list.

By the amount of elo they're able to add in a short frame (Laser seems to be joining this group soon), adding learning would have them stop adding elo for the month it takes them to add it, so they'd have to choose between a 3250 engine with learning, or a 3200 engine without.

The choice is clear because outside of engine tournaments nobody really uses weak engines. Again, with Laser, I didn't even know the engine existed and wouldn't have know if it didn't make the jump in strength, and I'll probably be checking out the next version.

On the other side, YACE has learning, Spike has learning, RomiChess has learning, and I haven't used them for years, so it's kind of difficult to make everyone happy...
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Incredible Stockfish Patch

Post by Ovyron »

mjlef wrote:I do not think Jeremy has "sides". He modified cutechess-cli for TCEC, added Syzygy to Komodo did work on Stockfish, like you mention. He also created open-chess.org computer chess forum. Basically, Jeremy is awesome and promoted computer chess to everyone.

Mark
I know who Jeremy is, I drew the OpenChess logo he uses on his website, but here's a direct quote from him:
Jeremy Bernstein wrote:I think it was an interesting project, but it should probably be reimplemented for SF7 by someone who is passionate about it. I have little time for chess in general recently, but my chess programming time is devoted to helping out the Komodo team or working on the TCEC backend.
(emphasis mine)

The fact of the matter is that if Komodo or TCEC weren't around, Jeremy would have used his free time to continuing implementing Learning to recent Stockfishes.

I do love Komodo and TCEC though, so I guess one can't with them all...
Last edited by Ovyron on Thu Dec 28, 2017 3:57 am, edited 1 time in total.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Incredible Stockfish Patch

Post by Ovyron »

FWCC wrote:Thank you,but it's not in the latest version.Why was it stopped and can a user add it.What were the results?
It was stopped because apparently it's like Rocket Science, the only person able to implement it to Stockfish was Jeremy Bernstein, and nobody has been able to duplicate his efforts. Efforts were put to patch the old version and make it up to date, with they were halted.

Heck, even I attempted to do it, but couldn't get very far. You certainly need to be a programmer to do it, and all programmers are busy with other things (a problem here is chess programmers tend to have their own engine, and they'd rather implement learning to it than to Stockfish...), or retired.
carldaman
Posts: 2283
Joined: Sat Jun 02, 2012 2:13 am

Re: Incredible Stockfish Patch

Post by carldaman »

Ovyron wrote:
mjlef wrote:I do not think Jeremy has "sides". He modified cutechess-cli for TCEC, added Syzygy to Komodo did work on Stockfish, like you mention. He also created open-chess.org computer chess forum. Basically, Jeremy is awesome and promoted computer chess to everyone.

Mark
I know who Jeremy is, I drew the OpenChess logo he uses on his website, but here's a direct quote from him:
Jeremy Bernstein wrote:I think it was an interesting project, but it should probably be reimplemented for SF7 by someone who is passionate about it. I have little time for chess in general recently, but my chess programming time is devoted to helping out the Komodo team or working on the TCEC backend.
(emphasis mine)

The fact of the matter is that if Komodo or TCEC weren't around, Jeremy would have used his free time to continuing implementing Learning to recent Stockfishes.

I do love Komodo and TCEC though, so I guess one can't with them all...
+1, but fill in the blanks - if JB implemented a functional learning feature before, and JB now is helping the Komodo team --> why not have JB help out the Komodo team with adding learning, (unless he totally doesn't want to)?

It's not the first time I've asked this question. It's more of a friendly suggestion than a question, anyway, since I really think it would boost Komodo in a big way, especially with Elo progress being slower.
carldaman
Posts: 2283
Joined: Sat Jun 02, 2012 2:13 am

Re: Incredible Stockfish Patch

Post by carldaman »

Ovyron wrote:
carldaman wrote:Stockfish and Houdini would be worth much less in comparison, if that were to happen. :wink:
Indeed, Houdini attempted a learning feature, but it was so bad nobody used it and it was removed from later versions.

I guess a problem is Stockfish Learning is GPL'd, by definition you can't plug it in your engine and sell it, Houdini or Komodo can't just copy and paste the code because it'd be illegal to sell the engine, they'd have to open the source which isn't going to happen!

Why don't other top free engine authors implement learning? They're too busy chasing elo, what with them not even fully implementing UCI? Chances are they haven't implented the Exclude Moves feature, you're lucky if they have implemented MultiPV, and some engines like Booot don't even allow you to make it play at fixed depth! So Learning is at the bottom of the list.

By the amount of elo they're able to add in a short frame (Laser seems to be joining this group soon), adding learning would have them stop adding elo for the month it takes them to add it, so they'd have to choose between a 3250 engine with learning, or a 3200 engine without.

The choice is clear because outside of engine tournaments nobody really uses weak engines. Again, with Laser, I didn't even know the engine existed and wouldn't have know if it didn't make the jump in strength, and I'll probably be checking out the next version.

On the other side, YACE has learning, Spike has learning, RomiChess has learning, and I haven't used them for years, so it's kind of difficult to make everyone happy...
Just to add: Phalanx, Gandalf, Fruit Reloaded, Deep Learning Toga, Critter 1.6, and not least, The Baron, all have learning, too. Hiarcs, as well, I think. I must be forgetting a handful of other learning-capable engines. I hope someone assembles a full list.

You've got it right, learning has been at the bottom of the list in the last few years. Very few top programs will touch it.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Incredible Stockfish Patch

Post by Ovyron »

carldaman wrote:why not have JB help out the Komodo team with adding learning, (unless he totally doesn't want to)?
Again, I think this is about disinterest.

From the get-go, Larry Kaufman has made it clear that the primary goal of the engine (by late Don Dailey) was to provide the #1 chess engine for analysis, and he even was shocked at the speed of the progress (thinking it was going to take them years to reach Rybka 3's strength - what happened was they had to remove Rybka 3 from sparring partners because it was way too weak.)

Is Komodo #1? Nope, AsmFish is #1, Houdini #2, they're putting all their efforts on topping the rating lists, again. They don't have time to add learning.

I think a main problem is the rating lists themselves, even though Romi could play hundreds of elo stronger with learning, they test with learning off, we need rating lists that allow learning, and that allow an engine with a learning mechanism that is powerful enough to learn how to beat the competition to top the list. They can share the learning file with users so the engine can play as advertized.

Imagine if Alpha Zero was released. Except, it's truly from the ground up and users have to use their GPUs to train it, and it has to learn how to play chess, but after a few hours it gets 3500 elo.

What would the CCRL do? Test it and clean up the learning every game so it never learns how to play? Forbidding it from ever topping the list while everyone at home can have the strongest engine? Is it that CCRL members are able to test learning but nobody has been interested in doing so?

If learning is the future they have to test its effects already, and we could be at the beginning of something big (say, Stockfish has a new Contempt setting that allows it to play stronger against some engines, but weak to others, what if it could learn to adapt its contempt on the fly depending on the positions it faces? The same could be said about other parameters of other engines, like, say, King Safety so engines learn when to increase it to launch king attacks on the opponent. Let engines adjust their own settings on the fly to play attractively on positions that need it! They could learn to create their own personalities and change them on the fly! And, this parenthesis has been going for too long...)
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Incredible Stockfish Patch

Post by Michael Sherwin »

Ovyron wrote:
carldaman wrote:Stockfish and Houdini would be worth much less in comparison, if that were to happen. :wink:
Indeed, Houdini attempted a learning feature, but it was so bad nobody used it and it was removed from later versions.

I guess a problem is Stockfish Learning is GPL'd, by definition you can't plug it in your engine and sell it, Houdini or Komodo can't just copy and paste the code because it'd be illegal to sell the engine, they'd have to open the source which isn't going to happen!

Why don't other top free engine authors implement learning? They're too busy chasing elo, what with them not even fully implementing UCI? Chances are they haven't implented the Exclude Moves feature, you're lucky if they have implemented MultiPV, and some engines like Booot don't even allow you to make it play at fixed depth! So Learning is at the bottom of the list.

By the amount of elo they're able to add in a short frame (Laser seems to be joining this group soon), adding learning would have them stop adding elo for the month it takes them to add it, so they'd have to choose between a 3250 engine with learning, or a 3200 engine without.

The choice is clear because outside of engine tournaments nobody really uses weak engines. Again, with Laser, I didn't even know the engine existed and wouldn't have know if it didn't make the jump in strength, and I'll probably be checking out the next version.

On the other side, YACE has learning, Spike has learning, RomiChess has learning, and I haven't used them for years, so it's kind of difficult to make everyone happy...
The learning in RomiChess is 100% original, is public domain, can be used and modified however any one wants and all I ask for is that it is acknowledged if someone uses it.
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through
Adam Hair
Posts: 3226
Joined: Wed May 06, 2009 10:31 pm
Location: Fuquay-Varina, North Carolina

Re: Incredible Stockfish Patch

Post by Adam Hair »

carldaman wrote:
Ovyron wrote:
carldaman wrote:Stockfish and Houdini would be worth much less in comparison, if that were to happen. :wink:
Indeed, Houdini attempted a learning feature, but it was so bad nobody used it and it was removed from later versions.

I guess a problem is Stockfish Learning is GPL'd, by definition you can't plug it in your engine and sell it, Houdini or Komodo can't just copy and paste the code because it'd be illegal to sell the engine, they'd have to open the source which isn't going to happen!

Why don't other top free engine authors implement learning? They're too busy chasing elo, what with them not even fully implementing UCI? Chances are they haven't implented the Exclude Moves feature, you're lucky if they have implemented MultiPV, and some engines like Booot don't even allow you to make it play at fixed depth! So Learning is at the bottom of the list.

By the amount of elo they're able to add in a short frame (Laser seems to be joining this group soon), adding learning would have them stop adding elo for the month it takes them to add it, so they'd have to choose between a 3250 engine with learning, or a 3200 engine without.

The choice is clear because outside of engine tournaments nobody really uses weak engines. Again, with Laser, I didn't even know the engine existed and wouldn't have know if it didn't make the jump in strength, and I'll probably be checking out the next version.

On the other side, YACE has learning, Spike has learning, RomiChess has learning, and I haven't used them for years, so it's kind of difficult to make everyone happy...
Just to add: Phalanx, Gandalf, Fruit Reloaded, Deep Learning Toga, Critter 1.6, and not least, The Baron, all have learning, too. Hiarcs, as well, I think. I must be forgetting a handful of other learning-capable engines. I hope someone assembles a full list.

You've got it right, learning has been at the bottom of the list in the last few years. Very few top programs will touch it.
Gaviota
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Incredible Stockfish Patch

Post by Ovyron »

Michael Sherwin wrote:The learning in RomiChess is 100% original, is public domain, can be used and modified however any one wants and all I ask for is that it is acknowledged if someone uses it.
Ahh, the problem with RomiChess's learning is that it can't be used for analysis. The other engines' learning is based on evaluation of positions, if move X is bad, all I need to do is show the engine its refutation, propagate it back to the root, and the engine will not play this move, ever. This can be done in a few minutes.

But Romi can't learn about this refutation, it'd need to play it, and lose with it, over and over, until the move gets a penalty, and in the process the whole line gets penalized, even if good, and avoided, am I wrong?

Most of the people wishing for a Stockfish with Learning, or a Komodo with Learning want to use the engine to analyze their games, not to play stronger and stronger in some variation.

In fact, we should probably stop calling it "Learning." RomiChess does learning, the other thing that people want, that is implemented in the engines people are talking about, is "Preserve Analysis" (thus, Stockfish PA), we hate when the engine forgets what it has analyzed just because a hash entry was overwritten, but we don't need to play an entire game for it, just show the engine the refutations.

Can RomiChess approach this? Something like allowing Romi to apply penalties when reaching some threshold would work. Say, whenever Romi reaches a score of -0.80, it writes to the RL Database as if the game was lost already, or writes as if the game was won with a score of 0.80. Then users would be able to use Romi's learning for analysis by modifying its Thresholds, but it would be much quicker than playing the game till its end.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Incredible Stockfish Patch

Post by Ovyron »

SzG wrote:I guess we would not include it in our lists.
Red alarms should ring when potentially, your rating list would not include the strongest chess entity on the planet due to a technicality.

Again, learning entities make sense as long as the testers merge their learn files and the users are allowed to download the learn file that produced the elo shown.