コンピュータ将棋や囲碁の掲示板
TOP > 記事閲覧
fld_nor.gif 囲碁AI大会やCGOSで評価値、読み筋を送る拡張の話
投稿日 : 2022/12/28(Wed) 06:32
投稿者 山下
floodgate、電竜戦のように、評価値、読み筋を送る拡張を囲碁でもやってみるための仕様検討が下で行われています。

zakkiさんが作成されたpythonで書き直したCGOS
https://github.com/zakki/cgos/tree/genmove_analyze
拡張形式の仕様
https://github.com/zakki/cgos/wiki/GTP-tournament-game-expansion#proposed-extension

テストサーバ
http://203.138.189.63/cgos/19x19/standings.html
http://203.138.189.63/cgos/9x9/standings.html
左上の「三」で「CGOS mode」を外すと地合は表示されません。
数値のついた石の上にマウスを置くと読み筋が出ます。
(最近の棋譜だと正常に表示されると思います。グラフが出ないときはブラウザのキャッシュを消してください)

GTP大会対局拡張案 ver 0.1
https://gist.github.com/zakki/5d83c850715407b2ed207070a033230c
電竜戦は読み筋出るのか。GTP/NNGS拡張したらCGFオープンとかUEC杯とかCGOSでどのくらいのソフト対応するかしら。
https://twitter.com/k_matsuzaki/status/1605896075033776129
lz-analyzeの挙動しか知らなかったんでなんか考える必要ある気がしてたけど
https://twitter.com/k_matsuzaki/status/1606585678607024129
編集 編集
12345678>
件名 Re: 囲碁AI大会やCGOSで評価値、読み筋を送る拡張の話
投稿日 : 2023/03/24(Fri) 11:59
投稿者 山下
参照先
安定してるので本番に移行しようと思います。
https://github.com/zakki/cgos/wiki/GTP-tournament-game-expansion
への要望ですが、

CHARS から / を削除
CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+"

-1.0 = 'A' ... 0.0 = 'f' ... 1.0 = '+'  と 0 が 'f' なのがあるといいかも。

説明に全部で63文字、という数値が入ってる方がいいかも。
GTP exampleの "ownership"から '/' を削除

pvの最初のO15を削除
"move": "O15",
"pv": "O15 P17 O18 N17 O8 P6 N7 Q7 O6 P5",

Proposed Extension. は先頭にした方がいいかも。

着手がpass、の時、読み筋、勝率、などが消えるのは仕様でOKでしょうか?


19路でownershipを361文字以上にしたり、英数字以外の文字列を送ったり、
361個所のpvを送ったり、とかしてみましたがクライアントがエラーで止まることはあっても
サーバが落ちることはありませんでした。
http://203.138.189.63/cgos/19x19/cross/bad_manner.html
棋譜は1つ10MBとか巨大になってますが。

棋譜は1か月を過ぎたらownershipを消して
;W[dp]WL[900]CC[{"moves":[{"move":"D4","visits":3,"winrate":0.615066,"score":0.982206,"prior":0.447626,"pv":"D16"}, ... ,"ownership":"...","visits":5,"winrate":0.6137463999999999,"score":0.8778387999999999}]
下のような形式に変換するつもりです。最初のwinrate,score,pvのみです。72682 byteが 5635 byteになります。棋譜だけだと 1917 byteです。
;W[dp]WL[900]C[w0.615s1:D16]

http://203.138.189.63/cgos/viewer.cgi?19x19/SGF/2023/01/31/1134.sgf
元SGF   http://203.138.189.63/cgos/19x19/SGF/2023/01/31/1134.sgf
変換SGF http://203.138.189.63/cgos/19x19/SGF/2023/01/31/1134pv2.sgf
編集 編集
件名 Re: 囲碁AI大会やCGOSで評価値、読み筋を送る拡張の話
投稿日 : 2023/03/10(Fri) 20:24
投稿者 山下
参照先
お疲れ様です!
こちらも更新させました。コメント欄にRootとPVが表記されてわかりやすくなってますね。
編集 編集
件名 Re: 囲碁AI大会やCGOSで評価値、読み筋を送る拡張の話
投稿日 : 2023/03/09(Thu) 20:38
投稿者 zakki
参照先
wgoでの表示がルート局面の値と着手の値がわかりづらかったのと、着手の勝率が0~1になってたのを修正しました。
編集 編集
件名 Re: 囲碁AI大会やCGOSで評価値、読み筋を送る拡張の話
投稿日 : 2023/03/07(Tue) 13:15
投稿者 山下
参照先
これで上書きすればOKなのですね。ありがとうございます。
今までPassword忘れた、とかの連絡は一度もないので
個々のユーザの変更は特に必要ないと思います。
他人のPasswordも知りたくないので暗号化は歓迎です。

> この辺でkillfileでの全体終了と

ちょっと面倒そうですね。とりあえずshell scriptでループにしておきます。
編集 編集
件名 Re: 囲碁AI大会やCGOSで評価値、読み筋を送る拡張の話
投稿日 : 2023/03/07(Tue) 09:00
投稿者 zakki
参照先
> これ、例えばAnchorのパスワードを忘れてしまって再設定したい場合はどうすればいいでしょうか?

山下さん(サーバー管理者)がってことなら、次のような感じでハッシュ求めて、sqliteコマンドでpasswordテーブルを上書きすればリセットできます。

python3

>>> from passlib.context import CryptContext
>>> passctx = CryptContext()
>>> passctx.load_path("cgos19.ini")
>>> passctx.hash("new-passwod")

一般にってことだと今はユーザー名とパスワードしか登録しないのでどうしようもありません。
長期的にはウェブアプリ作って、メールアドレス登録してのパスワードリセットやダッシュボード使えると楽しそうだとは思います。

> あと、サーバを定常終了させたときに、pyhtonのclientは接続切れて終了してしまうのですが、
> これをtcl版のように1分ぐらい待って何度も再接続する、と変更できないでしょうか?

この辺でkillfileでの全体終了とエラーでのエンジン単位終了を切り分ければ行けそうな気はします。
https://github.com/zakki/cgos/blob/genmove_analyze/client-python/src/cgosclient.py#L594
編集 編集
件名 Re: 囲碁AI大会やCGOSで評価値、読み筋を送る拡張の話
投稿日 : 2023/03/07(Tue) 02:24
投稿者 山下
参照先
お疲れ様です。
テストサーバの方を
hashPassword = True
にして再起動しました。
これ、例えばAnchorのパスワードを忘れてしまって再設定したい場合はどうすればいいでしょうか?

あと、サーバを定常終了させたときに、pyhtonのclientは接続切れて終了してしまうのですが、
これをtcl版のように1分ぐらい待って何度も再接続する、と変更できないでしょうか?
編集 編集
件名 Re: 囲碁AI大会やCGOSで評価値、読み筋を送る拡張の話
投稿日 : 2023/03/05(Sun) 21:38
投稿者 zakki
参照先
cgi.dbを使わないようにして、パスワードのハッシュ化に対応しました。
Tcl版サーバーでDBを使えなくなるので、デフォルトではパスワードのハッシュ化はなしになってます。
編集 編集
件名 Re: 囲碁AI大会やCGOSで評価値、読み筋を送る拡張の話
投稿日 : 2023/03/05(Sun) 10:53
投稿者 山下
参照先
> cgi.dbは対局後にレーティング計算

なるほど。それで時間入れると、最新の対局結果のレートがずれるようになったのですか。
今まではこの仕様だったので慣れてましたが、最新レートは
一番上に出ますし、cgi.dbは削除の方向でいいと思います。
編集 編集
件名 Re: 囲碁AI大会やCGOSで評価値、読み筋を送る拡張の話
投稿日 : 2023/03/04(Sat) 22:26
投稿者 zakki
参照先
> BayesELOの計算でもcgos.stateのみ参照で、cgi.dbの存在理由は

cgi.db関連のソースコード削除して整理しようとしてみて気付いたんですが、cgos.stateは対局開始前にINSERTされてその時点のレーティングになってて、cgi.dbは対局後にレーティング計算されてINSERTされるのが違いますね。
編集 編集
件名 Re: 囲碁AI大会やCGOSで評価値、読み筋を送る拡張の話
投稿日 : 2023/03/04(Sat) 11:59
投稿者 山下
参照先
ありがとうございます!
テストサーバだけですが、問題なく動いてるようです。
正確ではないですが cgos.state のサイズは
 9路  14000局   1462272 ->   2195456   1.50倍に増加
19路   5600局    892928 ->    933888   1.04倍に増加
 9路 140000局 142537728 -> 219807744   1.54倍に増加 209MB、yss-aya.com
と、9路では結構増えますね。
実際の140万局でも1.5倍。ただ209MBで
半面cgi.dbはもう必要なくなる?ので全体の節約にはなりそうです。
BayesELOの計算でもcgos.stateのみ参照で、cgi.dbの存在理由は
よくわからないのですが。
編集 編集
12345678>
件名 スレッドをトップへソート
名前
画像添付


暗証キー
画像認証 (右画像の数字を入力「四三」なら「43」) 投稿キー
コメント

- WEB PATIO -