Mantissa 3.0.0

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

Moderators: hgm, Rebel, chrisw

jtwright
Posts: 48
Joined: Wed Sep 22, 2021 9:20 pm
Full name: Jeremy Wright

Mantissa 3.0.0

Post by jtwright »

Hi all! I wanted to make this post announcing the Mantissa 3.0.0 release because I'm very excited, but also I want to make sure to give some thanks. You can see the release here: https://github.com/jtheardw/mantissa/re ... tag/v3.0.0

The release notes explain various improvements and changes, but since I've just introduced NNUE into Mantissa, I wanted to say thanks to Amanj for his help in getting me started. I followed much of his process and used the same network topology as he did (originally, as I understand it Zahak has branched out since). I made sure to make my software self-sufficient. I wrote pgn-parsing into Mantissa, generated all of my own training data from Mantissa self-play games, and wrote my own port of zahak-trainer in rust, unoriginally called tissa-trainer for now, which I then used to run the actual training. `tissa-trainer` isn't meant to compete with zahak-trainer (his is actually user friendly and more performant, and tissa-trainer does differ in a few small decisions), but was mostly an exercise for myself to learn the process really well by reinventing the code. It doesn't really have an interface right now and so isn't really intended for public use. If I end up deviating far enough from zahak-trainer's behavior to justify it, I may put in the effort to give it a real interface and set it up for other people's use.

I will be experimenting with things like the topology in future releases, but this is an amazing start and I'm very thankful.

I also want to thank Kade, a friend of mine who also works with chess engines, for writing some very cool code which I ported into Mantissa to do a rough visualization on the first hidden layer neurons. You can see the 3.0.0 net's by download the `.ppm` (an image file format) here: https://drive.google.com/file/d/1KPfP8d ... sp=sharing

Anyway, there's a lot more stuff to do an improve, but I'm very proud of what Mantissa is capable of so far!

I estimate Mantissa-3.0.0's strength to be in the neighborhood of 2900-3000 CCRL Elo now from all of the search improvements + the strength of the new net relative to the hand-written, based on local games run against older versions of Mantissa and also various engines rated between 2800 and 3100 on the CCRL blitz list.

As usual, you can often find the latest version of Mantissa online on lichess at lichess.org/@/AKS-Manitssa. I run it on my laptop with 2 threads most of the time. If it's offline, it's probably because I'm either travelling or using my limited compute to do Mantissa testing at the time.

Thanks!
amanjpro
Posts: 883
Joined: Sat Mar 13, 2021 1:47 am
Full name: Amanj Sherwany

Re: Mantissa 3.0.0

Post by amanjpro »

Congrats for the release :)

In fact, your current architecture is like what I have, and it is incompatible with what Bit-Genie has. Bit-Genie only has 768 inputs (representing all piece placements, and no side-to-move info).

Zahak in fact comes with a few nets, the biggest (strongest) is of size: 769x512x1 (which can be used when selecting skill-level 7), and the other skill levels all have 769x32x1 size networks. Version 8.0 had 769x256x1 and version 7 came with 769x128x1.

Doubling the net size each time gave around 20 elo (given that you increase the training data with that too).

It would be interesting to see if loading your net into Zahak can compete with versaio 9.0, or loading Zahak's net into Mantissa can compete with version 3.0.0. One of us might have a better net, while the other has a better infrastructure/search.

P.S: I am taking time off from chess programming, and currently training to become better at playing chess myself, which I find as rewarding as chess programming itself :)
jtwright
Posts: 48
Joined: Wed Sep 22, 2021 9:20 pm
Full name: Jeremy Wright

Re: Mantissa 3.0.0

Post by jtwright »

Yeah, it'd be fun to compare. Maybe I'll run some Zahak vs. Zahak w/ Mantissa net matches sometime on cutechess. Thanks also for your experience with layer size vs. Elo.

Re: A break from chess programming, I wish you all the best with your chess journey!
Gabor Szots
Posts: 1362
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: Mantissa 3.0.0

Post by Gabor Szots »

Very good news, Jeremy. Looking forward to testing it.
Gabor Szots
CCRL testing group
Gabor Szots
Posts: 1362
Joined: Sat Jul 21, 2018 7:43 am
Location: Szentendre, Hungary
Full name: Gabor Szots

Re: Mantissa 3.0.0

Post by Gabor Szots »

Gabor Szots wrote: Sat Dec 11, 2021 8:36 am Very good news, Jeremy. Looking forward to testing it.
Test gauntlet running.
Gabor Szots
CCRL testing group
jtwright
Posts: 48
Joined: Wed Sep 22, 2021 9:20 pm
Full name: Jeremy Wright

Re: Mantissa 3.0.0

Post by jtwright »

Thanks so much!
User avatar
CMCanavessi
Posts: 1142
Joined: Thu Dec 28, 2017 4:06 pm
Location: Argentina

Re: Mantissa 3.0.0

Post by CMCanavessi »

Looks like you're TCEC ready :mrgreen:
Follow my tournament and some Leela gauntlets live at http://twitch.tv/ccls
Wolfgang
Posts: 895
Joined: Sat May 13, 2006 1:08 am

Re: Mantissa 3.0.0

Post by Wolfgang »

Best
Wolfgang
CEGT-Team
www.cegt.net
www.cegt.forumieren.com
User avatar
Guenther
Posts: 4606
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: Mantissa 3.0.0

Post by Guenther »

Mantissa 3.0.0 is now available for older hardware too!
Thanks to Jeremy for allowing non-avx compilations.

Note that the binaries are estimated to be around 50% slower.
https://rwbc-chess.de

trollwatch:
Chessqueen + chessica + AlexChess + Eduard + Sylwy
jtwright
Posts: 48
Joined: Wed Sep 22, 2021 9:20 pm
Full name: Jeremy Wright

Re: Mantissa 3.0.0

Post by jtwright »

Thanks again everyone for your kind words and testing.

Re: old hardware. Glad to help! I want to make Mantissa available as I can. I'm still learning a bunch about build, cross-compilation, and rust quirks (Mantissa is my first Rust program actually, so I imagine a lot of its code isn't very idiomatic, as I come from more of a C background), so I always appreciate feedback with regards to user experience.