Winter

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

Moderators: hgm, Rebel, chrisw

User avatar
Graham Banks
Posts: 41500
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Winter

Post by Graham Banks »

Great to hear this, Jonathan. :)
gbanksnz at gmail.com
bastiball
Posts: 5254
Joined: Tue Oct 20, 2020 4:18 am
Full name: Basti Dangca

Re: Winter

Post by bastiball »

jorose wrote: Wed Sep 21, 2022 12:51 am As some of you may know, I have been active again in recent weeks, though not as active as I once was.

Currently I am working on a new Winter net and training codebase. This time it should be much easier for others to train new networks for Winter should they so choose and also sharing networks will be possible as I will be loading networks with incbin.h, as other projects do as well.

The downside is that for the moment I will be moving away from my handcrafted input features, at least temporarily. I worry this will make Winter less unique and make it harder to control its style, but I have some ideas I would like to try and feel the upsides outweigh the downsides.

One of the things I am trying out, is training Winter on FRC and DFRC games only, perhaps even filtering out the standard start position. This would make it impossible for Winter to overfit or memorize openings from standard chess. This to me makes it a very interesting engine to analyze the early opening in.

It is only very recently that I got everything up and running, so I started the day with Winter having close battles with Fairymax (1900 CCRL...) to a point now, where its most recent test was a 2-0 against Fridolin (CCRL 2750). The following is Winter's game with white. The current dev version of Winter is the only engine of this calibre that I know of that selects the Kings Gambit with white, without any opening book.

[pgn][Event "Computer Chess Game"]
[Site "Jon-Yoga"]
[Date "2022.09.20"]
[Round "-"]
[White "Winter Dev"]
[Black "Fridolin 4.00"]
[Result "1-0"]
[TimeControl "60+5"]
[Annotator "1. +0,10 1... -0,44"]

1. e4 {+0,10/20} e5 {-0,44/16 8} 2. f4 {+0,09/21 6} exf4 {+0,55/14 7} 3.
Nf3 {+0,04/18 5} g5 {+0,39/14 7} 4. d4 {+0,34/18 8} g4 {+0,90/15 9} 5. Bxf4
{+0,23/17 5} gxf3 {+0,81/14 7} 6. Nc3 {+0,19/17 7} fxg2 {+1,56/16 11} 7.
Bxg2 {+0,35/19 6} d6 {+1,50/16 8} 8. Qd2 {+0,44/17 8} Bg7 {+1,83/15 16} 9.
O-O-O {+0,48/17 7} Ne7 {+2,19/15 6} 10. Bg5 {+0,63/18 8} h6 {+2,04/15 8}
11. Bh4 {+0,74/18 8} c6 {+1,76/14 6} 12. Rhg1 {+0,58/17 8} Bg4 {+1,50/14 6}
13. Rdf1 {+0,56/18 5} Qb6 {+1,60/15 9} 14. Qf2 {+0,82/18 4} Be6
{+1,50/15 6} 15. e5 {+0,58/21 6} Rf8 {+0,49/14 7} 16. Bxe7 {+1,74/18 4}
Kxe7 {-0,72/15 8} 17. Qh4+ {+2,02/19 4} Ke8 {-0,07/14 6} 18. Bh3
{+1,84/18 5} Qd8 {-0,49/15 6} 19. Qh5 {+2,86/19 8} Bxh3 {-0,59/17 5} 20.
Qxh3 {+3,35/20 5} Qd7 {-0,56/17 5} 21. Qh5 {+3,66/21 4} Bh8 {-2,05/16 5}
22. e6 {+3,67/22 6} Qxe6 {-2,42/19 5} 23. Re1 {+3,77/24 5} Be5 {-2,50/18 5}
24. dxe5 {+4,85/20 4} d5 {-3,22/19 5} 25. Ne2 {+5,67/20 5} Kd7 {-3,79/16 5}
26. Nd4 {+6,48/22 4} Qe8 {-3,19/16 5} 27. e6+ {+6,48/21 8} fxe6
{-3,45/15 5} 28. Rg7+ {+17,66/24 4} Kc8 {-11,18/16 5} 29. Qg4 {+17,66/25 6}
Nd7 {-12,28/17 5} 30. Nxe6 {+17,66/24 5} Rf7 {-13,14/17 5} 31. Rg8
{+17,66/24 6} Re7 {-14,60/18 5} 32. Rxe8+ {+1000,09/19 7} Rxe8
{-20,26/18 5} 33. Qf4 {+1000,08/19 4} Ne5 {-1000,07/14 1,1} 34. Rxe5
{+1000,06/18 4} a6 {-1000,07/7 0,1} 35. Qf7 {+1000,05/17 7} Rxe6
{-1000,08/6 0,1} 36. Rxe6 {+1000,04/18 5} Kb8 {-1000,08/2 0,1} 37. Re7
{+1000,03/18 6} a5 {-1000,02/3 0,1} 38. Rxb7+ {+1000,02/18 5} Kc8
{-1000,01/1 0,1} 39. Qc7# {+1000,01/19 7}
{Xboard adjudication: Checkmate} 1-0

[/pgn]
That's a wonderful game by Winter :D
Basti Dangca
CCRL testing group
jorose
Posts: 361
Joined: Thu Jan 22, 2015 3:21 pm
Location: Zurich, Switzerland
Full name: Jonathan Rosenthal

Re: Winter

Post by jorose »

I thought I would go ahead and report positive progress.

The new Winter nets are now close to competitive at Double Fischer Random and hyperbullet. I would estimate within about 50 Elo under those conditions. This is with training data stemming from roughly 350k CCRL FRC games and another 25k self play hyperbullet DFRC games.

Unfortunately, the gap in standard chess is probably pretty big still and I am a little worried that the newer Winter doesn't have as good scaling either.

At this point, my conservative goal is to have the new Winter better at Fischer Random and not worry about other goals until that milestone is reached.

Stylewise, I am very happy at the moment. While sparring against Cheng4.40, the draw rate was in the single digits (!) and against Winter 0.9.9 the draw rate is in the low teens. At this point, I am worrying slightly that there might be a bug / unintended feature making Winter this aggressive, but at this point I haven't found anything like that.
-Jonathan
jorose
Posts: 361
Joined: Thu Jan 22, 2015 3:21 pm
Location: Zurich, Switzerland
Full name: Jonathan Rosenthal

Re: Winter

Post by jorose »

Better Winter nets have been coming out almost daily and at this point I feel the current version is roughly on paar to before I moved away from handcrafted features in regular chess. In Chess960, Winter should be much stronger than 0.9.5 which was tested by CCRL. As such I am close to wanting to release.

Not everything is good, the drawrate has gotten to normal ranges, which I think has to do with the fact that Winter values material much more than it used to. The previous overaggression was really a bit over the top, so I am somewhat fine with this. I would like feedback about its playing style when I do get around to releasing. Longterm I would potentially like to make changes to make Winter favor going for sacrifices, but at this point I am not certain how it compares to older Winter versions.

Finally, the primary reason for posting is that I wanted to compile Winter for Windows and I realized my setup to compile for that platform is broken. I used to cross compile from Linux for Windows with clang. Somewhere in that toolchain something is broken and dealing with such issues is a pain. If there is anybody who would like to make the official Windows compile for me, I am more than happy to have some help there and would of course give credit for these compiles on the github release page. Alternatively, if somebody has a suggestion on how to do this in a better way, I am all ears.

Following are two games by Winter_0.9.30 from the regular starting position, without opening book, against Vajolet.

[pgn]
[Event "?"]
[Site "?"]
[Date "2022.10.24"]
[Round "?"]
[White "Vajolet2_2.8_bmi"]
[Black "Winter_0.9.30"]
[Result "0-1"]
[ECO "A06"]
[GameDuration "00:17:28"]
[GameEndTime "2022-10-25T00:01:32.905 EDT"]
[GameStartTime "2022-10-24T23:44:04.667 EDT"]
[Opening "Reti Opening"]
[PlyCount "166"]
[TimeControl "300+3"]

1. Nf3 {+0.17/22 11s} d5 {-0.10/20 13s} 2. d4 {+0.13/21 11s} Bf5 {-0.06/19 19s}
3. e3 {+0.10/21 11s} e6 {-0.05/20 9.6s} 4. Bd3 {+0.03/22 10s}
Bxd3 {0.00/20 9.7s} 5. cxd3 {+0.12/21 9.0s} Bd6 {0.00/20 12s}
6. Qb3 {+0.33/21 8.3s} b6 {+0.27/19 8.9s} 7. e4 {+0.15/22 8.4s}
c6 {+0.19/22 8.8s} 8. Bg5 {+0.12/22 11s} Ne7 {+0.34/20 16s}
9. O-O {+0.24/22 23s} O-O {+0.26/19 16s} 10. Nc3 {+0.19/22 8.6s}
h6 {+0.25/20 11s} 11. Bd2 {+0.05/22 7.8s} Nd7 {+0.31/18 15s}
12. Rfe1 {+0.05/23 6.6s} Rc8 {+0.31/19 7.7s} 13. Rac1 {+0.03/22 9.1s}
Bb8 {+0.33/19 10s} 14. Ne2 {+0.07/19 8.9s} c5 {+0.29/19 13s}
15. Qa3 {+0.11/22 9.4s} Re8 {+0.29/18 13s} 16. dxc5 {+0.21/22 11s}
Rxc5 {+0.33/18 11s} 17. Rxc5 {+0.11/23 40s} bxc5 {+0.16/17 7.3s}
18. Nc3 {+0.14/22 5.8s} Qc8 {0.00/20 12s} 19. b4 {+0.19/21 5.6s}
cxb4 {+0.47/19 7.4s} 20. Qxb4 {-0.13/24 6.6s} dxe4 {+0.50/19 8.9s}
21. Nxe4 {-0.17/24 9.2s} Qa6 {+0.55/20 6.5s} 22. Qb3 {-0.13/23 5.3s}
Ne5 {+0.56/20 5.6s} 23. Bxh6 {-0.07/23 5.2s} Nxf3+ {+0.69/21 8.4s}
24. gxf3 {-0.20/25 6.3s} Qa5 {+0.84/21 8.4s} 25. Bd2 {-0.31/24 6.9s}
Qh5 {+1.03/21 6.9s} 26. f4 {-0.41/23 5.1s} Ng6 {+1.17/20 9.1s}
27. d4 {-0.51/21 6.6s} Rd8 {+1.04/19 9.2s} 28. Ng3 {-0.54/22 5.8s}
Qg4 {+1.05/20 6.7s} 29. Re4 {-0.63/22 7.0s} Nh4 {+1.31/21 8.6s}
30. f5 {-0.85/24 5.0s} Qh3 {+1.58/21 5.2s} 31. Rxh4 {-1.04/23 6.4s}
Qxh4 {+1.52/20 4.4s} 32. fxe6 {-0.66/23 4.2s} Qe7 {+1.63/21 5.3s}
33. Ba5 {-0.82/21 8.2s} Rc8 {+1.49/21 6.8s} 34. exf7+ {-1.03/20 4.1s}
Qxf7 {+1.57/20 5.8s} 35. Qb1 {-1.07/22 4.5s} Rf8 {+1.73/20 7.6s}
36. Qc2 {-0.89/22 6.1s} Bd6 {+1.75/19 4.0s} 37. a4 {-0.96/22 3.9s}
Qf3 {+1.53/19 7.2s} 38. Be1 {-0.91/21 5.4s} Kh8 {+1.53/18 7.2s}
39. a5 {-0.68/24 5.5s} Be7 {+1.54/19 3.8s} 40. Qd2 {-0.73/24 4.2s}
Bf6 {+1.86/20 4.6s} 41. Qe3 {-1.01/21 3.8s} Qd1 {+1.52/19 3.8s}
42. Qe6 {-1.35/22 4.1s} Qxd4 {+1.68/22 6.8s} 43. Ne4 {-1.33/22 5.2s}
Qe5 {+1.48/21 5.7s} 44. Qh3+ {-1.47/21 5.5s} Kg8 {+1.72/21 3.6s}
45. Qg4 {-1.57/23 26s} Qd5 {+1.77/20 6.4s} 46. Bb4 {-1.53/20 3.9s}
Rf7 {+1.97/20 3.8s} 47. Kg2 {-1.64/21 5.8s} Bd8 {+2.32/20 4.3s}
48. f3 {-1.77/22 5.7s} Qf5 {+2.55/21 4.6s} 49. Nf2 {-1.87/23 3.1s}
Qxg4+ {+3.94/20 3.2s} 50. fxg4 {-2.17/23 3.6s} Rf4 {+4.42/20 4.3s}
51. Bc5 {-2.34/21 3.8s} a6 {+4.54/20 4.2s} 52. h3 {-2.39/23 3.3s}
Bxa5 {+4.96/21 5.9s} 53. Nd1 {-2.57/21 4.9s} Bb4 {+5.26/23 3.2s}
54. Be3 {-2.82/23 5.3s} Rc4 {+5.51/23 2.9s} 55. Kf3 {-3.15/22 5.7s}
a5 {+5.72/23 4.3s} 56. Nb2 {-3.16/22 3.0s} Rc2 {+5.93/23 5.7s}
57. Na4 {-3.35/23 3.9s} Rh2 {+5.93/24 3.3s} 58. Ke4 {-3.34/23 3.0s}
Rxh3 {+5.93/25 5.5s} 59. Nb2 {-3.47/22 3.6s} Rg3 {+6.98/19 5.4s}
60. g5 {-3.66/20 3.8s} Be7 {+7.66/22 3.0s} 61. Bf4 {-3.89/20 5.0s}
Rb3 {+7.48/22 5.2s} 62. Nd3 {-4.72/20 3.7s} a4 {+8.43/23 3.3s}
63. Nc1 {-5.03/22 4.2s} Rb4+ {+8.84/25 3.3s} 64. Ke3 {-5.61/25 10s}
Rc4 {+10.61/25 2.7s} 65. Kf3 {-5.78/23 2.6s} a3 {+17.66/29 2.7s}
66. Kg4 {-16.32/20 3.9s} Bd6 {+17.66/24 3.0s} 67. Kf5 {-155.01/23 4.0s}
Bxf4 {+17.66/25 4.6s} 68. Nb3 {-M38/23 3.0s} Rb4 {+17.66/26 2.9s}
69. Na1 {-155.10/22 3.0s} Bd6 {+17.66/29 3.1s} 70. Ke6 {-155.02/21 2.7s}
Bf8 {+17.66/28 5.0s} 71. Nc2 {-155.02/21 3.7s} Rb6+ {+17.66/27 4.9s}
72. Kd5 {-168.86/23 4.1s} a2 {+17.66/29 3.0s} 73. Ke4 {-M42/25 2.9s}
Rb1 {+M63/19 3.5s} 74. Kd3 {-M22/24 3.1s} Bc5 {+M37/19 4.8s}
75. Kd2 {-M18/27 2.8s} Rb2 {+M19/19 3.2s} 76. Kd3 {-M16/30 3.2s}
Rxc2 {+M15/19 4.0s} 77. Kxc2 {-M14/30 2.8s} a1=Q {+M13/22 2.7s}
78. Kd2 {-M12/32 2.9s} Qd4+ {+M11/22 2.8s} 79. Kc2 {-M10/49 2.6s}
Qc4+ {+M9/23 2.8s} 80. Kd2 {-M8/100 1.3s} g6 {+M7/23 4.7s}
81. Kd1 {-M6/100 0.008s} Qd3+ {+M5/24 2.9s} 82. Ke1 {-M4/100 0.028s}
Qc2 {+M3/25 3.3s} 83. Kf1 {0s} Qf2# {+M1/26 3.2s, Black mates} 0-1

[Event "?"]
[Site "?"]
[Date "2022.10.25"]
[Round "?"]
[White "Winter_0.9.30"]
[Black "Vajolet2_2.8_bmi"]
[Result "1-0"]
[ECO "C46"]
[GameDuration "00:16:55"]
[GameEndTime "2022-10-25T00:24:13.983 EDT"]
[GameStartTime "2022-10-25T00:07:18.354 EDT"]
[Opening "Four knights"]
[PlyCount "159"]
[TimeControl "300+3"]
[Variation "Gunsberg Variation"]

1. e4 {+0.25/20 11s} e5 {-0.16/22 8.6s} 2. Nf3 {+0.23/21 18s} Nc6 {-0.06/22 12s}
3. Nc3 {+0.08/20 15s} Nf6 {-0.19/23 11s} 4. a3 {+0.14/20 14s} d5 {-0.04/22 7.9s}
5. exd5 {+0.29/20 10s} Nxd5 {-0.06/24 11s} 6. Bb5 {+0.21/22 9.7s}
Nxc3 {-0.21/23 7.9s} 7. bxc3 {+0.21/22 16s} Bd6 {-0.17/21 11s}
8. d4 {+0.08/19 8.4s} O-O {-0.14/21 9.7s} 9. Bxc6 {+0.35/21 15s}
bxc6 {-0.26/26 8.1s} 10. dxe5 {+0.31/21 12s} Qe7 {-0.13/25 8.6s}
11. O-O {+0.78/20 14s} Bxe5 {-0.21/27 7.3s} 12. Re1 {+0.33/21 8.0s}
Bg4 {-0.39/27 17s} 13. Bf4 {+0.38/23 9.2s} f6 {-0.41/27 9.2s}
14. Qe2 {+0.41/24 8.0s} Qc5 {-0.44/26 7.9s} 15. Bxe5 {+0.50/24 8.7s}
Bxf3 {-0.43/27 8.9s} 16. Qxf3 {+0.54/24 10.0s} fxe5 {-0.36/27 8.8s}
17. Qe3 {+0.33/23 8.2s} Qxe3 {-0.53/25 8.6s} 18. Rxe3 {+0.36/24 12s}
Rad8 {-0.35/25 6.2s} 19. Kf1 {+0.36/22 6.0s} Rd2 {-0.22/24 6.7s}
20. Re2 {+0.40/23 11s} Rd5 {-0.23/24 6.1s} 21. Rae1 {+0.38/22 11s}
Rc5 {-0.16/22 5.9s} 22. Re3 {+0.47/20 6.7s} g6 {-0.18/21 7.2s}
23. h4 {+0.49/18 10s} Kg7 {-0.22/21 6.3s} 24. g3 {+0.37/20 8.6s}
Rf7 {-0.15/24 5.9s} 25. Rd3 {+0.48/21 9.5s} Ra5 {-0.10/24 5.9s}
26. c4 {+0.50/21 5.2s} Kf6 {-0.06/24 8.5s} 27. Re4 {+0.48/23 9.0s}
h6 {0.00/24 7.5s} 28. Kg2 {+0.44/22 5.2s} g5 {0.00/26 5.3s}
29. f3 {+0.55/20 7.4s} Ke6 {0.00/25 7.4s} 30. Kh3 {+0.57/22 7.1s}
Rd7 {0.00/26 5.0s} 31. hxg5 {+0.33/23 6.1s} hxg5 {+0.13/27 7.0s}
32. Rxd7 {0.00/25 6.0s} Kxd7 {+0.07/29 6.3s} 33. Kg4 {0.00/27 4.0s}
Ke6 {+0.02/28 6.1s} 34. Re2 {+0.06/26 7.8s} Rxa3 {+0.12/25 6.9s}
35. f4 {+0.53/23 3.9s} gxf4 {0.00/26 5.6s} 36. gxf4 {+0.36/24 7.5s}
Rc3 {0.00/28 5.2s} 37. Rxe5+ {+0.32/27 5.4s} Kd6 {0.00/29 4.8s}
38. Re2 {+1.28/25 4.7s} Rxc4 {0.00/26 11s} 39. Kg5 {+1.64/28 4.6s}
Rc3 {-0.61/27 12s} 40. f5 {+1.55/30 4.5s} Rg3+ {-0.63/26 9.5s}
41. Kh5 {+1.55/27 5.5s} Rf3 {-0.81/24 4.4s} 42. Kg6 {+1.56/28 6.7s}
Rg3+ {-0.80/23 6.1s} 43. Kf7 {+1.28/26 6.5s} a5 {-0.86/24 5.9s}
44. f6 {+1.23/27 5.1s} a4 {0.00/25 5.7s} 45. Kf8 {+1.23/28 4.0s}
a3 {-1.79/25 18s} 46. f7 {+1.24/28 5.2s} Kd7 {-2.10/26 5.2s}
47. Rd2+ {+1.28/24 3.1s} Kc8 {-2.12/26 4.0s} 48. Rd4 {+1.09/24 4.0s}
c5 {-1.51/23 4.3s} 49. Rc4 {+1.59/25 4.2s} Kb7 {-0.87/24 10s}
50. Rxc5 {+1.54/20 3.9s} Rf3 {-0.90/24 4.1s} 51. Rb5+ {+1.54/23 5.9s}
Kc6 {-2.02/24 5.0s} 52. Rb8 {+1.47/26 3.9s} Kd6 {-2.43/25 5.2s}
53. Rc8 {+1.48/28 4.4s} Rf1 {-0.83/23 3.3s} 54. Ra8 {+3.10/22 4.7s}
Ke6 {-0.58/23 4.6s} 55. Ra6+ {+1.87/23 3.2s} c6 {-0.95/25 3.5s}
56. Rxc6+ {+1.36/22 2.9s} Kd5 {-0.93/25 5.2s} 57. Ra6 {+1.02/23 3.9s}
Ra1 {-0.62/22 5.2s} 58. Ra5+ {+0.92/22 5.5s} Kc6 {-0.58/25 3.9s}
59. c3 {+3.34/20 3.6s} a2 {-3.92/20 4.8s} 60. c4 {+3.76/25 3.2s}
Kd7 {-6.06/23 4.0s} 61. Rd5+ {+3.76/24 3.1s} Kc6 {-10.58/23 19s}
62. Rd2 {+3.88/26 3.1s} Kc5 {-11.20/21 3.9s} 63. Rg2 {+4.00/26 3.2s}
Re1 {-9.26/17 5.4s} 64. Rxa2 {+4.08/24 2.7s} Rg1 {-153.00/20 2.7s}
65. Rf2 {+4.40/27 3.4s} Kxc4 {-153.00/22 2.7s} 66. Ke7 {+4.40/24 5.3s}
Rg7 {-166.76/24 6.5s} 67. Kd6 {+17.66/23 5.2s} Rxf7 {-169.97/25 2.7s}
68. Rxf7 {+M29/29 3.3s} Kd4 {-M26/32 2.9s} 69. Re7 {+M23/33 2.6s}
Kc4 {-M24/33 3.7s} 70. Re4+ {+M21/35 2.8s} Kd3 {-M22/35 2.7s}
71. Kd5 {+M19/39 2.9s} Kc3 {-M20/36 3.0s} 72. Rd4 {+M17/39 3.5s}
Kb3 {-M16/39 2.7s} 73. Rc4 {+M15/40 3.3s} Kb2 {-M14/49 2.8s}
74. Kd4 {+M13/41 3.9s} Kb3 {-M12/86 2.7s} 75. Kd3 {+M11/43 4.2s}
Kb2 {-M10/100 0.30s} 76. Rb4+ {+M9/46 3.8s} Ka3 {-M8/100 0.021s}
77. Kc3 {+M7/47 2.4s} Ka2 {0s} 78. Rc4 {+M5/49 3.6s} Ka1 {-M4/100 0.002s}
79. Kc2 {+M3/49 4.9s} Ka2 {0s} 80. Ra4# {+M1/51 3.2s, White mates} 1-0

[/pgn]
-Jonathan