New engine: Inanis

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Tearth
Posts: 68
Joined: Thu Feb 25, 2021 5:12 pm
Location: Poland
Full name: Pawel Osikowski

Re: New engine: Inanis

Post by Tearth »

CCRL test results for version 1.0.1:
- Blitz: 2690 Elo (http://ccrl.chessdom.com/ccrl/404/cgi/e ... 1%2064-bit)
- 40/15: 2672 Elo (http://ccrl.chessdom.com/ccrl/4040/cgi/ ... 1%2064-bit)
Tearth
Posts: 68
Joined: Thu Feb 25, 2021 5:12 pm
Location: Poland
Full name: Pawel Osikowski

Re: New engine: Inanis

Post by Tearth »

Version: 1.1.0
Homepage and source code: https://github.com/Tearth/Inanis
Download: https://github.com/Tearth/Inanis/releases/tag/v1.1.0
Estimated strength: 2800 Elo

Changelog:
- Added support for Syzygy tablebases
- Added support for MultiPV UCI option
- Added support for "searchmoves" in "go" UCI command
- Added hashfull in the UCI search output
- Added "tunerset" command
- Added support for multithreading in "test" command
- Added transposition_table_size parameter to "test" command
- Added instant move when there is only one possible in the position
- Added new benchmarks
- Added tuner dataset generator
- Added information about the compiler and a list of target features at the startup
- Added diagnostic mode in search functions to gather statistics only if necessary
- Added a simple PGN parser
- Removed "tries_to_confirm" parameter from "test" command
- Removed arr_macro crate from dependencies
- Improved mobility evaluation, now the parameters are defined per piece instead of one value for all
- Improved null move reduction formula, now should be more aggressive
- Improved null move pruning, now it shouldn't be tried for hopeless positions
- Improved make-undo scheme performance
- Improved release script, now it's shorter and more flexible
- Improved error messages and made them more detailed
- Improved repetition draw detection
- Increased late move pruning max depth
- Increased amount of memory allocated for pawn hashtable
- Adjusted evaluation parameters
- Made LMR less aggressive in PV nodes
- Made aging in the transposition table faster and more reliable
- Merged reduction pruning with late move pruning
- Decreased memory usage during tuner work
- Deferred evaluation of evasion mask
- Reduced amount of lazy evaluations
- Reduced amount of locks in the UCI interface
- Removed duplicated search calls in the PVS framework
- Fixed crash when "tuner" command had not enough parameters
- Fixed crash when FEN didn't have information about halfmove clock and move number
- Fixed crash when search in ponder mode was trying to be started in already checkmated position
- Fixed tuner and tester not being able to examine all positions when multithreading is enabled
- Fixed draw detection issue caused by transposition table
- Fixed undefined behaviors and reduced the amount of unsafe code
- Fixed incorrect benchmark statistics
- Fixed a few edge cases in the short algebraic notation parser

As usual, feel free to report bugs or issues if you find any, here or on GitHub page.
User avatar
lithander
Posts: 881
Joined: Sun Dec 27, 2020 2:40 am
Location: Bremen, Germany
Full name: Thomas Jahn

Re: New engine: Inanis

Post by lithander »

Congratz on the release! That's an impressive list of improvements for a minor version increase!
Tearth wrote: Sun Jul 31, 2022 2:30 pm - Added "tunerset" command
- Added tuner dataset generator
That sounds interesting! What exactly are you doing here?
Minimal Chess (simple, open source, C#) - Youtube & Github
Leorik (competitive, in active development, C#) - Github & Lichess
Tearth
Posts: 68
Joined: Thu Feb 25, 2021 5:12 pm
Location: Poland
Full name: Pawel Osikowski

Re: New engine: Inanis

Post by Tearth »

lithander wrote: Mon Aug 01, 2022 12:40 pm Congratz on the release! That's an impressive list of improvements for a minor version increase!
Thank you!
lithander wrote: Mon Aug 01, 2022 12:40 pm That sounds interesting! What exactly are you doing here?
A few weeks ago I was experimenting with generating my own datasets for Texel tuning, inspired by forum3/viewtopic.php?f=7&t=78536 thread and results posted there. It's basically a PGN parser, which picks quiet positions (plus a few more requirements, I described them a bit more here: forum3/viewtopic.php?p=929794#p929794) and then stores them in the EPD output. I've got pretty decent results which contributed to the Elo gain quite a bit, but more importantly, I finally don't depend on the well-known Zurichess dataset (which is great, but I enjoy having something own).
zenpawn
Posts: 349
Joined: Sat Aug 06, 2016 8:31 pm
Location: United States

Re: New engine: Inanis

Post by zenpawn »

I gave the new "tunerset" command a try on a cutechess-cli generated PGN, and it returned an error. The first complaint was about curly braces, so I ran pgn-extract to strip out all comments. Now it's upset about starting in a position other than the initial one, which can happen when using opening books. Here's a small sample, the first game in the PGN:

Code: Select all

[Event "?"]
[Site "?"]
[Date "2022.08.02"]
[Round "1"]
[White "A"]
[Black "B"]
[Result "1/2-1/2"]
[TimeControl "32+0.32"]
[SetUp "1"]
[FEN "r1bqkb1r/1ppp1ppp/p1n2n2/4p3/B3P3/5N2/PPPP1PPP/RNBQK2R w KQkq - 0 1"]
[PlyCount "38"]

1. Bxc6 dxc6 2. O-O Bc5 3. d3 Qe7 4. Nc3 O-O 5. h3 Qd6 6. Be3 Be6 7. d4
exd4 8. e5 Qd8 9. Bxd4 Nd7 10. Bxc5 Nxc5 11. Qe2 Qe7 12. Rad1 Rad8 13. Rxd8
Rxd8 14. Rd1 Rxd1+ 15. Qxd1 h6 16. Nd4 Qg5 17. Nf3 Qe7 18. Nd4 Qg5 19. Nf3
Qe7 1/2-1/2
It returned the error:

Code: Select all

"Invalid PGN file: Invalid move: Invalid move: fen=rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1, original_text=Bxc6"
Hope this helps and congrats on the impressive new release.
Erin Dame
Author of RookieMonster
Tearth
Posts: 68
Joined: Thu Feb 25, 2021 5:12 pm
Location: Poland
Full name: Pawel Osikowski

Re: New engine: Inanis

Post by Tearth »

zenpawn wrote: Wed Aug 03, 2022 12:51 pm Hope this helps and congrats on the impressive new release.
Thanks!
zenpawn wrote: Wed Aug 03, 2022 12:51 pm It returned the error:

Code: Select all

"Invalid PGN file: Invalid move: Invalid move: fen=rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1, original_text=Bxc6"
Indeed, the current implementation of PGN parser is pretty basic and it doesn't support comments or matches which start with some specific FEN. Honestly, I wasn't even aware that it might look like that because I was also using games generated by cutechess-cli, opening book loaded by "book=Perfect2019.bin bookdepth=8" and I always had a full record of moves from the very first one. Thanks for the report and sorry for the inconvenience, I've saved this on my TODO list so it will be improved in the future.
User avatar
algerbrex
Posts: 596
Joined: Sun May 30, 2021 5:03 am
Location: United States
Full name: Christian Dean

Re: New engine: Inanis

Post by algerbrex »

Tearth wrote: Mon Aug 01, 2022 7:14 pm A few weeks ago I was experimenting with generating my own datasets for Texel tuning, inspired by forum3/viewtopic.php?f=7&t=78536 thread and results posted there. It's basically a PGN parser, which picks quiet positions (plus a few more requirements, I described them a bit more here: forum3/viewtopic.php?p=929794#p929794) and then stores them in the EPD output. I've got pretty decent results which contributed to the Elo gain quite a bit, but more importantly, I finally don't depend on the well-known Zurichess dataset (which is great, but I enjoy having something own).
Nice. So you took the time to tune Inanis's evaluation from a dataset independent of Zuirchess's? I mean to try doing this myself at some point. I'm going to try using human games or self-play games starting with Blunder 1.0.0, which was the first and last version of Blunder to have a completely original set of evaluation parameters, not tuned from any independent dataset
Tearth
Posts: 68
Joined: Thu Feb 25, 2021 5:12 pm
Location: Poland
Full name: Pawel Osikowski

Re: New engine: Inanis

Post by Tearth »

algerbrex wrote: Thu Aug 04, 2022 2:23 am Nice. So you took the time to tune Inanis's evaluation from a dataset independent of Zuirchess's? I mean to try doing this myself at some point. I'm going to try using human games or self-play games starting with Blunder 1.0.0, which was the first and last version of Blunder to have a completely original set of evaluation parameters, not tuned from any independent dataset
It's pretty fun so I can recommend this, I feel like the whole process of picking positions for the output EPD can still be improved (by adding more restrictions or balancing them by reducing the number of endgames for example, just guessing) so I will definitely try to spend more time here.
pedrojdm2021
Posts: 157
Joined: Fri Apr 30, 2021 7:19 am
Full name: Pedro Duran

Re: New engine: Inanis

Post by pedrojdm2021 »

Congrats on Release! :mrgreen: Cosette is a big inspiration to me. Looking forward how far you can push this one!
Tearth
Posts: 68
Joined: Thu Feb 25, 2021 5:12 pm
Location: Poland
Full name: Pawel Osikowski

Re: New engine: Inanis

Post by Tearth »

pedrojdm2021 wrote: Sun Aug 07, 2022 5:38 pm Congrats on Release! :mrgreen: Cosette is a big inspiration to me. Looking forward how far you can push this one!
Thank you! My dream is to reach 3000 Elo on CCRL, but only gods know how long will it take... : )