Fat Titz 1.0 released

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

Moderators: hgm, Rebel, chrisw

supersharp77
Posts: 1242
Joined: Sat Jul 05, 2014 7:54 am
Location: Southwest USA

Re: Fat Titz 1.0 released..Engine "Purists" Clone The Clones!

Post by supersharp77 »

Sopel wrote: Thu Aug 26, 2021 12:55 pm Fat Titz 1.0

This is a FREE UCI-compatibile chess engine. It is a fork of cfish.

Thanks to Norman Schidt and Albert Sliver for inspiration on creating my own fork of Stockfish. Also big thanks to Robert Houdart for great optimization ideas, overall making the engine almost 20% faster!

This engine uses a HalfKAv2-2048x2-64-64-1 evaluation network, which contains whopping 4 times the knowledge of Stockfish 14. It was trained partially on Lc0 data, which gives it a unique positional style, while still preserving the tactical sharpness of Stockfish. The network was trained using a modification of the state-of-the-art NNUE trainer, utilizing publicly available datasets 1, 2, 3

Due to the large size the release is available only on google drive here. It includes Windows and Linux binaries for all supported architectures, along with the network. This is the only place where the network can be found.

Additional features
  • Polyglot support
  • Anarchy mode
    • Code: Select all

      setoption name Anarchy value true
    • makes en-passant forced
  • 64-bit hash key
    • reduces the amount of hash collisions and allows for more robust long analysis
    • resizing the transposition table preserves the contents as much as possible
  • Persistent transposition table
    • Code: Select all

      setoption name PersistentTTMinDepth value 4
      (min 0, max 255). The minimum entry depth to store/load.
    • Code: Select all

      setoption name PersistentTTFileName value filename.ptt
      . The file which contains the persisted TT. Doesn't do anything on itself.
    • Code: Select all

      setoption name PersistentTTSerialize
      . Serializes the current transposition table according to the options above. The file is overwritten.
    • Code: Select all

      setoption name PersistentTTDeserialize
      . Deserializes the current transposition table according to the options above. Only worse entries are replaced.
OfekShochat wrote: Thu Aug 26, 2021 1:42 pm high level trolling sopel, but why is it free? this couldve been sold at 100000000000000 <insert german currency here>
Guenther wrote: Thu Aug 26, 2021 2:49 pm
Sopel wrote: Thu Aug 26, 2021 12:55 pm Fat Titz 1.0

This is a FREE UCI-compatibile chess engine. It is a fork of cfish.

Thomas, you forgot to add that you have already proven in tests, that it will be at least 20 rating points
better than the Slipper and Shit engines ;-)
WOW....Not Only Do these Self Righteous J## Ass##s Attack...Sue...Harrass and Belittle Others In The Chess Community..ie.. Rybka...Houdini..Fat Fritz 2....Chessbase....Silver...Eman...Corchess...etc...etc...etc...etc...
They Threaten And Even Hack Accounts to Back their Intrigues...When Others don't play along with Their Conspiracies They even Clone The Clones Of The Clones They Were Exposing And Bewailing for More Entertainments..."Bread And Circuses"
What Comes Next For Their Entertainments? :) :wink: 8-)
jorose
Posts: 358
Joined: Thu Jan 22, 2015 3:21 pm
Location: Zurich, Switzerland
Full name: Jonathan Rosenthal

Re: Fat Titz 1.0 released

Post by jorose »

Fantastic work Sopel! Based on your post I am certain you basically more or less started from scratch and should be given full credit for this! Maybe you should contact the SF team, I am sure they could learn from your trully innovative idea of using larger numbers!

I think if you further, quadruple the size of the network, but only calculate a quarter of the resulting network at runtime, you could store even more knowledge with no computational overhead!! Truly revolutionary and original work!

Have you considered adding games from the lichess Crazyhouse and Atomic games to your training databases? I think doing so could lead to a more human-like style that many find appealing!
-Jonathan
matejst
Posts: 364
Joined: Mon May 14, 2007 8:20 pm
Full name: Boban Stanojević

Re: Fat Titz 1.0 released

Post by matejst »

Sopel, I wish you the best with your efforts. Training such a huge net necessitated some huge work, without doubt, and it will inspire more experimentation with nets' formats and size. All the best!
AndrewGrant
Posts: 1754
Joined: Tue Apr 19, 2016 6:08 am
Location: U.S.A
Full name: Andrew Grant

Re: Fat Titz 1.0 released

Post by AndrewGrant »

Thanks Sopel. Adding this to my rating list as we speak. Perhaps you should have submitted it to TCEC, without informing the admins about its origins, in order to increase the mystery and interest in the event?
#WeAreAllDraude #JusticeForDraude #RememberDraude #LeptirBigUltra
"Those who can't do, clone instead" - Eduard ( A real life friend, not this forum's Eduard )
User avatar
j.t.
Posts: 239
Joined: Wed Jun 16, 2021 2:08 am
Location: Berlin
Full name: Jost Triller

Re: Fat Titz 1.0 released

Post by j.t. »

May I suggest the J.T.-move-tables? They allow O(1) access to the best moves for a given position, making your engine basically infinitely fast. The idea is pretty simple, I am actually surprised why it hasn't been implemented in Stockfish or Houdini. Basically you have this table where you use the position zobristkey as an index (with red-black-trees for collisions/where the zobristkey for two positions is the same), and at that index there will be stored a move and a confidence level (e.g. depth, or winning probability). If the confidence level is high enough, you can just play that move (if it happens that the confidence level is too low (e.g. depth < 0), then you only need to search once, but as you only need to do this once, this will be negligible).
Spliffjiffer
Posts: 416
Joined: Thu Aug 02, 2012 7:48 pm
Location: Germany

Re: Fat Titz 1.0 released

Post by Spliffjiffer »

Sopel wrote: Thu Aug 26, 2021 4:00 pm I was prompted in a private message that the name of this engine is mysogynistic, so I want to clarify that "Titz" is a German surname that happens to rhyme with "Fritz", and the fact that it is "an altered form of the frequent masculine given name Dietrich" is a coincidence.
if u had choosen "Led Kritz" u would have honored at least a real german GM but "Fat Titz"...cmon, thats simply ridiculous
all honor to ypur possibly innovative work nonetheless
Wahrheiten sind Illusionen von denen wir aber vergessen haben dass sie welche sind.
bmp1974
Posts: 74
Joined: Wed Dec 04, 2019 11:25 am
Full name: Prasanna Bandihole

Re: Fat Titz 1.0 released

Post by bmp1974 »

Fat Titz froze after 53 moves (Fritz 17 GUI) even though it was winning & had few seconds and just lost on time.

[pgn][Event "Tour4_blitz only, Blitz 3.0min+2.0sec"]
[Site "?"]
[Date "2021.08.27"]
[Round "4.1"]
[White "Seer 2.3.0"]
[Black "Fat Titz 260821 64 BMI2 NUMA"]
[Result "1-0"]
[ECO "B33"]
[Annotator "0.30;0.52"]
[PlyCount "105"]
[EventDate "2021.08.27"]
[EventType "tourn"]
[SourceTitle "Fritz Engine Tournament"]
[Source "BM"]

{Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz 3600 MHz W=22.0 plies; 4,153kN/s
B=23.3 plies; 3,008kN/s; 132,499 TBAs} 1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4
Nf6 5. Nc3 {0.30/19 8} e5 {0.52/31 27 (d6)} 6. Ndb5 {0.29/22 8} d6 {0.53/29 3}
7. Nd5 {0.27/20 8} Nxd5 {0.40/28 3} 8. exd5 {0.14/19 7} Nb8 {0.55/29 4} 9. a4 {
0.10/20 8} Be7 {0.47/29 5} 10. Be2 {0.08/21 7} O-O {0.51/29 7} 11. O-O {
0.17/20 7 (Bd2)} Nd7 {0.46/30 12} 12. Bd2 {0.25/20 7} a6 {0.47/26 3} 13. Na3 {
0.33/22 7} a5 {0.50/27 9} 14. c3 {0.41/20 6 (Nb5)} f5 {0.08/23 2 (Nb6)} 15. f4
{0.40/19 6} Bf6 {0.28/26 5} 16. Qc2 {0.32/18 6 (Kh1)} exf4 {0.06/26 4 (Nb6)}
17. Bxf4 {0.55/21 9} g5 {0.13/29 13} 18. Be3 {0.48/19 7 (Bg3)} f4 {0.21/27 3}
19. Bf2 {0.30/20 6} Ne5 {0.07/30 4} 20. Rae1 {0.50/19 8 (Nb5)} g4 {0.00/29 5
(Bg7)} 21. Bd3 {0.60/18 5} Bg7 {0.00/29 4 (Qe7)} 22. Bxh7+ {0.78/18 5} Kh8 {
0.00/29 5} 23. Bd3 {0.00/22 5 (Nb5)} Qg5 {0.00/30 3} 24. Qd2 {0.00/24 5 (Bd4)}
Qh5 {-0.06/25 3} 25. Bd4 {0.00/26 5} Bd7 {-0.14/26 5 (g3)} 26. Rxf4 {0.00/24 5
(Bxe5)} Rxf4 {-0.36/23 4} 27. Qxf4 {0.00/26 5} Nxd3 {-0.65/26 6} 28. Bxg7+ {
0.00/28 5} Kg8 {-0.64/26 15} 29. Qxd6 {0.00/28 5} Nxe1 {-0.52/28 13} 30. Bd4 {
0.00/29 4} Rf8 {-0.26/29 49} 31. Qxd7 {0.00/29 4} Qg6 {-0.32/21 3} 32. Qc7 {
0.00/30 4} Nxg2 {-0.04/20 4} 33. Bc5 {0.00/30 4 (Qb6)} Re8 {-2.58/23 3} 34.
Kxg2 {0.00/30 4} Qe4+ {-2.69/19 2 (Qd3)} 35. Kg3 {0.00/28 4} Re5 {-2.67/19 3}
36. Qd8+ {0.00/29 4 (Qc8+)} Kh7 {-4.31/18 2} 37. Qf6 {-8.89/21 12 (Qh4+)} Qd3+
{-4.38/20 2} 38. Kxg4 {-10.01/22 7} Re4+ {-4.30/20 4} 39. Qf4 {-9.84/20 3} Qxd5
{-4.53/19 3} 40. Bd4 {-10.46/21 3} Kg6 {-4.67/21 3} 41. Kg3 {-10.54/22 3} Rxf4
{-4.76/21 4} 42. Kxf4 {-10.63/18 3} Qg5+ {-4.80/18 1} 43. Kf3 {-11.51/22 8} Qc1
{-4.72/17 2} 44. c4 {-11.56/19 3 (h3)} Kf5 {-4.84/15 1} 45. Nb5 {-12.11/18 3
(Bc3)} Qd2 {-4.76/16 2 (Qf4+)} 46. Nd6+ {-10.78/19 3} Ke6 {-4.92/17 2} 47. Nb5
{-11.61/22 4} Qd3+ {-4.92/17 5} 48. Be3 {-11.76/21 3} Ke5 {-4.92/16 1 (Qxc4)}
49. h3 {-11.79/19 3 (Nc3)} Qe4+ {-5.53/18 3 (Qxc4)} 50. Kf2 {-11.87/18 3} Qh4+
{-5.38/16 1} 51. Ke2 {-13.55/19 8 (Kf3)} Qxc4+ {-5.65/13 5} 52. Kd2 {-14.31/20
3 (Ke1)} Qxa4 {-5.76/14 1} 53. Na3 {-15.57/21 6 (Nc3) Time} 1-0

[/pgn]
stavros
Posts: 165
Joined: Tue Dec 02, 2014 1:29 am

Re: Fat Titz 1.0 released

Post by stavros »

wellcome to the new era:engine strength will be from net only , prepare for 200MB..500MB or 1GB nets soon!
Sopel
Posts: 389
Joined: Tue Oct 08, 2019 11:39 pm
Full name: Tomasz Sobczyk

Re: Fat Titz 1.0 released

Post by Sopel »

bmp1974 wrote: Fri Aug 27, 2021 7:56 am Fat Titz froze after 53 moves (Fritz 17 GUI) even though it was winning & had few seconds and just lost on time.

[pgn][Event "Tour4_blitz only, Blitz 3.0min+2.0sec"]
[Site "?"]
[Date "2021.08.27"]
[Round "4.1"]
[White "Seer 2.3.0"]
[Black "Fat Titz 260821 64 BMI2 NUMA"]
[Result "1-0"]
[ECO "B33"]
[Annotator "0.30;0.52"]
[PlyCount "105"]
[EventDate "2021.08.27"]
[EventType "tourn"]
[SourceTitle "Fritz Engine Tournament"]
[Source "BM"]

{Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz 3600 MHz W=22.0 plies; 4,153kN/s
B=23.3 plies; 3,008kN/s; 132,499 TBAs} 1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4
Nf6 5. Nc3 {0.30/19 8} e5 {0.52/31 27 (d6)} 6. Ndb5 {0.29/22 8} d6 {0.53/29 3}
7. Nd5 {0.27/20 8} Nxd5 {0.40/28 3} 8. exd5 {0.14/19 7} Nb8 {0.55/29 4} 9. a4 {
0.10/20 8} Be7 {0.47/29 5} 10. Be2 {0.08/21 7} O-O {0.51/29 7} 11. O-O {
0.17/20 7 (Bd2)} Nd7 {0.46/30 12} 12. Bd2 {0.25/20 7} a6 {0.47/26 3} 13. Na3 {
0.33/22 7} a5 {0.50/27 9} 14. c3 {0.41/20 6 (Nb5)} f5 {0.08/23 2 (Nb6)} 15. f4
{0.40/19 6} Bf6 {0.28/26 5} 16. Qc2 {0.32/18 6 (Kh1)} exf4 {0.06/26 4 (Nb6)}
17. Bxf4 {0.55/21 9} g5 {0.13/29 13} 18. Be3 {0.48/19 7 (Bg3)} f4 {0.21/27 3}
19. Bf2 {0.30/20 6} Ne5 {0.07/30 4} 20. Rae1 {0.50/19 8 (Nb5)} g4 {0.00/29 5
(Bg7)} 21. Bd3 {0.60/18 5} Bg7 {0.00/29 4 (Qe7)} 22. Bxh7+ {0.78/18 5} Kh8 {
0.00/29 5} 23. Bd3 {0.00/22 5 (Nb5)} Qg5 {0.00/30 3} 24. Qd2 {0.00/24 5 (Bd4)}
Qh5 {-0.06/25 3} 25. Bd4 {0.00/26 5} Bd7 {-0.14/26 5 (g3)} 26. Rxf4 {0.00/24 5
(Bxe5)} Rxf4 {-0.36/23 4} 27. Qxf4 {0.00/26 5} Nxd3 {-0.65/26 6} 28. Bxg7+ {
0.00/28 5} Kg8 {-0.64/26 15} 29. Qxd6 {0.00/28 5} Nxe1 {-0.52/28 13} 30. Bd4 {
0.00/29 4} Rf8 {-0.26/29 49} 31. Qxd7 {0.00/29 4} Qg6 {-0.32/21 3} 32. Qc7 {
0.00/30 4} Nxg2 {-0.04/20 4} 33. Bc5 {0.00/30 4 (Qb6)} Re8 {-2.58/23 3} 34.
Kxg2 {0.00/30 4} Qe4+ {-2.69/19 2 (Qd3)} 35. Kg3 {0.00/28 4} Re5 {-2.67/19 3}
36. Qd8+ {0.00/29 4 (Qc8+)} Kh7 {-4.31/18 2} 37. Qf6 {-8.89/21 12 (Qh4+)} Qd3+
{-4.38/20 2} 38. Kxg4 {-10.01/22 7} Re4+ {-4.30/20 4} 39. Qf4 {-9.84/20 3} Qxd5
{-4.53/19 3} 40. Bd4 {-10.46/21 3} Kg6 {-4.67/21 3} 41. Kg3 {-10.54/22 3} Rxf4
{-4.76/21 4} 42. Kxf4 {-10.63/18 3} Qg5+ {-4.80/18 1} 43. Kf3 {-11.51/22 8} Qc1
{-4.72/17 2} 44. c4 {-11.56/19 3 (h3)} Kf5 {-4.84/15 1} 45. Nb5 {-12.11/18 3
(Bc3)} Qd2 {-4.76/16 2 (Qf4+)} 46. Nd6+ {-10.78/19 3} Ke6 {-4.92/17 2} 47. Nb5
{-11.61/22 4} Qd3+ {-4.92/17 5} 48. Be3 {-11.76/21 3} Ke5 {-4.92/16 1 (Qxc4)}
49. h3 {-11.79/19 3 (Nc3)} Qe4+ {-5.53/18 3 (Qxc4)} 50. Kf2 {-11.87/18 3} Qh4+
{-5.38/16 1} 51. Ke2 {-13.55/19 8 (Kf3)} Qxc4+ {-5.65/13 5} 52. Kd2 {-14.31/20
3 (Ke1)} Qxa4 {-5.76/14 1} 53. Na3 {-15.57/21 6 (Nc3) Time} 1-0

[/pgn]
Someone reported on the Stockfish discord similar issues, happening on average once every ~300k searches. This might be inherent to Cfish, I have no idea what could be causing this.
dangi12012 wrote:No one wants to touch anything you have posted. That proves you now have negative reputations since everyone knows already you are a forum troll.

Maybe you copied your stockfish commits from someone else too?
I will look into that.
User avatar
MikeB
Posts: 4889
Joined: Thu Mar 09, 2006 6:34 am
Location: Pen Argyl, Pennsylvania

Re: Fat Titz 1.0 released

Post by MikeB »

Sopel wrote: Thu Aug 26, 2021 12:55 pm Fat Titz 1.0

This is a FREE UCI-compatibile chess engine. It is a fork of cfish.

Thanks to Norman Schidt and Albert Sliver for inspiration on creating my own fork of Stockfish. Also big thanks to Robert Houdart for great optimization ideas, overall making the engine almost 20% faster!

This engine uses a HalfKAv2-2048x2-64-64-1 evaluation network, which contains whopping 4 times the knowledge of Stockfish 14. It was trained partially on Lc0 data, which gives it a unique positional style, while still preserving the tactical sharpness of Stockfish. The network was trained using a modification of the state-of-the-art NNUE trainer, utilizing publicly available datasets 1, 2, 3

Due to the large size the release is available only on google drive here. It includes Windows and Linux binaries for all supported architectures, along with the network. This is the only place where the network can be found.

Additional features
  • Polyglot support
  • Anarchy mode
    • Code: Select all

      setoption name Anarchy value true
    • makes en-passant forced
  • 64-bit hash key
    • reduces the amount of hash collisions and allows for more robust long analysis
    • resizing the transposition table preserves the contents as much as possible
  • Persistent transposition table
    • Code: Select all

      setoption name PersistentTTMinDepth value 4
      (min 0, max 255). The minimum entry depth to store/load.
    • Code: Select all

      setoption name PersistentTTFileName value filename.ptt
      . The file which contains the persisted TT. Doesn't do anything on itself.
    • Code: Select all

      setoption name PersistentTTSerialize
      . Serializes the current transposition table according to the options above. The file is overwritten.
    • Code: Select all

      setoption name PersistentTTDeserialize
      . Deserializes the current transposition table according to the options above. Only worse entries are replaced.
+1 Thank you Thomas!
Image