記事閲覧
質問掲示板
TOP > 記事閲覧
fld_bell.gif google cloudでKataGoを動かす方法について
投稿日 : 2020/09/10(Thu) 21:01
投稿者 Eba
参照先
マイルドインベスターさんという方が詳細に記載された
【無料GPU】囲碁AI KataGoをGoogle Colaboratory上で動かす方法
https://mildinvestor.com/2020/09/05/katago-on-google-colaboratory/
これについて情報掲示板に紹介しましたが、CPU版Lizzieを使っている人に質問をしたいと思います。

LizzieでエンジンをKataGo colabにして起動するのにどのくらい時間がかかるでしょうか?
KataGoはスタンドアローンで起動するとき、初回はチューニングに長時間かかるのですが、KataGo colabはクラウド上で動いているので、チューニングというものが無いとは思います。でもはっきりしないのでお尋ねします。

また、KataGo colabについて、他の質問があれば、このスレをご利用ください。
編集 編集
< 12345678910>
件名 Re: google cloudでKataGoを動かす方法について
投稿日 : 2020/09/29(Tue) 10:16
投稿者 hope366
参照先
内容に不備があったようで申し訳ありません。
私が示した内容は、colab-katago-en.ipynbからコピペしたものですが、メモ帳経由で質問掲示板に貼り付けたのが原因かもしれませんが、100%正しく再現されていませんでした。
今回は実際のcolab-katago-en.ipynbの画面の画像を貼り付けますので、この通りにやってみてください。

# f.write('maxVisits = 500\n')
f.write('maxVisits = 200000\n')

の部分が重複していますが、2枚の画像のつながりを分かりやすくする意味で重複させていますので、それぞれ必要なのは1行だけです。
また、これは私が自分の好みで設定している内容ですので、ルール変更だけでよい場合は、
# f.write('maxVisits = 500\n')
f.write('maxVisits = 200000\n')
だけでも大丈夫だと思います。
#とfの間は半角スペース4個分空けます。その下の行のfは左に半角スペース1個分ずれています。下書きの段階だと正しく表示されるのですが、投稿してから質問掲示板を見てみると、4個空けたスペースが無かったことになっています。
画像を見て手入力は大変ですので、
https://mildinvestor.com/2020/09/05/katago-on-google-colaboratory/#toc17
これの、「Pythonで設定ファイルを上書きする方法」というところに、ソースコードが記載されていますので、これをコピペするのがお薦めです。

1601342212-s-1.jpg1601342212-s-2.jpg

編集 編集
件名 Re: google cloudでKataGoを動かす方法について
投稿日 : 2020/09/29(Tue) 12:16
投稿者 Ted
参照先
ありがとうございます。
出来たようです。

「Pythonで設定ファイルを上書きする方法」のソースコードを
with open...
から26行まるまるコピぺ(挿入)しました。

Colab-KataGoを開くと、黒一手目の勝率が日本ルール変更前は56%程度だったものが、
49%程度に変わりました。

念のため、教えておいていただきたいのですが、
先に教えていただいた6行挿入に比べ、今度は26行と多いのは何が
違うのでしょうか。

6行挿入方法で、
#とfの間は半角スペース4個、下の行のfは左に半角スペース1個分ずれ、をトライして
みたのですが、やはりColab-KataGoは開きませんでした。
編集 編集
件名 Re: google cloudでKataGoを動かす方法について
投稿日 : 2020/09/29(Tue) 12:54
投稿者 hope366
参照先
>先に教えていただいた6行挿入に比べ、今度は26行と多いのは何が
違うのでしょうか。

ルール変更以外にも、いろいろな設定変更が含まれているということだと思います。

6行挿入でうまくいかないとのことですが、私のほうでも試してみました。添付画像をご覧ください。これでKataGoのインストールは問題なくできました。

1601351675-s-1.jpg

編集 編集
件名 Re: google cloudでKataGoを動かす方法について
投稿日 : 2020/09/29(Tue) 16:15
投稿者 Ted
参照先
6行挿入、どこか違っていたのでしょうね。
すみません。
今、上手く動いていますのでこのままにしておきます。
Let the sleeping KataGo lie.

名人戦今黒57手打ったところで、YouTube中継は
72.9:27.1 僕のKataGoは 72.2:27.8 です。


僕のKataGoは今変わって、
71.5:28.5
です。YouTube中継の勝率は変わらずです。
少し違いますね。


結局、黒57手ノビで白が封じましたね。
この時点では、YouTubeは、
66.5:33.5 に変わってますね。
思考してだんだん変わっていくのですね。
編集 編集
件名 Re: google cloudでKataGoを動かす方法について
投稿日 : 2020/09/29(Tue) 20:44
投稿者 hope366
参照先
Tedさん
ルール変更成功されたようで何よりです😄
ルール繋がりの話題なんですが、日本ルールと中国ルールで半目勝負の場合はセキ絡みの時は勝敗が入れ替わる、という話を耳にしたことがあります。
つまり、セキがなければ勝敗が入れ替わることがないということになります。

今行われているAIの世界大会の4回戦の「逸乐围棋 VS LeelaZero」は、時間切れで黒が勝ちとなりましたが、もし最後まで打っていれば日本ルールでも中国ルールでも白が半目または1/2子勝ちとなり、ルールによる勝敗の入れ替わりがありません。
この対局にはセキが絡んでいないので順当なのですが・・・

ここで例として、盤面に黒石が100個、黒地が84目、白石が100個、白地が77目、アゲハマは双方0、という状況を考えてみます。セキはありません。
中国ルールだと、184-177=7、コミが3と3/4子なので、白が1/2子勝ち。
日本ルールだと、84-77=7、コミが6.5目なので、黒が半目勝ち。
セキが絡んでないのに勝敗の入れ替わりがありますね・・・

つまり、どちらの場合も起こり得る、ということでしょうか?
編集 編集
件名 Re: google cloudでKataGoを動かす方法について
投稿日 : 2020/09/29(Tue) 21:52
投稿者 Eba
参照先
LeelaZeroの4回戦は碁盤掲示板に棋譜を載せ、情報掲示板にも書いたとおり、コミが6.5で中国ルールで数えると黒が7ポイント差で半目勝ち、日本ルールで数えると白が6目差で勝つ特殊なケースです。しかし、その特殊なケースが5回戦でも起きたので驚きました。調べてみたら5回戦までに全50局のうち7局がこのケースだったようです。(推定です)
通常は中国ルールならコミ7.5で、日本ルールではコミ6.5なので、どちらのルールでも白の半目勝ちですし、勝敗の逆転はないと思います。
しかし、例としてあげられたケースは逆転してますね。こういうケースがあり得るのかな? 詳しい人の助けが必要そうです。sml_bonk.gif
編集 編集
件名 Re: google cloudでKataGoを動かす方法について
投稿日 : 2020/09/29(Tue) 23:19
投稿者 Ted
参照先
AI世界大会のコミの話題ではなくてすみません。
日本ルールへの変更の続きです。

maxVisitsというは何なのか良く分からないのですが、
エイヤーと200000に直しました。

マインドインベスターさんの
「Pythonで設定ファイルを上書きする方法」の
26行まるまるコピぺ(挿入)したのですが、
(実際は23行目がブランクなので25行)
マイルドインベスターさんは例として、日本ルールへの変更、
maxVisitsを5000に変更する場合と記載されています。

Ebaさんが、
KataGoの設定の変更4で、
デフォルトの maxVisits = 500 は少なすぎるので 200000とします。
と書かれています。
今、hope366さん 本日10:16 付投稿に添付のJPG2枚を見直すと、
(何故か27行あります。それは良いとして、)

次のところが200000になっていますね。

# f.write('maxVisits = 500\n')
f.write('maxVisits = 200000\n')

マイルドインベスターさんの例はここが、
# f.write('maxVisits = 500\n')
f.write('maxVisits = 5000\n')
です。

ここを手書きで200000に直しちゃいました。
どんな違いがあるのかは分かりませんが。
編集 編集
件名 Re: google cloudでKataGoを動かす方法について
投稿日 : 2020/09/30(Wed) 00:21
投稿者 hope366
参照先
maxVisitsとは最大訪問数のことで、KataGoが1回の着手につきどれだけ探索するか?の上限値のことです。
maxVisits = 500であれば、どれだけ考慮時間を長く設定しても探索数500visitsで打ち切りです。
この設定はSabakiなどでの対局時のみ有効で、lizzieで分析をする分には関係ありません。

colab-katagoで使用されるGPUは処理速度が速いので、maxVisits = 500だと1秒前後しか探索しません。
Sabakiで動かすときに考慮時間を5秒に設定しても1秒前後しか考えません。これではうまくありません。
maxVisits = 200000、のような大きな数値を設定しておけば、いろいろな考慮時間に対応できるということですね。

マイルドインベスターさんのサイトと私の設定で違うところは、以下の部分です。

f.write('logDir = gtp_logs\n')→#で無効処理。動作記録をどこに保存するかの設定。
クラウドのKataGoなのでどっちでもいいのですが、普段無効にしているので何となくです。

f.write('logToStderr = false\n')→trueに変更。対局時に詳細情報を表示するかどうかの設定。

f.write('resignThreshold = -0.90\n')→0.98に変更。KataGoが投了するラインに関する設定。

f.write('ponderingEnabled = true\n')→falseに変更。対局時、相手の手番の時も探索するかどうかの設定。

f.write('lagBuffer = 1.0\n')→0に変更。対局時のタイムラグに関する設定です。

f.write('numSearchThreads = 12\n')→20に変更。KataGoの棋力を左右する設定。。環境によってベストの数値が変わります。ベンチマークテストやってないので微妙ですが、普段20なのでそれに合わせました。

f.write('ogsChatToStderr = true\n')→この行が私が追加したものです。対局時に目数差などを表示するかどうかの設定です。

こうして見てみると、lizzieしか使わないならほとんど影響しないようなものばかりですね🙃
編集 編集
件名 Re: google cloudでKataGoを動かす方法について
投稿日 : 2020/09/30(Wed) 16:07
投稿者 Ted
参照先
hope366さん

プログラムを行数だけで判断するTedです。sml_q.gif

ご丁寧な説明ありがとうございます。

①maxVisits 
 良く分かりました。
 200000にして正解でした。

②プログラムの先頭の#は無効と言う意味なのですね。
 納得。

③ f.write('maxTimePondering = 60\n')
マイルドインベスターさんとの違いに書かれてなかったのですが、
hope366さんは先頭に#を付けています。
これもし、max思考時間で60秒で打ち切りとかの意味だったら、
hope366さんのように無効にすべきですよね。

後はあまり分からないのでこのままにしておこうかと思います。

別件ですが、またメガパックがアップデートされV.4.7になりました。
v.4.6.1はパスしてkataGo v1.6.1だけの更新で v.4.6を使っています。
KataGoは更新がないようですがweight fileは更新され続けているので、
今回はフルバージョンの更新をしようと思います。
編集 編集
件名 Re: google cloudでKataGoを動かす方法について
投稿日 : 2020/09/30(Wed) 17:01
投稿者 hope366
参照先
確かに仰る通り、f.write('maxTimePondering = 60\n')が無効になっていました。
観察力が鋭いですね😄
有効でも無効でも普段使う分にはあまり影響がないのですが、何となく無効という気分です(笑)

メガパックは更新するかどうか思案中です。個別に持ってきて事足りるものばかりですので・・
lzの最新weightが同梱されていますが、これもだいぶ前にダウンロード済みですし・・・
編集 編集
TOP > 記事閲覧
< 12345678910>
件名 スレッドをトップへソート
名前
URL
画像添付


暗証キー
画像認証 (右画像の数字を入力) 投稿キー
コメント sml_cool.gifsml_sml.gifsml_yawn.gifsml_q.gifsml_big.gifsml_shm.gifsml_wink.gifsml_cry.gifsml_roll.gifsml_bonk.gif

- WEB PATIO , Modified by Eba -