I'm trying to get Maia installed locally. In particular in Fritz 12, but the process would be the same in other GUIs. I know how to install engines. I have lc0 installed. The part that is giving me trouble is how to disable searching, per the github page
https://github.com/CSSLab/maia-chess
"The Maias are not a full chess framework chess engines, they are just brains (weights) and require a body to work. So you need to load them with lc0 and follow the instructions here. Then unlike most other engines you want to disable searching, a nodes limit of 1 is what we use. This looks like go nodes 1 in UCI. "
So they said they used a "nodes limit of 1", but I don't see an lc0 parameter that looks like that. The lc0 parameters are documented here: https://lczero.org/play/flags/ . Of course the entire process from the GUI's point of view is data driven to allow different engines to have different parameters.
I have no problem getting the "weights" file set up. When I run lc0 on the command line I do not get the result displayed on the github page. Of course, I can then type in "go nodes 1", and get that result, but I'm assuming that somehow one sets something in the GUI that does the equivalent.
Anyone done this?
I'm trying to get Maia installed locally. In particular in Fritz 12, but the process would be the same in other GUIs. I know how to install engines. I have lc0 installed. The part that is giving me trouble is how to disable searching, per the github page
https://github.com/CSSLab/maia-chess
"The Maias are not a full chess framework chess engines, they are just brains (weights) and require a body to work. So you need to load them with lc0 and follow the instructions here. Then unlike most other engines you want to disable searching, a nodes limit of 1 is what we use. This looks like go nodes 1 in UCI. "
So they said they used a "nodes limit of 1", but I don't see an lc0 parameter that looks like that. The lc0 parameters are documented here: https://lczero.org/play/flags/ . Of course the entire process from the GUI's point of view is data driven to allow different engines to have different parameters.
I have no problem getting the "weights" file set up. When I run lc0 on the command line I do not get the result displayed on the github page. Of course, I can then type in "go nodes 1", and get that result, but I'm assuming that somehow one sets something in the GUI that does the equivalent.
Anyone done this?
Unfortunately I can't help you
I like maia, I challenge it on here selecting "from position"
I think that it's ok to contact the devs asking for help
Unfortunately I can't help you
I like maia, I challenge it on here selecting "from position"
I think that it's ok to contact the devs asking for help
You can't pass the node limit command to fritz is my understanding. You can set the max nodes per second to some very low level (e.g. 0.001) and then set the max evaluation time in fritz to 1 second. This should have the same effect as setting the node limit to 1.
I have found that Maia works a bit better in Lucas chess. I posted this on reddit a while back after some research but I assume it still holds:
Figured out (I think) how to use Maia on Fritz with the help of Borg/others on the Lc0 discord channel. This should work with other GUIs.
Download Lc0 for the CPU
Download the Maia weights files from: maia-chess
Put the appropriate Maia weight in the Lc0 folder and remove the other weight file (should end in pb.gz)
Add Lc0 as a new UCI engine Fritz/whatever other gui
Set the following parameters to constrain Maia to only calculate one node as I don't believe Fritz can pass user specified UCI commands:
- cpu threads = 1
- minibatch-size = 1
- max-prefetch = 0
- nodespersecondlimit= 0.001
Then you can play versus Maia as an engine. If you want to put Maia on a higher difficulty it is easy easy as swapping out the weights file. I've been giving myself longer time controls and Maia shorter time controls to make sure it moves quickly.
Hopefully this is helpful to some.
You can't pass the node limit command to fritz is my understanding. You can set the max nodes per second to some very low level (e.g. 0.001) and then set the max evaluation time in fritz to 1 second. This should have the same effect as setting the node limit to 1.
I have found that Maia works a bit better in Lucas chess. I posted this on reddit a while back after some research but I assume it still holds:
Figured out (I think) how to use Maia on Fritz with the help of Borg/others on the Lc0 discord channel. This should work with other GUIs.
Download Lc0 for the CPU
Download the Maia weights files from: maia-chess
Put the appropriate Maia weight in the Lc0 folder and remove the other weight file (should end in pb.gz)
Add Lc0 as a new UCI engine Fritz/whatever other gui
Set the following parameters to constrain Maia to only calculate one node as I don't believe Fritz can pass user specified UCI commands:
- cpu threads = 1
- minibatch-size = 1
- max-prefetch = 0
- nodespersecondlimit= 0.001
Then you can play versus Maia as an engine. If you want to put Maia on a higher difficulty it is easy easy as swapping out the weights file. I've been giving myself longer time controls and Maia shorter time controls to make sure it moves quickly.
Hopefully this is helpful to some.
#3 Thanks for your work.
could you please share the link to reddit, here?
That would make less dispersion in the web resources, and would make for a nice more complete thread here.
minimizing repetition and dispersion. but your post is great in itself.
Edit: is linking to outside web site adding burden to lichess servers? I wonder what the linking limit is about. I would not think it would be to reduce the advantages of hyperlinks at the base of the internet as a source of non-flat information. All the web heavy new technology should not make hyperlinked text obsolete... (I hope not).
Sorry, off topic. slightly.
#3 Thanks for your work.
could you please share the link to reddit, here?
That would make less dispersion in the web resources, and would make for a nice more complete thread here.
minimizing repetition and dispersion. but your post is great in itself.
Edit: is linking to outside web site adding burden to lichess servers? I wonder what the linking limit is about. I would not think it would be to reduce the advantages of hyperlinks at the base of the internet as a source of non-flat information. All the web heavy new technology should not make hyperlinked text obsolete... (I hope not).
Sorry, off topic. slightly.
@rwdvc #3
Thanks much! I'm anxious to try this today. My research continued after posting this thread yesterday and I found people saying that they too were working around the issue from various GUIs by setting other parameters to get the effect of disabling searching. One recommendation, for example, was that in versions of lc0 before 24.1 to set the parameter "slowmover" to 0.
I'm trying to keep my lc0 current and I'm on 26.3. I thought about the time control settings also, and glad to hear that has worked for you.
@dboing I'm sure the limit on linking is to curb spamming.
@rwdvc #3
Thanks much! I'm anxious to try this today. My research continued after posting this thread yesterday and I found people saying that they too were working around the issue from various GUIs by setting other parameters to get the effect of disabling searching. One recommendation, for example, was that in versions of lc0 before 24.1 to set the parameter "slowmover" to 0.
I'm trying to keep my lc0 current and I'm on 26.3. I thought about the time control settings also, and glad to hear that has worked for you.
@dboing I'm sure the limit on linking is to curb spamming.
@jomega the cute chess gui allows you to send a node limit command. However, I've found that GUI lacking in other ways which makes sense as it was really made for engine tournaments. Generally against a computer I'm using Lucas Chess because it has built in support for UCI commands and eboards as I like playing with actual pieces.
One other thought is that while Maia is great it doesn't yet make for a good sparring partner. If you use non-standard openings (e.g. Hippo) it has a tendency to blunder, the engine is deterministic so given the same board it makes the same move every time, and it doesn't understand rules like 3 fold repetition. Maia is still in its infancy so I wouldn't get too hyped over it. This all comes from a player that isn't very good but as I posted in a different thread here I've found lines that Maia will lose to every time.
@jomega the cute chess gui allows you to send a node limit command. However, I've found that GUI lacking in other ways which makes sense as it was really made for engine tournaments. Generally against a computer I'm using Lucas Chess because it has built in support for UCI commands and eboards as I like playing with actual pieces.
One other thought is that while Maia is great it doesn't yet make for a good sparring partner. If you use non-standard openings (e.g. Hippo) it has a tendency to blunder, the engine is deterministic so given the same board it makes the same move every time, and it doesn't understand rules like 3 fold repetition. Maia is still in its infancy so I wouldn't get too hyped over it. This all comes from a player that isn't very good but as I posted in a different thread here I've found lines that Maia will lose to every time.
@rwdvc #3 worked great! Thanks again. I plan to experiment in various ways. I'm hoping that eventually I'll have a setup that will allow for my club to play a vote chess game against a program that plays more like a human at whatever level we choose. I have other ideas as well. I'm trying not to get too hyped, but it is an exciting new development.
Big thanks to the Lichess team! The latest changes on Lichess, such as the new puzzle system and Maia, are fantastic.
@rwdvc #3 worked great! Thanks again. I plan to experiment in various ways. I'm hoping that eventually I'll have a setup that will allow for my club to play a vote chess game against a program that plays more like a human at whatever level we choose. I have other ideas as well. I'm trying not to get too hyped, but it is an exciting new development.
Big thanks to the Lichess team! The latest changes on Lichess, such as the new puzzle system and Maia, are fantastic.
#6 @rwdvc
Thank you for sharing your experience. We need that, and a forum is the perfect place for that (on top of being chat exchange).
Could you give us a report or review (not detailed if you don't have the time) on the proc and cons of the various GUI you explored w.r.t. chess engine (and databases, I am greedy that way). with all the engine frameworks to this day (SF, LC0, and their descendants, and stubborn siblings -- those that try to push their original frameworks to their limits, pure look-ahead or pure intuition, I mean, the latter needing more work).
out of the 5 or 6 proposed in the lc0 wiki page, for example. How many could you characterize in at least one way, as above?
Also, isn't "go node nn" an lc0 (or similar origin) command that could be put in the config file as per
https://lczero.org/play/configuration/flags/#config-file
"It’s also possible to put configuration in a config file. This is useful for example if you want to run multiple configurations of Lc0 which have some settings in common. In this case, you put the common part into the config file, and configure the rest through UCI options."
This is how I understand this paragraph, but I have no practice there (which is good for testing documentation....).
#6 @rwdvc
Thank you for sharing your experience. We need that, and a forum is the perfect place for that (on top of being chat exchange).
Could you give us a report or review (not detailed if you don't have the time) on the proc and cons of the various GUI you explored w.r.t. chess engine (and databases, I am greedy that way). with all the engine frameworks to this day (SF, LC0, and their descendants, and stubborn siblings -- those that try to push their original frameworks to their limits, pure look-ahead or pure intuition, I mean, the latter needing more work).
out of the 5 or 6 proposed in the lc0 wiki page, for example. How many could you characterize in at least one way, as above?
Also, isn't "go node nn" an lc0 (or similar origin) command that could be put in the config file as per
https://lczero.org/play/configuration/flags/#config-file
"It’s also possible to put configuration in a config file. This is useful for example if you want to run multiple configurations of Lc0 which have some settings in common. In this case, you put the common part into the config file, and configure the rest through UCI options."
This is how I understand this paragraph, but I have no practice there (which is good for testing documentation....).
I never tried the config file route. Nodes isn't an engine parameter in that section of the documentation, but I do wonder if it would work there. Honestly once I got it working I quit messing with it =]
After I figured out a few winning lines I went back to playing against hiarcs (yeah I can play vs humans but I’m often interrupted so I don’t tend to do that unless it’s late at night or early in the morning) .
Some sort of meta engine where you have a big opening book to start, Maia for the middle game and hiarcs or similar for the end game seems to be to be the sweet spot. The only reason I say hiarcs is that the difficulty seems spot on for me personally. Any engine you like would probably do here.
I never tried the config file route. Nodes isn't an engine parameter in that section of the documentation, but I do wonder if it would work there. Honestly once I got it working I quit messing with it =]
After I figured out a few winning lines I went back to playing against hiarcs (yeah I can play vs humans but I’m often interrupted so I don’t tend to do that unless it’s late at night or early in the morning) .
Some sort of meta engine where you have a big opening book to start, Maia for the middle game and hiarcs or similar for the end game seems to be to be the sweet spot. The only reason I say hiarcs is that the difficulty seems spot on for me personally. Any engine you like would probably do here.
#8
From that link ... "The contents of this file should be command line flags."
"Command line flags" are not "commands". "go nodes 1" is a UCI protocol command, not an lc0 command line flag.
Hence, the discussion on how to get the effect of "disabling searching" by using command flags.
#8
From that link ... "The contents of this file should be command line flags."
"Command line flags" are not "commands". "go nodes 1" is a UCI protocol command, not an lc0 command line flag.
Hence, the discussion on how to get the effect of "disabling searching" by using command flags.