buying a new computer

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

Moderators: hgm, Rebel, chrisw

Paloma
Posts: 1167
Joined: Thu Dec 25, 2008 9:07 pm
Full name: Herbert L

Re: buying a new computer

Post by Paloma »

Use the fen tag on the right side of the buttons.
Then put the fen string in the middle (coursor is allready there)
Zenmastur
Posts: 919
Joined: Sat May 31, 2014 8:28 am

Re: buying a new computer

Post by Zenmastur »

corres wrote: Fri Jul 12, 2019 9:58 am
Some note:
Only the NN engines (like Leela) has its "own openings".
AB engines have only tendency to play lines from start position.
If you want to create a good book for an AB engine you need huge number of games between that engine and many other engines to know the weakness of that AB engine. The book should be able to help the engine to divert lines in what the engine is weak and to keep the engine on the winning lines.
AB engines have a tendency to play the same opening moves over and over regardless of how good they are because it has no way to change it's evaluation of the position. If using the same time control they are destine to repeat their opening errors over and over. Not only does this lead to boring play, it's what made it possible for Alphazero to beat SF8 over and over in the same openings. This could NEVER have happen if a “proper” book was implemented in SF (or any other AB engine) without a HUGE amount of cherry picking by Deepmind (i.e. a massive number of games would have needed to be played)

Further this type of book would force the engine to play a wide variety of openings. Not at random or with some static frequency set by the book maker. Instead these decisions would be made with the sole purpose of increasing the quality of opening play. This is done by balancing play across all “reasonable” lines of opening play based on the moves experienced win/draw/loss performance. Not only would the program play the opening in a less predictable manner there would be an underlying purpose to it's opening selections. This is something that is rarely seen ( if ever) in AB chess engines.

The program keeps the opening book “balanced” by move selection. This would present some challenges to implementing this is in a testing frame work since the book isn't static and you will have many workers using a local copy of the book. But this is not an insurmountable problem.

The individual workers would periodically submit book updates to the server and these would have to be incorporated into the master book. The changes to the “master” book would be transmitted to workers on a periodic basis. Or, alternatively, the workers can down load the updates to the book when picking up new work etc. This would save the workers from having to download the entire book which will become relatively large.

This leaves only one problem to solve. This type of book needs to balance it's play across all lines of play based on their particular merits. The book will become some what unbalanced due to it's simultaneous use in an uncoordinated manner by many workers. It would be less than optimal, although not disastrous, to use an unbalanced book in a tournament because the first thing the book move selection algorithm will try to do is balance the book. It will do this by selecting lines of play than haven't been played the required number of times. When a balanced book is used in a tournament, it will play a combination of moves that are either “best” or “interesting” to the book algorithm. Because of the balancing requirement, just before a major tournament, an artificially balanced version of the book would be made.

This type of book would have several consequences for competitive computer chess. First, there would be no need to use per-selected opening in tournaments. The engines that failed to implement this type of book would have their opening errors found and exploited effectively. So, there would be a natural motivation for all AB type engines to implement this type of book.

I agree that a huge number of games will be needed. This is exactly why the the testing frame work for stockfish (for example) would be perfect for doing this. At 1,000 games per minute (typical?? of the SF testing frame work) over 500,000,000 games a year are played. This could produce a usable book in a VERY short time frame. And over any significant period of time it will produce a book second to none in it's breadth, depth, and quality of play even if you start from book with only one position in it. You could, of course, start with the largest “reasonable” book available to speed the process up. e.g. take all games played in Dan Corbits database of games and include all position in the opening that occurred more than “X” number of times.

When I think of the lost opportunity and squandered games generated in the SF testing frame work it makes me sick to my stomach. The complete lack of any effort to create a “proper” book by the chess community as a whole is quite disheartening. Only because of the rise of NN engines are their eyes being opened. A pity it took so long!

Regards,

Zenmaster
Only 2 defining forces have ever offered to die for you.....Jesus Christ and the American Soldier. One died for your soul, the other for your freedom.
Uri Blass
Posts: 10282
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: buying a new computer

Post by Uri Blass »

Zenmastur wrote: Sat Jul 13, 2019 2:35 am
corres wrote: Fri Jul 12, 2019 9:58 am
Some note:
Only the NN engines (like Leela) has its "own openings".
AB engines have only tendency to play lines from start position.
If you want to create a good book for an AB engine you need huge number of games between that engine and many other engines to know the weakness of that AB engine. The book should be able to help the engine to divert lines in what the engine is weak and to keep the engine on the winning lines.
AB engines have a tendency to play the same opening moves over and over regardless of how good they are because it has no way to change it's evaluation of the position. If using the same time control they are destine to repeat their opening errors over and over. Not only does this lead to boring play, it's what made it possible for Alphazero to beat SF8 over and over in the same openings. This could NEVER have happen if a “proper” book was implemented in SF (or any other AB engine) without a HUGE amount of cherry picking by Deepmind (i.e. a massive number of games would have needed to be played)

Further this type of book would force the engine to play a wide variety of openings. Not at random or with some static frequency set by the book maker. Instead these decisions would be made with the sole purpose of increasing the quality of opening play. This is done by balancing play across all “reasonable” lines of opening play based on the moves experienced win/draw/loss performance. Not only would the program play the opening in a less predictable manner there would be an underlying purpose to it's opening selections. This is something that is rarely seen ( if ever) in AB chess engines.

The program keeps the opening book “balanced” by move selection. This would present some challenges to implementing this is in a testing frame work since the book isn't static and you will have many workers using a local copy of the book. But this is not an insurmountable problem.

The individual workers would periodically submit book updates to the server and these would have to be incorporated into the master book. The changes to the “master” book would be transmitted to workers on a periodic basis. Or, alternatively, the workers can down load the updates to the book when picking up new work etc. This would save the workers from having to download the entire book which will become relatively large.

This leaves only one problem to solve. This type of book needs to balance it's play across all lines of play based on their particular merits. The book will become some what unbalanced due to it's simultaneous use in an uncoordinated manner by many workers. It would be less than optimal, although not disastrous, to use an unbalanced book in a tournament because the first thing the book move selection algorithm will try to do is balance the book. It will do this by selecting lines of play than haven't been played the required number of times. When a balanced book is used in a tournament, it will play a combination of moves that are either “best” or “interesting” to the book algorithm. Because of the balancing requirement, just before a major tournament, an artificially balanced version of the book would be made.

This type of book would have several consequences for competitive computer chess. First, there would be no need to use per-selected opening in tournaments. The engines that failed to implement this type of book would have their opening errors found and exploited effectively. So, there would be a natural motivation for all AB type engines to implement this type of book.

I agree that a huge number of games will be needed. This is exactly why the the testing frame work for stockfish (for example) would be perfect for doing this. At 1,000 games per minute (typical?? of the SF testing frame work) over 500,000,000 games a year are played. This could produce a usable book in a VERY short time frame. And over any significant period of time it will produce a book second to none in it's breadth, depth, and quality of play even if you start from book with only one position in it. You could, of course, start with the largest “reasonable” book available to speed the process up. e.g. take all games played in Dan Corbits database of games and include all position in the opening that occurred more than “X” number of times.

When I think of the lost opportunity and squandered games generated in the SF testing frame work it makes me sick to my stomach. The complete lack of any effort to create a “proper” book by the chess community as a whole is quite disheartening. Only because of the rise of NN engines are their eyes being opened. A pity it took so long!

Regards,

Zenmaster
In the match between stockfish and lc0 without opening book it was usually stockfish who chose a different move in the opening and not lc0 so it seems that alpha beta engines do not tend to repeat the same move again and again.

Stockfish is even not deterministic in the first move and may choose 1.e4 or 1.d4 with the same number of nodes based on luck when it use more than one core.
If you give stockfish to play against itself 1000 games with the same time control without book you will probably not find even 2 identical games.

I would like TCEC to repeat a tournament like the following without opening book.
https://cd.tcecbeta.club/archive.html?s ... l=1&game=1

Stockfish played e4 in game 1 and d4 in game 3 and you will not find 2 identical game and the the quilty program is mainly stockfish.

Note that maybe some tool to make stockfish more deterministic can help to increase stockfish's playing strength and it should have some preference between specific moves.

Maybe some small bonus for moves that statistically are good moves can help(so it will have generally an opinion that Ne4-d6 for white is 0.04 better than Ne4-d2 so the scores of lines that start with the root move Ne4-d6 will get a bonus of 0.04 pawns relative to lines that start with Ne4-d2).

Of course you need a good table of bonuses for possible moves that increase the playing strength and I do not think that a table only based on the move is the best idea and you may consider other factors for example if the position is opening or endgame.
Zenmastur
Posts: 919
Joined: Sat May 31, 2014 8:28 am

Re: buying a new computer

Post by Zenmastur »

Uri Blass wrote: Sat Jul 13, 2019 6:00 am In the match between stockfish and lc0 without opening book it was usually stockfish who chose a different move in the opening and not lc0 so it seems that alpha beta engines do not tend to repeat the same move again and again.
On one thread the program is “almost” deterministic. Not quite, but close. I know they have tried to make it less deterministic, but the same version of the program has a propensity to play the same basic lines in the same basic openings over and over. This makes it easy for NN programs to be trained to beat it.
I would like TCEC to repeat a tournament like the following without opening book.
https://cd.tcecbeta.club/archive.html?s ... l=1&game=1
I think it was ridiculous for any tournament organizer to pick openings for the programs to start with. This makes it easy to influence the out comes of the matches. But more importantly, it removed ANY incentive to improve the opening play of the programs competing. Since the opening, in some respects, IS the most important part of the game it's lunacy to call a program the “best” when you have no idea if it could perform as well if it ACTUALLY had to play a whole game.
Note that maybe some tool to make stockfish more deterministic can help to increase stockfish's playing strength and it should have some preference between specific moves.

Maybe some small bonus for moves that statistically are good moves can help(so it will have generally an opinion that Ne4-d6 for white is 0.04 better than Ne4-d2 so the scores of lines that start with the root move Ne4-d6 will get a bonus of 0.04 pawns relative to lines that start with Ne4-d2).

Of course you need a good table of bonuses for possible moves that increase the playing strength and I do not think that a table only based on the move is the best idea and you may consider other factors for example if the position is opening or endgame.
The method of making a learning book that I'm talking about is designed to solve the “Multi-Armed Bandit Problem” in the minimum number of trials. As far as I'm concerned it's perfect for making a learning chess book because it's proven to be quite robust in it's ability to solve these types of problems, it's easy to implement, it can easily be adapted to different environments(like chess), can take advantage of previous chess books and some chess specific knowledge to shorten the time to make the book, AND it has modest storage requirements. I.E. even a MASSIVE book will take considerably less space than 6-man table bases.

Regards,

Zenmastur
Only 2 defining forces have ever offered to die for you.....Jesus Christ and the American Soldier. One died for your soul, the other for your freedom.
Zenmastur
Posts: 919
Joined: Sat May 31, 2014 8:28 am

Re: buying a new computer

Post by Zenmastur »

Ovyron wrote: Fri Jul 12, 2019 2:05 am
Are you a programmer? Perhaps you could program something that is better than current hybrid efforts. Like Aiquiry but running A/B and NN in parallel. Somehow a current problem seems to be that both need to be of about the same level in strength, otherwise, if Leela is on a weak GPU when its move is played it's a worse move than what Stockfish alone would have played, so that the entire game would have been played better with Stockfish alone. An hybrid system is needed that manages to play as good as one of the entities alone, or better, no matter how bad are the suggestions of the other entity most of the time.
I used to program professionally and I have written a few chess programs. But that was a long time ago. I thought about getting back into it when I started messing with chess again but the hardware, OS's, programming languages, libraries, programming environments, tools and compilers have all changed since I last did any serious programming. I would have to learn a whole lot before I could do it effectively. So, I decided against it even though I'm sure I would enjoy it after I aquired all the prerequisites.
It seems at the current time most people haven't moved to Leela because they already have fast CPU and because the improvement from going from CPU to GPU is not worth the investment (as Leela is better than SF, but not by much.) So if the Leela people can run is subpar, a hybrid effort that makes it play better is not useful to them.

What we need (at least until Leela's edge is significant) is a hybrid implementation that uses Leela (on whatever weak GPU the user already has) to improve Stockfish's play (in the fast CPU people already got for computer chess.) But those haven't focused on improving A/B's engine source code yet.
This is why I suggested using small NNs inside of an AB engine to do the things that a “normal” AB engine has trouble with or that requires a lot of time (trial and error on the part of the programmers and testing time in frame work). Of course, the biggest problem is accurate static position evaluation. But this requires a very large NN to be effective as far as I can tell. And, there may be other methods to accomplish the same thing that are less “real-time” compute intensive and training than NN's AND less programming trial and error intensive and test time for AB engines. Both the NN (compute intensive) and AB (trial and error and testing intensive) have drawbacks.

One of the many problems with AB type engines is score “jitter”. This is where the static evaluation of each node in a “supposed best” line of play fluctuates around some “true” value from one node to the next. This can AND DOES result in worse moves being played across the board. So mitigating “score jitter” as much as possible could significantly improve over the board play.

A simple example of how this might be done seems in order. Take a set of test positions and analyze each to some set depth. Then do a static evaluation of all nodes of each line of play. Theoretically each static evaluation in a single line of play should be identical to the preceding and following one. Then use linear algebra to adjust your evaluation function to minimize the least squares deviation from the “supposed” true value. The supposed “true value” can be approximated by performing a search from the terminal node OR better would be a deeper search from the root node of each test position. If no better solution can be found and you still have significant “score jitter” then this is an indication that the scoring function is missing a needed term. It seems very likely that no AB engine will be able to eliminate “score jitter” with their current evaluation functions. So the programmer can either try to find the missing term(s) by trial and error OR use a single small NN to approximate all missing terms at once. If the NN method is tried and it's successful it may be possible to determine what some of the missing terms actually represent. If this can be determined then these can be coded normally and the NN retrained with the same test positions and lines of play. The Idea would be to totally eliminate the NN from the final evaluation function (or at least make it as small and quick to evaluate as possible) on the grounds that it's too compute intensive. But if it can't be totally eliminated it should be reduced to the minimum size required to compensate for the remaining score “jitter”.

I'm going to build a new system specifically for chess. At a minimum it'll be a 3900X with a new graphics card. My current graphics card is 7 years old and needs to be replaced regardless. So, it makes sense to get one powerful enough to play with NN engines. If I were to buy the parts today it would be a 3900x with dual RTX 2070 supers. But I'm still waiting for AMD to release the 3950X and thread ripper CPU's. I also need more info about Leela and NN engines in general. Like what do I need to do, if anything, if I want to use 2, 3, or 4 GPU's in my machine. Etc.
I'd go as far as saying "under most circumstances." It's unbelievable that I'm performing only 30 ELO worse than people with fast Intel i7s. I think this is another problem hidden by generic book testing, where sub-optimal positions are reached and in those the extra resources are used effectively, but when the weak side plays into optimal positions the extra resources don't make any difference.

I wouldn't read too much into your performance against other players. There are way to many factors that could affect their and your performance other than raw hardware speed. First, they might be idiots. Second, they may have lied about their hardware. Third you may just be better at analyzing efficiently with an engine. It could be almost anything. I don't even try to guess what my opponents are doing or the hardware they are using. I do make note of the number of on going games they have and their previous performance. Other than that I just play my “A” game and call it good.
Heh, recently I was commenting about how someone built a Cluster with that approach in mind, and the Cluster eventually arrived at "1.e4 e5 2.Qf3!?" with its learning and reaching won positions against its opponents, and people were commenting about how sinful that was and about how that variation was bad no matter what, by chess principles. I wonder if opening theory of the future will look absolutely alien compared to what we have today, just like it happened in Go.
I suspect that NN program will have a large impact on opening theory. They seem in their element when confronted with positions that are too difficult for AB engines tactical calculations to be very effective. But I doubt opening theory will look alien. It's seems more likely that it will look more refined and more strongly based on principles.
I didn't say the losing side wasn't making errors, I said A/B engines don't see those errors in analysis. What happens is the A/B engine thinks its side has the advantage, and thinks the best play for the opponent is to play for a draw, and it can't refute the draw, so it shows 0.00 scores in analysis. But Leela knows she has the advantage, and then the A/B engine realizes this, it's too late.
It's one thing for an AB engine to not evaluate the position correctly during a time limited game. It's quite different if it can't be made to see the errors in it's ways during post game analysis. I've seen plenty of cases where the former happens, but have NEVER seen a case where the latter has happened. I have run into the problem of not having enough TT to make the program see the true value of a position even though I “knew” what the true evaluation was to a certain extent. This doesn't happen often but I have had it happen. On the other hand, this is purely a function of MY hardware, i.e. not having enough memory, as opposed to something the program is doing wrong.
I believe here's such a game where Leela defeats a Stockfish derivative running on 12 cores, where I believe A/B engines would show a move as a "mistake" even though the mistake was played several moves earlier:

[pgn][White "Leela"] [Black "CFish 12cores"] [Result "1-0"] 1. Nf3 d5 2. g3 c5 3. Bg2 Nf6 4. O-O e6 5. d3 Nc6 6. e4 Be7 7. Bf4 O-O 8. Ne5 Nxe5 9. Bxe5 Nd7 10. Bf4 e5 11. Bc1 d4 12. Nd2 Nb8 13. f4 Nc6 14. f5 Bd7 15. Nf3 b5 16. g4 f6 17. h4 c4 18. Kh1 Be8 19. Bh3 c3 20. Rg1 cxb2 21. Bxb2 Bb4 22. Bc1 Bc3 23. Rb1 a6 24. g5 Bh5 25. Qe2 Kh8 26. a3 Ra7 27. gxf6 Qxf6 28. Bg4 Bf7 29. Bg5 Qd6 30. Nh2 Ba5 31. Bh5 Bd8 32. Bxf7 Raxf7 33. Nf3 Bf6 34. h5 Ra7 35. Rg3 Bxg5 36. Nxg5 Qh6 37. Qh2 Nd8 38. Rbg1 Rg8 39. Rg4 Nf7 40. Ne6 Nd8 41. Nxd8 Rxd8 42. Qxe5 Qxh5+ 43. Qh2 Qxh2+ 44. Kxh2 g6 45. fxg6 h6 46. Kg3 Kg7 47. e5 Re7 48. Re1 a5 49. Rf4 Rd5 50. Rf5 Re6 51. Kf3 Rxg6 52. Ke4 Rd7 53. Rff1 Kh7 54. Rg1 Rc6 55. Rg2 b4 56. a4 Re6 57. Kf5 Rde7 58. Rg4 h5 59. Rxd4 Rg6 60. Rh4 Rf7+ 61. Ke4 Rg5 62. Kd5 Rf6 63. Re2 Kh6 64. d4 Rf8 65. Rhe4 Kh7 66. Kd6 Rd8+ 67. Kc7 Rgg8 68. e6 Rc8+ 69. Kd6 Rcd8+ 70. Kc5 Rc8+ 71. Kd5 Rcd8+ 72. Kc4 Rc8+ 73. Kb3 Rg5 74. e7 Re8 75. Kc4 Rc8+ 76. Kd3 Re8 77. Kc4 Rc8+ 78. Kd3 b3 79. cxb3 Re8 80. Kc4 Rc8+ 81. Kd3 Re8 82. R2e3 Kg6 83. Kc4 Rc8+ 84. Kd3 Re8 85. Rf3 Kg7 86. Kc4 Rc8+ 87. Kd3 Re8 88. Kc3 Rc8+ 89. Kd2 Re8 90. Kd3 Kg8 91. Kc4 Rc8+ 92. Kd3 Re8 93. Rfe3 Kf7 94. Rf4+ Kg8 95. Kc4 Rc8+ 96. Kd3 Re8 97. Re6 Rd5 98. Kc4 Rd7 99. Re5 Rc7+ 100. Kd3 Rcxe7 101. Rxh5 Re3+ 102. Kc4 Kg7 103. Rg5+ Kh6 104. Rxa5 Re1 105. Rb5 Rc1+ 106. Kb4 Re3 107. Rf8 Kg7 108. Rd8 Rb1 109. Kc4 Rc1+ 110. Kd5 Rf3 111. Ke4 Rf2 112. Rb7+ Kg6 113. Rg8+ Kh6 114. Rb6+ Kh5 115. a5 Re1+ 116. Kd5 Rf5+ 117. Kc4 Rc1+ 118. Kb4 Rf3 119. Rb7 Kh6 120. Rh8+ Kg6 121. Rb6+ Kg5 122. Rb5+ Kg6 123. Rg8+ Kf7 124. Rgb8 Rd3 125. Rd5 Ke6 126. Rc5 Rxd4+ 127. Kb5 Rb1 128. Rc3 Rd5+ 129. Ka6 Rdd1 130. Rb6+ Ke5 131. b4 Ra1 132. Rc5+ Kf4 133. Re6 Rd8 134. Kb7 Kf3 135. Rf6+ Ke3 136. a6 Rd4 137. b5 Rda4 138. Rf7 R4a2 139. Rf8 Kd4 140. Rcf5 Re2 141. R8f7 Re8 142. Rc7 Ke4 143. Rh5 Ke3 144. a7 Rf8 145. b6 Kf4 146. Rc8 Rf7+ 147. Rc7 Rf8 148. Rhh7 Ke3 149. Rhd7 Ke2 150. Rc8 Rf6 151. a8=Q Rxa8 152. Rxa8 Re6 153. Kc7 Re3 154. b7 Rc3+ 155. Kd8 Rb3 156. b8=N Rc3 157. Nc6 Rxc6 158. Re7+ Kf3 159. Kd7 Rg6 160. Rf8+ Kg2 161. Ref7 Kg3 162. Rh8 Rg4 163. Ke8 Re4+ 164. Kf8 Rf4 165. Rxf4 Kxf4 166. Ke7 Ke5 167. Rh4 Kd5 168. Kf6 Kd6 169. Rh5 Kd7 170. Rd5+ Kc6 171. Ke6 Kc7 172. Rc5+ Kb7 173. Kd7 Kb6 174. Rh5 Kb7 175. Rh6 Kb8 176. Kc6 Ka7 177. Rh8 Ka6 178. Ra8# 1-0[/pgn]

The opposite also happens, here's a game where Leela running on the fastest GPUs I know of lost against a Stockfish derivative running on hardware slower than mine:

[pgn][White "Leela"] [Black "Eman on slow hardware"] [Result "0-1"] 1. Nf3 d5 2. g3 Nf6 3. Bg2 c6 4. c4 dxc4 5. O-O Nbd7 6. Qc2 Nb6 7. Na3 Be6 8. Ne5 h5 9. Naxc4 Nxc4 10. Nxc4 h4 11. Ne5 hxg3 12. hxg3 Qd4 13. Qc3 Qd6 14. d4 Rd8 15. Qa5 Qxd4 16. Be3 Qd6 17. Bf4 Rh5 18. Bf3 Bg4 19. Bg2 g6 20. Qc3 Qe6 21. Nxg4 Nxg4 22. Rfd1 Rxd1+ 23. Rxd1 f5 24. Bf3 g5 25. Bc7 Qh6 26. Rd8+ Kf7 27. Qc4+ e6 28. Bxg4 Rh1+ 29. Kg2 fxg4 30. Qxg4 Rc1 31. Qf3+ Ke7 32. Qa3+ c5 33. Kf3 g4+ 34. Kxg4 Qg6+ 35. Kf3 Bh6 36. e3 Qh5+ 37. g4 Qh3+ 38. Bg3 Qh1+ 39. Ke2 Qf1+ 40. Kf3 Kxd8 41. Qa5+ Ke8 42. Qa4+ b5 43. Qb3 Qh1+ 44. Ke2 Kf7 45. Qd3 Re1+ 46. Kd2 Rd1+ 47. Kc2 Rxd3 48. b3 Qd1+ 49. Kb2 Rd2+ 50. Ka3 Qc1# 0-1 [/pgn]
I seemed to have found the error in the first game but have't as yet looked at the second.

Have you tried playing at the LSS? (chess-server) I have found that people tend to cause more trouble there when compared to similarly rated opponents from other sites, and if you already have an ICCF rating, they allow you to start there so you skip the three years it'd require you to beat weaklings to reach it.
I haven't. I think for the time being I'm going to analyze Leela's games and wait for the hardware situation to develop plus I have other things going on in real life that I must attend to first. But I have book marked the site and when I'm ready I'll give it a try. I do have an ICCF rating so that should make it easier.

By the way, do you know where I can down load most / all of Leela's games?

Regards,

Zenmastur
Only 2 defining forces have ever offered to die for you.....Jesus Christ and the American Soldier. One died for your soul, the other for your freedom.
corres
Posts: 3657
Joined: Wed Nov 18, 2015 11:41 am
Location: hungary

Re: buying a new computer

Post by corres »

Zenmastur wrote: Sat Jul 13, 2019 2:35 am
corres wrote: Fri Jul 12, 2019 9:58 am Some note:
Only the NN engines (like Leela) has its "own openings".
AB engines have only tendency to play lines from start position.
If you want to create a good book for an AB engine you need huge number of games between that engine and many other engines to know the weakness of that AB engine. The book should be able to help the engine to divert lines in what the engine is weak and to keep the engine on the winning lines.
AB engines have a tendency to play the same opening moves over and over regardless of how good they are because it has no way to change it's evaluation of the position. If using the same time control they are destine to repeat their opening errors over and over. Not only does this lead to boring play, it's what made it possible for Alphazero to beat SF8 over and over in the same openings. This could NEVER have happen if a “proper” book was implemented in SF (or any other AB engine) without a HUGE amount of cherry picking by Deepmind (i.e. a massive number of games would have needed to be played)
...
As you later noted the own opening line of an NN engine is more tighter than an AB engine.
The most important difference between them is the opening line of an NN engine is determined by its inherent "book" what reflect the result of learning from self play during its development even the opening lines of an AB engines is (mainly) determined by the PSQT table. The PSQT table contains very less information than an NN engine own "book". This is the explanation why AB engines play alone more weaker the openings than an NN engine.
Originally the AB engines were developed for playing middle games. Later they were enlarged with endgame knowledge. At that time when the knowledge about chess engines was the privilege of some peoples only and the good engines were commercials every (AB) engines had its own opening book. But that time the development of chess engines was more slower than nowadays so there was no needing to change frequently the opening books. Also important to know that time it was inhibited to use built-in book.
Appearance of NN engines changed the situation. They have a kind of "built-in book" so using the old rule it should arranged competitions for AB engines and NN engines separately. But everybody curious to know which engine is the best so these "incorrect" competitions are expected.
But it is not a surprise only the NN engine fans force to play AB engines without book for demonstrating the "superiority" of NN engines.
Last edited by corres on Sat Jul 13, 2019 11:10 am, edited 1 time in total.
jp
Posts: 1470
Joined: Mon Apr 23, 2018 7:54 am

Re: buying a new computer

Post by jp »

Zenmastur wrote: Sat Jul 13, 2019 8:57 am
Heh, recently I was commenting about how someone built a Cluster with that approach in mind, and the Cluster eventually arrived at "1.e4 e5 2.Qf3!?" with its learning and reaching won positions against its opponents, and people were commenting about how sinful that was and about how that variation was bad no matter what, by chess principles. I wonder if opening theory of the future will look absolutely alien compared to what we have today, just like it happened in Go.
I suspect that NN program will have a large impact on opening theory. They seem in their element when confronted with positions that are too difficult for AB engines tactical calculations to be very effective. But I doubt opening theory will look alien. It's seems more likely that it will look more refined and more strongly based on principles.
There's no sign so far that they'll have any bigger impact on opening theory than traditional engines. So far, it looks like, if left on their own, they are just reproducing old theory with a preference for "safer" openings.
corres
Posts: 3657
Joined: Wed Nov 18, 2015 11:41 am
Location: hungary

Re: buying a new computer

Post by corres »

Zenmastur wrote: Sat Jul 13, 2019 2:35 am ...
When I think of the lost opportunity and squandered games generated in the SF testing frame work it makes me sick to my stomach. The complete lack of any effort to create a “proper” book by the chess community as a whole is quite disheartening. Only because of the rise of NN engines are their eyes being opened. A pity it took so long!
Really pity but to create a good opening book it is a time consuming task.
When you create a book for a given version of Stockfish on that time when you finished the work there is a newer Stockfish version with different preferences and you would start to make a newer book.
The above texts are devoted to opening books for engine-engine competitions.
But there are very different requirements about book what are used for CC gaming.
Zenmastur
Posts: 919
Joined: Sat May 31, 2014 8:28 am

Re: buying a new computer

Post by Zenmastur »

jp wrote: Sat Jul 13, 2019 11:03 am There's no sign so far that they'll have any bigger impact on opening theory than traditional engines. So far, it looks like, if left on their own, they are just reproducing old theory with a preference for "safer" openings.
I'm not sure I agree with this statement. I don't think NN have been around long enough to know for sure and I don't see them getting weaker or being played less in the future.
corres wrote: Sat Jul 13, 2019 10:53 am As you later noted the own opening line of an NN engine is more tighter than an AB engine.
The most important difference between them is the opening line of an NN engine is determined by its inherent "book" what reflect the result of learning from self play during its development even the opening lines of an AB engines is (mainly) determined by the PSQT table. The PSQT table contains very less information than an NN engine own "book". This is the explanation why AB engines play alone more weaker the openings than an NN engine.
Originally the AB engines were developed for playing middle games. Later they were enlarged with endgame knowledge. At that time when the knowledge about chess engines was the privilege of some peoples only and the good engines were commercials every (AB) engines had its own opening book. But that time the development of chess engines was more slower than nowadays so there was no needing to change frequently the opening books. Also important to know that time it was inhibited to use built-in book.
Appearance of NN engines changed the situation. They have a kind of "built-in book" so using the old rule it should arranged competitions for AB engines and NN engines separately. But everybody curious to know which engine is the best so these "incorrect" competitions are expected.
But it is not a surprise only the NN engine fans force to play AB engines without book for demonstrating the "superiority" of NN engines.
The PSQT in AB engines is part of the problem. Eliminating it's influence on opening play would be a boon if you ask me. My opinion of the “built-in” book of NN engines is that the engine would be better off if it were removed by not allowing the NN to actually taking part in the opening in favor of a MAB book in it's place. That way the NN can concentrate it's limited abilities on the middle game. i.e no training in the opening. Let the book routine take care of that aspect of the game.
corres wrote: Sat Jul 13, 2019 11:08 am
Zenmastur wrote: Sat Jul 13, 2019 2:35 am ...
When I think of the lost opportunity and squandered games generated in the SF testing frame work it makes me sick to my stomach. The complete lack of any effort to create a “proper” book by the chess community as a whole is quite disheartening. Only because of the rise of NN engines are their eyes being opened. A pity it took so long!
Really pity but to create a good opening book it is a time consuming task.
When you create a book for a given version of Stockfish on that time when you finished the work there is a newer Stockfish version with different preferences and you would start to make a newer book.
The above texts are devoted to opening books for engine-engine competitions.
But there are very different requirements about book what are used for CC gaming.


As I already pointed out this time can be hidden in the testing frame work for AB engines. In the case where it wasn't desirable to use test games to produce the book, if could still be constructed using very fast games like 1 +0.1 seconds or even faster if node count in the search is used instead a time constraint. Test games on SF testing frame work can proceed at 1000 games per minute. With the same resources, (e.g. cores * time) perhaps 2,000 to 5,000 games per minute could be played. While it would be somewhat time consuming, when the frame work is empty this would be a good use for it's available resources.

There is no need to create a new book just because a new version of the program has come out. In fact, you can make this type of book using MC play out without any engine, just the book routine and the MC routines. It will, of course, converge to good solutions much faster and be much smaller in size if an engine is involved in it's creation. Even if the engine uses only 100 milliseconds or less per move it will still produce a good book and the time required to get the book up and running would be considerably shortened.

Regards,

Zenmastur
Only 2 defining forces have ever offered to die for you.....Jesus Christ and the American Soldier. One died for your soul, the other for your freedom.
zullil
Posts: 6442
Joined: Tue Jan 09, 2007 12:31 am
Location: PA USA
Full name: Louis Zulli

Re: buying a new computer

Post by zullil »

Zenmastur wrote: Fri Jul 12, 2019 10:38 pm
It looks like 14... Bd7 wasn't the best move.

Code: Select all

(  [Stockfish 010719 64 BMI2] 50:+0.00 14...Bg5 15.h4 Be3+ 16.Kh2 f6 17.Nf3 Bxc1 18.Rxc1 Qb6 19.Rb1 Kh8 20.Qe2 Bd7 21.Bh3 Qc7 22.Rg1 Ne7 23.Nd2 b6 24.Rbf1 h6 25.Bg4 Rg8 26.Bh5 Raf8 27.b3 Kh7 28.a4 Qc6 29.Nc4 Bc8 30.Qf3 Qc7 31.Nd2 Bd7 32.Ra1 Qb7 33.Nc4 Qc6 34.Bg4 Qc7 35.Nd2 Rc8 36.Bh5 Rcf8 37.Qd1 Qc6 38.g4 g6 39.Bxg6+ Nxg6 40.fxg6+ Rxg6 )
(  [Stockfish 010719 64 BMI2] 50:+0.00 14...a5 15.Nf3 a4 16.g4 f6 17.Rf2 g5 18.h4 h6 19.Bf1 Kf7 20.Rh2 Bd7 21.Bd2 Qc7 22.Qc1 Ke8 23.Rb1 Kd8 24.Be1 Kc8 25.a3 b6 26.h5 Bd6 27.c4 Na5 28.Nd2 Nb3 29.Qd1 Na5 30.Qc2 Bc6 31.Qc1 Nb3 32.Qc2 )
(  [Stockfish 010719 64 BMI2] 50:+0.00 14...b5 15.a4 bxa4 16.Rxa4 a5 17.h4 Ba6 18.Ra1 Qc7 19.Kh2 Rfb8 20.Nc4 Qd8 21.Rf3 Qc7 )
It's been so long since I posted on this forum I forgot how to post a board! :shock: :oops: :roll:

Regards,

Zenmastur
Thanks for the analysis. Does your output represent Stockfish with MultiPV=3 to depth 50? Is it possible that 14...Bd7 also evaluates as 0.00? That seems uncertain from the content you've posted.