Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Allow user to adjust MaxPlayouts and numSearchThreads #213

Closed
portkata opened this issue Sep 30, 2020 · 9 comments
Closed
Labels

Comments

@portkata
Copy link

Maybe in an advanced tab under settings, would it be worth it to allow the user to adjust MaxPlayouts and numSearchThreads? By setting numSearchThreads to 1, the user has fairly accurate objective control of Katago's strength at levels above the policy. For example, with the 40b net, MaxPlayouts = 9 , numSearchThreads = 1 will yeild an AI slightly stronger than zen7 9d. Regardless of hardware used, the strength of this bot will be the same. With the 20b net, the same can be said of MaxPlayouts = 16 (maybe 12 I forgot), etc. Alternatively, placing the config file in a directory where the end user can edit it if desired would acheive the same result, since only intermediate and advanced users would do that. Thanks for considering!

@sanderland
Copy link
Owner

I high dan AI is indeed requested often enough. I think a better option is an AI option which does a quick extra query, that way analysis is not affected.

If you have a table of settings (block, playouts) to strength, that would help.

@portkata
Copy link
Author

portkata commented Sep 30, 2020

I used the first one in the past, put katago has gotten stronger since then. I really didn't care about precise accuracy. Obviously the policy is much stronger than 1 dan! I just wanted the 9d setting to easily beat zen7 9 dan as both white and black.
Suggested Settings.txt
With the second one, similarly I don't care about accuracy, just that the 9d can easily defeat zen7 9d as both white and black. It's convenient that the 40b at 9 playouts can play at 9d.
Suggested Settings 2021.txt
katago is strongest per playout when it is only using one thread, and one thread is the only way to keep settings hardware independent.
Since these would only be of interest to very strong players, and katago becomes so strong so quick, the easiest thing would probably be just to let advanced users change the numSearchThreads and MaxPlayouts. When they beat it at say 4 playouts, they can just move up to 5. I don't think you will have many users able to beat the 40b at numSearchThreads = 1 maxPlayouts = 9. The kyu rankings are taken from here. Another way users can calibrate the 9d bot using a game against a weak human pro is here. Basically, the amount of playouts katago takes to beat leela zero 125 at -t1 -p4000 puts it at pro level to play against. I can find that out within a week. Thanks so much for trying to come up with something!

@sanderland
Copy link
Owner

I'm not sure threading makes a lot of difference at a few playouts, the locking should make it stronger if anything (explore different moves to 1 visit rather than pile them on top policy).
One option would be to simply take the top n policy moves, fire off a bunch of 1 visit queries to them and take the one with the best utility.

@portkata
Copy link
Author

portkata commented Sep 30, 2020

You might be right, but it seems like only a few users would need the high dan settings. I don't think it's possble to increase the playouts just 1 at a time if you're using multiple threads. You can really leverage how strong the 40b gets so quickly by letting those few players try to see how far they can go defeating Katago in a step-wise manner, since almost no one will get past 9. If they need analysis, they can just play against the full katago setting max visits to whatever point they have difficulty defeating. Since this high dan opponent is kind of a niche setting, once players reach around 4 dan they can improve alot by playing the full strength katago anyways using the settings already in the program. Sorry for being so wordy, definitely feel free to ignore. I'm not knowlegable enough to see how anything based on the policy can get much past the maximum strength on the policy. But thanks for taking your precious time in this discussion!

@sanderland
Copy link
Owner

Im not knowlegable enough to see how anything based on the policy can get much past the maximum strength on the policy.

If you do a search, you visit the next node by choosing the max Utility + c * Policy where c varies with total visits and so on. Firing off a bunch of separate queries to all 4-8 top policy moves just gets the evaluation 1 move deeper, which could help if the top policy move is a mistake. I'll have to think about it a bit.
For now I'm working on a different AI option, which might also help close the gap, while being able to read.

@portkata
Copy link
Author

portkata commented Oct 25, 2020

In case its of interest to anyone, golaxy now has an english site with ranked bots 10k - 9d+. the katago 15b net with 4 playouts (1thread) easily beats the golaxy 4d bot. here is an order to play full strength katago from ddk to 4d+ fox by net size and max playouts. This is the closest I could get to your initial comment about corellating playouts with rank. It's not accurate, but really interesting to see the wide range of strength (almost all of amateur human play) possible with so little computing power and so few playouts.
mobilekatagostrength.pdf

@kylebakerio
Copy link

Just want to comment that these values can be set in analysis_config.cfg, which if nothing else you can download the default of and then point katrain to use it from within the app, no?

Copy link

This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 10 days.

@github-actions github-actions bot added the Stale label Aug 18, 2024
Copy link

This issue was closed because it has been stalled for 30 days with no activity.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Sep 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants