Trying out the Leela Hybrid engine (NN with AB)

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

Moderators: hgm, Rebel, chrisw

Jaglo
Posts: 13
Joined: Sat Mar 02, 2019 7:45 pm
Full name: Jacek Glowinski

Re: Trying out the Leela Hybrid engine (NN with AB)

Post by Jaglo »

eigenmann_unsolved.pgn
[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 005 - B vs B"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "8/7p/1p3pp1/p2K4/Pk3PPP/8/1P6/8 b - - 0 1"]
[PlyCount "1"]

1... Kb3 (1... f5) *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 006 - B vs L"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "2k5/3b4/PP3K2/7p/4P3/1P6/8/8 w - - 0 1"]
[PlyCount "1"]

1. Ke7 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 021 - L vs B"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "8/6p1/6P1/6Pp/B1p1p2K/6PP/3k2P1/8 w - - 0 1"]
[PlyCount "1"]

1. Bd1 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 022 - L vs L"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "8/4k3/8/2Kp3p/B3bp1P/P7/1P6/8 b - - 0 1"]
[PlyCount "1"]

1... Bg2 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 024 - L vs L"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "8/3p3B/5p2/5P2/p7/PP5b/k7/6K1 w - - 0 1"]
[PlyCount "1"]

1. b4 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 032 - L&L&S vs T&L&L"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "5b2/p4B2/5B2/1bN5/8/P3r3/4k1K1/8 w - - 0 1"]
[PlyCount "1"]

1. Bh5+ *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 033 - L&S vs D"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "8/p5pq/8/p2N3p/k2P3P/8/KP3PB1/8 w - - 0 1"]
[PlyCount "1"]

1. Be4 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 037 - L&S&S vs T&B"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "8/8/2kp4/5Bp1/8/5K2/3N4/2rN4 w - - 0 1"]
[PlyCount "1"]

1. Nb3 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 042 - S vs L"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "8/3P4/1p3b1p/p7/P7/1P3NPP/4p1K1/3k4 w - - 0 1"]
[PlyCount "1"]

1. g4 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 048 - S vs T"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "2k1r3/p7/K7/1P6/P2N4/8/P7/8 w - - 0 1"]
[PlyCount "1"]

1. Nc6 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 049 - T vs B"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "1k6/8/8/1K6/5pp1/8/4Pp1p/R7 w - - 0 1"]
[PlyCount "1"]

1. Kb6 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 050 - T vs B"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "6k1/8/8/1K4p1/3p2P1/2pp4/8/1R6 w - - 0 1"]
[PlyCount "1"]

1. Kc6 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 060 - T vs T"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "5K2/kp3P2/2p5/2Pp4/3P4/r7/p7/6R1 w - - 0 1"]
[PlyCount "1"]

1. Ke7 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 061 - T vs T"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "8/pp3K2/2P4k/5p2/8/6P1/R7/6r1 w - - 0 1"]
[PlyCount "1"]

1. Kf6 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 062 - T vs T"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "2r3k1/6pp/3pp1P1/1pP5/1P6/P4R2/5K2/8 w - - 0 1"]
[PlyCount "1"]

1. c6 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 063 - T vs T"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "r2k4/8/8/1P4p1/8/p5P1/6P1/1R3K2 w - - 0 1"]
[PlyCount "1"]

1. b6 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 064 - T vs T"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "8/4k3/1p4p1/p7/P1r1P3/1R4Pp/5P1P/4K3 w - - 0 1"]
[PlyCount "1"]

1. Ke2 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 072 - T&L vs L&B"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "5k2/8/2Pb1B2/8/6RK/7p/5p1P/8 w - - 0 1"]
[PlyCount "1"]

1. Be5 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 074 - T&L vs T&B"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "5k2/1p6/1P1p4/1K1p2p1/PB1P2P1/3pR2p/1P2p1pr/8 w - - 0 1"]
[PlyCount "1"]

1. Ba5 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 076 - T&L vs T&L"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "3R3B/8/1r4b1/8/4pP2/7k/8/7K w - - 0 1"]
[PlyCount "1"]

1. Bd4 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 077 - T&L vs T&L"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "rk1b4/p2p2p1/1P6/2R2P2/8/2K5/8/5B2 w - - 0 1"]
[PlyCount "1"]

1. Rc8+ *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 078 - T&L vs T&S"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "3r1k2/8/7R/8/8/pp1B4/P7/n1K5 w - - 0 1"]
[PlyCount "1"]

1. Rf6+ *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 080 - T&L&S vs D&L"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "5k2/3p1b2/4pN2/3PPpp1/6R1/6PK/1B1q1P2/8 w - - 0 1"]
[PlyCount "1"]

1. Ba3+ *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 081 - T&L&S vs L&B"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "8/1p5p/6p1/1p4Pp/1PpR4/2P1K1kB/6Np/7b w - - 0 1"]
[PlyCount "1"]

1. Rd1 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 085 - T&S vs T&L"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "1r6/3b1p2/2k4P/1N3p1P/5P2/8/3R4/2K5 w - - 0 1"]
[PlyCount "1"]

1. Na7+ *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 088 - T&S vs T&S"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "5n1k/1r3P1p/p2p3P/P7/8/1N6/5R2/4K3 b - - 0 1"]
[PlyCount "1"]

1... Re7+ *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 089 - T&S vs T&T"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "6R1/P2k1N2/r7/7P/r7/p7/7K/8 w - - 0 1"]
[PlyCount "1"]

1. Nh6 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 090 - T&T vs D"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "2K5/k3q3/6pR/6p1/6Pp/7P/8/3R4 w - - 0 1"]
[PlyCount "1"]

1. Rh7 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 095 - T&T vs T&T"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "1k1K4/1p6/P4P2/2R5/4p2R/r2p4/8/3r4 w - - 0 1"]
[PlyCount "1"]

1. Rf4 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 096 - T&T&L vs D&L&L"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "5k2/R1p5/p1R3Pb/2K5/2B5/2q2b2/8/8 w - - 0 1"]
[PlyCount "1"]

1. g7+ *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 097 - T&T&L vs T&S&B"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "8/8/k7/n7/p1R5/p7/4r1p1/KB3R2 w - - 0 1"]
[PlyCount "1"]

1. Rc3 *

[Event "eigenmann_endgame_test"]
[Site "?"]
[Date "????.??.??"]
[Round "?"]
[White "E_E_T 098 - T&T&L vs T&T&L"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "3r2k1/p1R2ppp/1p6/P1b1PP2/3p4/3R2B1/5PKP/1r6 w - - 0 1"]
[PlyCount "1"]

1. f6 *
kalikoba2019
Posts: 8
Joined: Sun Mar 03, 2019 12:46 pm
Full name: Kalikoba

Re: Trying out the Leela Hybrid engine (NN with AB)

Post by kalikoba2019 »

Ozymandias wrote: Fri Mar 15, 2019 8:20 am
KillerDucky wrote: Fri Mar 15, 2019 12:11 am
kalikoba2019 wrote: Thu Mar 14, 2019 7:03 pm Nice one, and , if the auxiliary engine accepts to read and play .bin books, would it be possible to let Leelafish play its auxiliary engine book if it exists ?
I haven't used .bin books. I guess some engines (but not Stockfish?) have UCI options that allow it to use .bin? You can pass any arbitrary UCI options using AuxEngineOptions:

Code: Select all

AuxEngineOptions Hash1024;Threads=1;PolyglotOptionName=c:\mybook.bin
Leela uses the AuxEngine's PV to boost the Policy of those moves. Otherwise Leela's search runs the same as before, including all position evaluations.
If you pass that uci option to the auxiliary engine, won't the PV be just one move? The best move in the position according to the book? In that case, it sounds like Leelafish would just play unrestricted, just as regular Leela would. The only difference would be that it would take into account the book's best move, but the decision would rest ultimately in its own judgement. Quite far away from what a book is supposed to do.
I will try this option @Killerducky thank you. I'm using Brainfish as auxiliary engine, from thomas zipproth. the best ways to use the book for me would be this one :
1/(you can set any % chance to the moves you wrote in the .bin book, and the usual commands that engines understand are BestBookMove true/false = do you want to always play the highest pondered move or not ; Bookdepth=number of semiplies you want the engine to check if bookmove exists before starting to think
2/So , in my case, tI'd like to be able to set this : AuxEngineOptions Hash1024;Threads=1;PolyglotOptionName=c:\mybook.bin; BookDepth=20
3/Everytime an opening position exists and the pondered value in the book is higher than 0 (BestBookmove=false), Leela lets Brainfish play instantly the move recorded in the book
4/When no move is met in the book, Leelafish thinks normally.

I will test the auxengine parameters, here are the commands from brainfish :
brainfish options.jpg
kalikoba2019
Posts: 8
Joined: Sun Mar 03, 2019 12:46 pm
Full name: Kalikoba

Re: Trying out the Leela Hybrid engine (NN with AB)

Post by kalikoba2019 »

Hello again, I tried these options, but it's like leela didn't take into account that brainfish has a book. I even tried to set 100% to g2-g4 opening, and launched a game vs leelafish as white, she still sets e2-e4 as her move, and not instantly :'(
corres
Posts: 3657
Joined: Wed Nov 18, 2015 11:41 am
Location: hungary

Re: Trying out the Leela Hybrid engine (NN with AB)

Post by corres »

I made a test between Lc0 v.021 and Leelafish v.0.8.
During the test I used a modified Leelafish named Lc0updFish what use fixed time instead of fixed depth for the auxiliary engine.
The result is:
Lc0updFish : Lc0 = 15 : 4 with 81 draws (= 100 games)
Parameters:
GPU - NVIDIA GTX 1060
CPU - AMD Ryzen 7 1800x 8x4000 MHz
OS - Windows 7 64 bits
TB - syzygy 6 men
Threads for GPU - 2
Auxiliary engine - Stockfish dev.
Threads for auxiliary engine - 1
Hash for auxiliary engine - 1024
Fixed time - 100 ms
Time Control - 1min + 2sec/move

I think with a more powerful GPU the difference may be smaller.
Note
I used for test Fritz 11 GUI.
Jaglo
Posts: 13
Joined: Sat Mar 02, 2019 7:45 pm
Full name: Jacek Glowinski

Re: Trying out the Leela Hybrid engine (NN with AB)

Post by Jaglo »

Can you make a Leelafish match against Stockfish?

Will Leelafish also win then?
corres
Posts: 3657
Joined: Wed Nov 18, 2015 11:41 am
Location: hungary

Re: Trying out the Leela Hybrid engine (NN with AB)

Post by corres »

Jaglo wrote: Fri Mar 22, 2019 4:09 pm Can you make a Leelafish match against Stockfish?

Will Leelafish also win then?
GTX 1060 is too weak against Stockfish - even if another Stockfish helps it.
Gregory Owett
Posts: 249
Joined: Fri Mar 10, 2006 10:26 am
Location: France

Re: Trying out the Leela Hybrid engine (NN with AB)

Post by Gregory Owett »

Hi,
Would a GTX 1080 Ti suffice :? ?
Jaglo
Posts: 13
Joined: Sat Mar 02, 2019 7:45 pm
Full name: Jacek Glowinski

Re: Trying out the Leela Hybrid engine (NN with AB)

Post by Jaglo »

If two engines are weaker than one of them, it is not good.

GPUs and CPUs work independently and there should be no problem for Leelafish to beat Stockfish. As I suggested earlier, the concept of supporting the LO0 with a second engine is probably inefficient. It would be better if both engines were equally important.
Jaglo
Posts: 13
Joined: Sat Mar 02, 2019 7:45 pm
Full name: Jacek Glowinski

Re: Trying out the Leela Hybrid engine (NN with AB)

Post by Jaglo »

Using ready-made solutions I can offer CombiChess (https://github.com/tom0334/CombiChess) with settings LC0, Stockfish 10 and Houdini.

LC0 is selected as the main engine and should support opening and middle game. The other two engines support tactics and endgames. It is important that the booster engines at the beginning of the game do not indicate movements with one voice, because then they will dominate LC0. For this reason, you should choose engines that are not clones of stockfish.

There is no exe file, but you can prepare it.

1. Copy Launcher.py and combichess.py to your hard drive.
2. Go to https://www.python.org/downloads/windows/ and download "Windows x86-64 executable installer"
3. Install Python with default settings.
4. Run "cmd" (Windows command line) and type "pip install python-chess"
5. Edit Launcher.py and select which endines you want to use. Example:

engineFileNames = ["lc0.exe","stockfish_10.exe","houdini.exe"]

6. Copy selected exe files (engines) to the "engines" subfolder.
7. Go to the directory containing the py files.
8. In command line type "pyinstaller -wF Launcher.py". The Launcher.exe file will be created.
9. Extract Launcher.exe from the "dist" directory.
10. Install the Launcher.exe engine in the GUI.

If you have strong graphics cards (GTX 1060+), test this hybrid against Stockfish.
User avatar
Ozymandias
Posts: 1532
Joined: Sun Oct 25, 2009 2:30 am

Re: Trying out the Leela Hybrid engine (NN with AB)

Post by Ozymandias »

Jaglo wrote: Sun Apr 07, 2019 10:45 pmLC0 is selected as the main engine and should support opening and middle game. The other two engines support tactics and endgames.
How would you, say, make for H to be in charge of the tactics and SF of the endgames?