ソフト

Google Colaboratoryという無料サービスを使ってKataGoをクラウド上で動かします。したがって高性能なパソコンは必要ありません。ただし、LizzieやSabakiが使えていることが条件です。



Google Colaboratoryの使い方


Google Colaboratoryというサービスについては、マイルドインベスターさんの「【無料GPU】囲碁AI KataGoをGoogle Colaboratory上で動かす方法」に詳しく書かれていますので割愛します。本記事はこれを参考にさせていただきました。
ブラウザは Microsoft Edgeでも何でもかまいませんが、ここでは Google Cromeを使って説明します。

手順1 Googleアカウントの作成
まずGoogleアカウントを作成します。すでにアカウントを持っている人は手順2に進んでください。
アカウント作成のページで「Googleアカウントを作成する」ボタンをクリックします。
現れたページで姓名とユーザー名(またはメールアドレス)、パスワードを記入します。
登録できたらログインできるか試して見ましょう。(ログインするとページの右上に自分のアカウントのアイコンが表示されます)

手順2 KataGoに接続するクライアントの入手
Google Colabで立ち上げたマシンにSSHログインしてKataGoを起動するクライアントを入手します。
こちらのページで「colab-katago.windows.zip」をダウンロードして、適当な場所に展開してください。
これ以降、ダウンロードしたcolab-katago.exeのある場所を[C:\colab-katago\colab-katago.exe]として説明します。

手順3 専用ページ表示
ブラウザでcolab-katago-en.ipynbのページを開きます。
Googleアカウントにログインしていなければ、右上のログインボタンからログインします。

手順4 Google Drive表示
ログインしたら「ドライブにコピー」をクリックします。

手順5 Google Driveにノートブックコピー
ログインしているGoogleアカウントのGoogle Driveにノートブックがコピーされます。

手順6 ngrokのアカウント作成準備
ngrokというサービスのアカウントを作成するためngrokのページに行き、Googleアカウントのログイン情報を入力します。
入力したら下の方の「Log in with Google」をクリックしてログインします。

手順7 トークン文字列の入手
ログイン後のページの左側にある「Authentication」をクリックして現れる「Your Authtoken」をクリックします。
すると専用のトークンの文字列が表示されますから右の「Copy」ボタンをクリックして文字列をクリップボードにコピーします。

手順8 トークン文字列等の入力
Google Colabのページに戻り、ngrokのトークン文字列とユーザー名、パスワードを書き込みます。
文字列を貼り付けるときは[CtrlキーとVキー同時押し]で貼り付けてください。
ユーザー名は他の人と重複しないように独自の名前を考えてください。パスワードはなるべく複雑にしてください。
※※ユーザIDとパスワードは暗号化されていない状態で保存されているため、漏洩するリスクがあります。※※
※※ユーザIDとパスワードは普段使っていないユニークなものにしましょう。※※


さらに少し下の「# Install useful stuff 」とある直後に「! apt-get update 1>/dev/null」という1行を書き加えてください

入力し終わったら少し上、左にある矢印ボタンをクリックします。

手順9 colab-katagoのインストール
矢印ボタン(実行ボタン)をクリックするとKataGoのインストールが開始されます。
下の方にスクロールすると、インストール状況が表示されます。
最後に「done!」の行が表示されたらインストール完了です。

手順10 Lizzieにエンジン登録
Lizzieを起動し、「設定」メニューの「エンジン」を表示します。
エンジンが空欄になっているところに「C:\colab-katago\colab-katago.exe ユーザー名 パスワード」を入力してOKで閉じます。エンジン欄が一杯で空欄が無ければ、あまり使わないエンジン欄に上書きしてください。
エンジン名(この場合はエンジン 2)を覚えておきます。

手順11 Lizzieのエンジン選択
エンジン選択メニューで「エンジン 2」を選択すれば、colab-katagoがエンジンとなります。
エンジン 2をロードしてLizzieが動いていれば成功です。


※※Lizzie.0.6を使用する場合※※
Lizzie.0.6でもクラウドのKataGoは動きます。Lizzie06フォルダにあるconfig.txtをメモ帳で開いて、"engine-command"の行を以下のように書き換えるだけです。
"engine-command": "../colab-katago/colab-katago.exe ユーザー名 パスワード",

colab-katago.exeの位置はLizzie06のconfig.txtから見た相対位置なので、Lizzie06フォルダの中にcolab-katago.exeを入れているなら "colab-katago.exe ユーザー名 パスワード",
となります。
なお、Lizzieを起動するとLeela Zeroのバージョンを0.15以降にしてくれとエラー表示が出ることがありますが、Leela Zeroを使うわけではないのでOKとして無視してください。


手順12 Sabakiの起動
Sabakiを起動し、エンジンメニューでエンジンサイドバーを表示させます。

手順13 Sabakiの設定
「エンジンの管理」でcolab-katago.exeを登録します。
ユーザー名とパスワードのところに登録した名前とパスワードを入力します。間に半角スペースが必要です。


手順14
エンジンの接続でcolab-katagoの諸情報がサイドバーに表示されれば成功です。
colab-katago相手に対局したり、他の囲碁AIと対局させたりできます。



ランタイムの切断
一定時間、Google Colabのページが操作されていないと、接続が切れます。慌てないで「再接続」をクリックしてください。

KataGoを使っているとページを放置した状態になるので、ランタイムの切断はよく起きます。ページを使っていることを示すために、Google Colabのページをときどき更新しましょう。F5キーを押せば更新できます。
ブラウザによっては、好きな時間間隔でページをリロードする拡張機能があるので便利です。
Microsoft Edgeの場合、Super Simple Auto Refresh
Google Chromeの場合、Easy Auto Refresh
Firefoxの場合、Auto Reload Tab
Internet Explorerは、初めから自動更新オプションが付属しています。こちらを参照してください。
SafariやOperaは、以前のバージョンでは拡張機能に自動リロードがありましたが現在は廃止されています。そのため自動リロードを可能にするアプリを使うしか無いようです。「(そのブラウザ名) 自動リロード」で検索してみてください。


2回目以降の利用方法
2回目以降にcolab-KataGoを使う場合は、手順1~8は不要です。Google Colabにアクセスすると手順8で記入した内容が保存されています。
ブラウザでGoogleドライブのページに行きます。
Colab Notebooksフォルダ内のcolab-katago-en.ipynbファイルを右クリックし、「アプリで開く」を選択→「Google Colaboratory」をクリックします。
Google Colabのページになりますが、トークン文字列などは設定したものになっているはずです。
そのまま矢印ボタン(実行ボタン)をクリックすればcolab-katagoがインストールされます。「done!」が表示されたら完了です。


KataGoの設定の変更
colab-KataGoの設定は、GitHub上のファイルを使うようになっており、オフラインでは変更できません。
ルールを日本ルールにしたり、その他の項目を変更したい場合は、オンラインで各項目を変更します。
メニューの「挿入」をクリックし、「コードセル」をクリックしてノートブックに新しいセルを追加します。

KataGoの設定の変更2
新しいセルの行頭に「%%writefile /content/katago-colab/config/gtp_colab.cfg」と書き込んでエンターを押します
見やすくするため1行空けて次の行に、Githubにあるgtp_colab.cfgの内容をコピーしてすべて貼り付けます。(コピーするには文頭から文末までマウスでドラッグして[Ctrl+C]でコピー、貼り付けるのは[Ctrl+V]です)
設定内容をテキストにしました。gtp_colab.cfg.txtをダウンロードして編集してもいいでしょう。

KataGoの設定の変更3
セルにコピーした設定内容で変更したい項目を書き換えます。ルールを日本ルールにするなら rules = japanese とします。
この行がどこにあるのか探すのは行番号を見てください。または[Ctrl+F]で文章内の「rules」という文字を検索してください・

KataGoの設定の変更4
デフォルトの maxVisits = 500 は少なすぎるので 200000とします。その他変更したい項目は書き換えてください。


KataGoの設定の変更5
書き換えが終わったら矢印ボタン(実行ボタン)をクリックして「Overwriting /content/katago-colab/config/gtp-colab.cfg」と行末に表示されたら書き換え成功です。
なお、一度書き換えれば次回も書き換え内容は保存されているので、2度目からは矢印ボタン(実行ボタン)をクリックして実行するだけです。

Google Colabで使用されるGPU
Google Colaboratoryで使用されるGPUは何種類もありますが、接続するたびに何が割り当てられるのかはランダムです。
選ばれたGPUの名前を知るには、セルの末尾に「!echo "GPU: " $gpu_name」という行を書き加えます。そして矢印ボタン(実行ボタン)をクリックしてkatagoをインストールすると、製品名が表示されます。
GPUは Tesla K80、Tesla P4、Tesla P100、Tesla T4などがあります。順番に後の方が高性能です。
また、weightファイル(ネットワークファイル)は GPUの性能に応じて 20bまたは 40bが使われます。


利用時間の制限(90分ルールと12時間ルール)
Google Colaboratoryは、セッションが切れてから90分、起動時から12時間以内に使えなくなります。長時間使いたい場合は、Google Colaboratoryを開いているページを閉じないようにしてください。
ランタイムの切断が生じないように、適宜ブラウザを更新するのも有効です。

Colab の使用量上限
リソースを無料で提供するため、Colabではさまざまな利用制限があります。長期間の使用、リソース使用量が多いユーザーはアクセスが一時的に制限される可能性が高くなります。
詳しくはColaboratoryよくある質問をご覧下さい。
「使用量上限に達した」というエラーメッセージが出てアクセスできなくなったら、しばらく待つか、複数のGoogleアカウントを使い分けるか、有料会員になるかの選択になります。

突然切断されてGPUが使えなくなった場合

連続で使用しているとき突然切断され、再接続したら標準ランタイムに変更されることがあるようです。
こういう場合はcolabのメニューから[ランタイム]→[ランタイムのタイプの変更]をクリックします。


現れた画面窓で、ハードウェアアクセラレータにGPUを選択して保存してください。

これ以外にも予期せぬエラーで利用制限される場合があるようですが、日付が変わればまた利用できるようになるはずです。

参考
「手順9 colab-katagoのインストール」でダウンロードされるファイルはここにあります。
katago opencl/cuda versions for colab




※※修正・追記(Nov. 14, 2020)※※
"