Google Colaboratory
ホームへ

 colab-katago-en.ipynbのページは2023年4月2日にアップデートされKataGo v1.12.4に対応されました。それ以前のページをお使いの方は手順1からやり直してください。
 また2024年2月現在、ngrokの対応しているバージョンが変更されたので、手順3からやり直してください。


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


《Google Colaboratoryの使い方》

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

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

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

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

ログインしていれば「ファイル」メニューの「ノートブックを新規作成」をクリックします。

手順4 ランタイムのタイプ変更
ログインしているGoogleアカウントのGoogle Driveにノートブックが新規作成されます。
続いてランタイムメニューの「ランタイムのタイプを変更」をクリックします。

「ランタイムのタイプを変更」でハードウエアアクセラレータの T4 GPUを選択し、「保存」をクリックします。

手順5 Google Driveのマウントの許可
画面左側の「ファイル」をクリックします。

このとき「アクティブなセッションが多すぎます」と注意されたら先に接続したcolab_katago_gd_en.ipynbの接続を切断してください。

現れたメニューの「ドライブをマウント」をクリックします。

「このノートブックに Googleドライブのファイルへのアクセスを許可しますか?」とメッセージが出るので、右下の「Googleドライブに接続」をクリックします。

手順6 新規作成したノートブックに専用ページをコピー
手順3で最初に開いた専用ページ(colab_katago_gd_en.ipynb)に戻り、「編集」メニューの「総てのセルを選択」をクリック、または Ctrlキー、Shiftキー、Aキーを同時に押します。
セルが青く反転するので Ctrlキーと Cキーを同時に押してコピーします。
続いて新規作成したノートブックに戻り、Ctrlキーと Vキーを同時に押してコピーしたセルを貼り付けます。

貼り付けたこのセルで手順9の作業をおこないます。また次回以降もこのノートブックを使いますから、ノートブックの名前を分かりやすいものに変更しておきます。「ファイル」メニューの「名前の変更」で colab-katago.ipynb としておけばいいでしょう。
名前を変更したら「ファイル」メニューで「保存」しておきます。


手順7 ngrokのアカウント作成準備
ngrokのトークン文字列を既に持っていれば手順9に進んでください。
持っていなければアカウントを作成するためngrokのページに行き、Googleアカウントのログイン情報を入力します。
入力したら下の方の「Log in with Google」をクリックしてログインします。

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

手順9 トークン文字列等の入力
colab-katago.ipynb に戻り、ngrokのトークン文字列とパスワードを書き込みます。
文字列を貼り付けるときは[CtrlキーとVキー同時押し]で貼り付けてください。
パスワードはなるべく複雑にしてください。
※※パスワードは暗号化されていない状態で保存されているため漏洩するリスクがあります。普段使っていないユニークなものにしましょう。※※

さらにここでKataGoの簡単な設定ができます。
WEIGHT_FILE(KataGoのネットワークファイル)、rules、maxVisitsはそれぞれお好みのものにしてください。
WEIGHT_FILEは▼で AUTO、20b、40bを選択できます。

手順10 colab-katagoのインストール
左にある矢印ボタン(実行ボタン)をクリックするとKataGoのインストールが開始されます。
下の方にスクロールすると、インストール状況が表示されます。
インストール中に「ngrok: Text file busy」となって待たされることがよくあります。気長に待ちましょう。
最後に「done!」の行が表示されたらインストール完了です。インストールログの上の方に使用されているGPU、KataGoのweightファイルが表示されています。

手順11 SSH_IDをコピー
インストールログの途中に「SSH_INFO_GOOGLE_DRIVE_FILE_ID:」があります。その右側の文字列をコピーしてください。この文字列(SSH_ID)がLizzieやSabakiを利用するうえでのIDになります。
※※SSH_IDは同じアカウントなら同一IDとなります※※


手順12 Lizzieにエンジン登録
Lizzie改良版を起動し、「設定」メニューの「エンジン」を表示します。
エンジンが空欄になっているところに「<Colab-KataGo> C:\colab-katago\colab-katago-gd.exe SSH_ID パスワード」を入力してOKで閉じます。エンジン欄が一杯で空欄が無ければ、あまり使わないエンジン欄に上書きしてください。

LizzieYzyの場合は設定→エンジン管理の画面で追加ボタンをクリックし、図のように入力します。
名前を [Colab-KataGo]、コマンドを [C:\colab-katago\colab-katago-gd.exe SSH_ID パスワード]です。


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


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

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


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

手順15 Sabakiの設定と対局
「エンジンの管理」でcolab-katago-gd.exeを登録します。
SSH_ID とパスワードのところに上でコピーした SSH_IDとパスワードを入力します。間に半角スペースが必要です。


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



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

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


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


以下のKataGoの設定は以前に記載したものなので、現状とマッチしていないかもしれません。
KataGoの設定の変更
colab-KataGoの設定は、GitHub上のファイルを使うようになっており、オフラインでは変更できません。
ルールやweightファイルなどは上記したように変更できますが、その他の項目を変更したい場合は、オンラインで各項目を変更します。メニューの「挿入」をクリックし、「コードセル」をクリックしてノートブックに新しいセルを追加します。

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

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


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

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

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

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


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

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





※※修正・追記(Feb. 18, 2024)※※
"