Please mark NeuralZ01 and friends as bots

Hello… I have neural net bots that I would like to run on OGS… could I have them marked as bots?


Also wouldn’t mind a few more… they are pretty light-weight processes on my end.

I believe at least the first bot has been marked… however it doesnt seem to like my botids… or perhaps the account isnt fully setup (it is provisional)

ERROR: Bot account is unknown to the system: NeuralZ01
ERROR: Bot account is unknown to the system: 358911

Neither id seems to work

Are the bot accounts using different settings? If not you should use just one account, it can play as many simultaneous games as you have processing power for

Some of the bots will have diff settings down the road… but if multiple people can play a single bot at the same time… thats pretty sweet.

Does it start up a new instance of the command i pass to ogstogtp or whatever the name of the lib is?

Also… because the client lib doesnt seem to have a lot of config… i imagine the server drives a lot of matchmaking and such… how would i limit how many simultaneous games a single account can play? Right now i have a separate instance for each game which eats up some GPU… meaning i could prolly run 15 or 20. If i rewrote the code to have a single instance that serves results to clients… could probably run up to the hundreds of clients or even thousands… network eval is very inexpensive at this scale.

I think you’re referring to gtp2ogs. The script launches a new instance of the bot to process each move request as they come in (the “your move” notification). It then kills the process. So the only simultaneous processing that will happen is if you’re in 20 games and they all submit a move at once. tokumoto, another OGS user, made his own edited version that you can find on github- I think his version limits the number of processes by denying game requests once a certain threshold is reached.

Of course, you can edit the script to keep your process alive until the game ends, but you’d obviously run out of resources fairly quickly if you get lots of game requests. Curious if this kind of turn-based usage model works with GPU based codes though.

Thats a little strange… it replays through all moves for each move from the beginning? Guess makes sense for a long term correspondence game… but arent there realtime games also?

Any idea why my botid is not being accepted?

Technically it doesn’t necessarily replay all the moves and evaluate the position with each. Using GTP commands it places all of the previously played stones before doing any move evaluation, which is pretty quick, before calling “genmove” only at the end. I agree that it is a bit strange, but it does take care of the continuously running process issue. The DCNN should be compatible with this methodology, correct? Since it just evaluates the current position.

Not sure about the botid, I’d have to check what mine is using at home later. That should work though. Are you giving it the generated bot key as well? If you go to the bot’s profile on your other account, you’ll see that option.

edit: btw, I saw your posts on the Computer Go mailing list, so I’m interested in trying it out. :slight_smile:

Yep… i pass the id from the profile page url and the api key generated from settings for the user. The error message says that the id is unknown

try using this version, it worked better for me but does need some customization for your particular bot:

Regarding the DCNN… its true that it works with that methodology… but it has to load up the model in the GPU if its getting killed each time. Maybe this means I would have to implement a process that can stay alive and let the bot library query that instead… but thats a bit of work. One of the cool parts of the network is it takes only 5ms to evaluate any position. If i have to load up the model for every move… thatll probably change the timing to be more like 5+ seconds per move… which isnt awful… but seems kinda heavy weight to load and unload the model for every move… especially if a number of users are all playing it