まず対戦に使用するエンジンを登録する。デフォルトではKataGoのOpenCL版と、同じくKataGoのCPU版(Eigen, EigenAvx2)のみ登録されているので、他のエンジンやweight(network)を使用したい場合は個別に登録する必要がある。エンジンの登録方法
準備ができたら LizzieYzyを起動し、上部ツールバーの「対局 → 新規対局 → エンジン同士の対局」と進む。すると操作パネルが表示される。
- エンジン指定
- 使用するエンジンを選択。左が黒番、右が白番
- 考慮時間(秒)
- 一手あたりに使用する考慮時間(秒)を指定する
- 高度な時間設定
- 「詳細設定」で「着手生成モード」を選択した場合に使用可能になる。「10 2 1」なら、持ち時間が10秒、それを使い切ると一手2秒の秒読みが1回、となる
- 最大訪問数
- 一手あたりのトータル訪問数を指定する。数値を大きくすれば着手の精度は高くなるが、より多くの時間を必要とする
- 最善手の最大訪問数
- 第一候補(最善手)に割り当てる訪問数を指定する。例えば、最大訪問数=1000、最善手の最大訪問数=100、と指定すると、第一候補の訪問数が100に達した時点で探索終了となる。よって、着手ごとの訪問数にばらつきが生じる。(実際には100ぴったりではなく、100前後の数値になるらしい)
- 黒番(白番)の投了条件
- エンジンが投了するための条件を指定する。例えば、最小手数=150、連続手数=2、勝率の下限値 3.0%、であれば、150手を超えて勝率3%を連続して2手以上下回ったら投了になる
- コミ
- コミの数値を指定する
- 置石の数(19路限定)
- 置き碁の石数を指定する(19路盤でのみ可能)
- 連続対局
- まとめて実行する対局数を指定する。「10」と入力すると、自動的に10局連続で実行される
- 現在の局面から継続
- ここにチェックを入れると、現在の碁盤の状態から対局をスタートするので好きな配置からスタートさせることができる
- 事前にsgfをロード
- sgfをロードしてから始めるとロードした棋譜の最終局面からのスタートとなる
- 熟考の許可
- 相手の手番の時にも分析を行う(1台のマシンではチェックしないこと)。詳細は不明
- analysisWideRootNoiseの無効化
- 分析するときにどれだけ広範囲にわたって実行させるかを指定するためのパラメータを対戦で使用するかどうかを指定。デフォルトでは無効になっている
右下にある 詳細設定ではさらに細かい設定ができる。
- 着手生成モード、分析モード
- どちらを選択するかによって、使用できる時間設定が異なる
- 手番の入れ替え
- 一戦ごとに黒白を入れ替えるかどうかを指定
- 最大手数
- 最大手数を指定。指定した手数を超えたら保存はされるが勝敗のスコアにはカウントされない。引き分け扱い
- 棋譜の保存
- 棋譜を保存するかどうかを指定
- 勝率グラフの保存
- 勝率グラフを保存するかどうかを指定
- ランダム着手数
- 例えば「16」と指定すると、最初の16手だけは最善手を含めて有力候補の中からランダムに着手が決定される。分析モードでのみ有効
- 勝率の許容下落幅
- ランダム着手のうち勝率に関してどの程度まで許容するかを指定するためのパラメータ。勝率に関して例えば「80」を指定した場合、勝率の数値が(最善手の勝率-80%)以上である候補手から選ばれる
- 訪問数の取得率
- ランダム着手のうち訪問数に関してどの程度まで許容するかを指定するためのパラメータ。訪問数に関して同様に「80」を指定した場合、最善手の訪問数の80%以上の訪問数が取得された候補手から選ばれる
- 連続対局の場合のフォルダ名
- 複数の対戦を行った場合に、データを保存するフォルダの名前を指定
- 開始番号(初期値:1)
- 保存される棋譜ファイルのファイル名の先頭に、ここで指定した数字から順番に番号がふられる。デフォルトは1に設定されていて1,2,3...となる。他の設定にしたい場合は「□」にチェックを入れてから任意の数字を指定する。「0」と指定すれば、0.1.2...と番号がふられる
- 候補手の表示
- デフォルトの「現在の着手」は、普通に分析を行っているような感じの状態で対局が進められる(考慮中にも候補手や分析結果が表示される) 「一手前の着手」は、着手した直後にその手に関する候補手が表示される。「最善手のみ」にチェックを入れると、着手した直後にその石の上だけに分析結果が表示される(一手前の着手をチェックした場合に有効)
以上、設定したら 開始をクリックすればエンジン同士の対局がスタートする。
※考慮時間、最大訪問数、最善手の最大訪問数のうちどれか1つを入力しないとエラーとなる※
対局数を複数指定した場合は、終了後に EngineGamesというフォルダに結果が記録されたファイルが保存されているので、詳細な情報を確認することができる。
終局時または棋譜を読み込んで最終局面を表示させ、「目数計算」をクリックすると図のような小窓が出現する。
※LizzieYzyを初めて使う場合、この小窓の数値は日本ルールで計算されていない※
日本ルールの場合はここで[テリトリー]ボタンをクリックする。
するとこの図のように日本ルールで計算した結果が表示される。次回からはこの窓のボタンは[エリア]と表示されていて、何もしなければ日本ルールの計算になっている。
※ここで[エリア]ボタンをクリックすると中国ルールの計算になるので注意※
上と下で2つのパネルに分かれている。それぞれの左下にある上向き下向きの矢印をクリックすると、どちらか一方が消え、もう一方が拡大表示する。
【上のパネル】
左側にはデフォルトで棒グラフが表示されているが、上のツールバーで「統計」(棒グラフ)、「簡易リスト」、「詳細リスト」を切り替えできる。
統計(棒グラフ)
正確度は、「(実際に打たれた手の訪問数/最も訪問数が多かった候補手の訪問数)x100」で計算された値の平均値
一致率は、総着手数のうち設定された条件に一致した着手の割合。設定は鷹の眼の画面の一番下にあり、自由に設定できる
この場合では、候補手のうち上位3個以内で、最大訪問数の候補手の訪問数の20%を下回らないだけの訪問数であること、この2つの条件が満たされると「一致」とみなされる
最善手の一致率は、総着手数のうち、水色で表示されるAIの最善手と一致した数の割合
目差の損失率は、AIが示す最善手の目差と実際に打たれた手の目差の差の平均値。実際に打たれた手の目差はその局面での数値ではなく、次の相手の手番における相手側の最善手から逆算した数値
勝率の損失率は、目差の損失率と内容は一緒で、こちらは勝率に関する数値
次に右側では、上のツールバーで「目差の落差」と「勝率の落差」を切り替えできる。
この場合では、目差の落差に関してAIの最善手と比較した場合の差が0.5ポイント以下だった手の数が、黒は60手、白は55手あったことを意味している。勝率の落差についても同様の結果を表示している。
目差の閾値の範囲は、上パネル左下の「閾値の設定」ボタンで自由に設定できる。
簡易リスト
左半分が黒に関する情報、右半分が白に関する情報で、AIとの比較で勝率に関して差が大きかった順に上から並んでいる。任意の場所をクリックすると、その局面が盤上に表示される。
それぞれの表の左端は、黒または白の着手番号
座標は、その着手が置かれた碁盤の座標(「設定 → 「詳細設定」で設定した基本座標)
落差(勝率)は、AIが示す最善手の勝率とその手の勝率の差。「その手の勝率」はその局面での数値ではなく、次の相手の手番における相手側の最善手から逆算した数値。
落差(目数)は、落差(勝率)と内容は同じで、こちらは目数に関する数値。
正確度は、 (その着手の訪問数/最大訪問数の候補手における訪問数)x100
詳細リスト
簡易リストと似ているが、これは黒と白が同じ一つの表に混在している。
簡易リストに加えて以下の項目が追加されている。
勝率は、実際に打たれた手の勝率(次の手番の相手側の最善手の勝率から逆算した数値)
最善手の勝率は、その局面の最善手の勝率
目差は、実際に打たれた手の目数差(次の手番の相手側の最善手の目差から逆算した数値)
最善手の目差は、その局面の最善手の目数差
訪問数は、その局面の総訪問数
次局面の訪問数は、次の手番における総訪問数
【下のパネル】
黄色く塗った部分がツールバーになっていて、9種類から選べるようになっている。
勝率の一致率
基本的には黒の視点から見た勝率グラフで、水色の線が勝率、赤色の線が目差。
上のほうで説明した一致率の条件に合致した手がどのように分布されているかが確認できる。黒の一致着手は青紫、白の一致着手は緑。また、グラフ上の任意の場所をクリックすることで、その局面に移動することができる。
ツールバーの下にある「黒」「白」で、黒または白の表示/非表示を切り替えができる。「分岐」は「主分岐」ならメインの分岐、「現在の分岐」なら現在滞在している分岐のデータが表示される。その隣の「現局面まで」は現在碁盤に表示されている局面までのデータ、「全て」は現局面に関係なく全てのデータ、「序盤」「中盤」「終盤」は、それぞれ指定された区間のみのデータが表示される。「その他」で任意の区間を自由に指定できる。「序盤の最後」「中盤の最後」では、それぞれの区間をどのように区切るかを自由に設定できる。
グラフの下には黒と白の一致率、正確度、平均損失(勝率/目差)が表示されている。これは左上を「統計」にしたときの棒グラフの詳細データでもある。
局面毎の正確度
各ステージにおける正確度が棒グラフで表示されている。グラフの下には、それぞれのステージにおける勝率・目差に関して実際に打たれた手とAIの最善手との差異の平均値が示されている。基本的な操作方法は上の「勝率の一致率」と同じ。
勝率損失の統計
勝率に関してAIの最善手と実際に打たれた手を比較した場合に、指定された区間にどのように分布しているのかを各ステージ毎に確認することができる。上のグラフの場合では、AIとの差が大きかった手が中盤に多く存在していることが読み取れる。勝率の閾値については、グラフの最下行「勝率損失の閾値」で設定できる。
目数損失の統計
勝率が目差に置き換わっているだけで、基本的には勝率損失の統計と同じ。
勝率損失グラフ
勝率に関してAIが示す最善手と実際に打たれた手の差異を一手ごとに棒グラフで表示したもの。閾値は設定可能。
目数損失グラフ
勝率が目差に置き換わっているだけで、基本的には勝率損失グラフと同じ。
正確度の推移
正確度の推移をグラフ化したもの。
大きな乖離(勝率)
勝率に関してAIとの差が大きかった着手の上位10手。
大きな乖離(目数)
目数差に関してAIとの差が大きかった着手の上位10手。
「詰碁フレーム」は詰碁の部分以外の領域に多くの石を配置して、詰碁以外の部分を無価値にする機能
碁盤に詰碁を表示し(左図)、「分析」→「詰碁フレーム」で条件を設定。続いて「適用」をクリックすれば詰碁以外の部分に石が配置される(右図)。
ここで分析すれば、詰碁の部分だけ分析されるので詰碁を解くのが容易になる。
「自動分析」は、どのような条件で分析するかを指定するもの
上から順に、
分析スタートの手数、分析終了の手数、1手あたりの分析時間、1手あたりの最大訪問数、1手あたりの最善手の最大訪問数を指定できる。
「AIとの落差が大きかった局面の分析強化」は、ポイントとなる部分を重点的に分析するかどうか。
「自動保存」は、分析結果をSGFファイルに自動保存するかどうか。
などを設定できる。
設定したら右下の「開始」で分析がスタートする。
分析が終わったら、勝率グラフの下にある黒っぽい所にマウスカーソルを持っていくと、上にツールバーが表示されるので、「リスト」にチェックを入れる。
すると下図のようなリストが現れる。
リストは、AIの最善手と比較してその差が大きかった順に並んでいる。勝率のところの数値が紫や赤になっているのがかなり悪かった手になり、そこをクリックするとその局面が碁盤に表示される。
こうして、悪かった手を素早く発見して検討することが可能になっている。
[パブリック棋譜検索]
例えば、黒(Black)白(White)ともに正確度(Accuracy)が70以上のものを一定の期間で(StartDate - EndDate)で検索(Search)すれば、棋譜データベースにある棋譜を瞬時に検索してくれる。
見たい棋譜の[View]をクリックすると盤面に取り込まれる。
[現在の棋譜を共有]
棋譜を共有するにはLizzieYzyに登録する必要がある。[ログイン]をクリックすると登録画面になるので、任意のユーザー名とパスワードを入力してログインをクリック。成功すると「ログイン成功」と表示される。
「共有情報」欄に必要事項を記入して「共有」をクリックする。
成功すると、その棋譜がアップロードされた場所のURLが表示される。
その画面の「開く」「閲覧」で共有した棋譜の盤面が表示される。もちろんURLから表示させても良い。
この盤面下部の[Download]から棋譜をダウンロードできる。
[複数の棋譜を共有]
このメニューは現在中国語のままで、使い方ははっきりしない。
[共有情報の検索(編集)]
パブリック棋譜検索と似ているが共有登録された棋譜限定で検索出来る。
また、検索をすると同時に自分が投稿した棋譜を削除したり編集したりできる。
Yikeライブに接続するときに図のような窓が開いてそのまま動かなくなることがある。
こういう場合は以下のようにすると接続できることがある。
1、LizzieYzyを終了
2、LizzieYzyフォルダの中にあるjcef-bundleフォルダを全部削除
3、LizzieYzyを起動
4、Yikeライブに接続するとjcef-bundleフォルダが自動的にダウンロードされ接続するようになる(パソコン環境によっては時間がかかる)
野狐囲碁を起動しておき、LizzieYzyの上部ツールバーの「同期」にある「碁盤同期ツール(Alt+O)」をクリックすると、同期機能に関する操作パネルが現れる。左上の方にある「野狐」をチェック、次いで「高速同期」をクリックする。そして野狐囲碁の任意の部屋に入ればそこの状況が瞬時にLizzieYzyの碁盤に再現される。部屋を変更すれば新しく表示されたものにすぐに切り替わる。
このとき「候補手を表示」がチェックされていると、同期している元の碁盤の右下に編集用のアイコンが現れる。
左から、ペンのアイコンをクリックすると碁盤上に石を置ける。マイナスは思考エンジンの候補手を表示、プラスは非表示。右のアイコンをクリックすると候補手のみの表示(候補手リストは表示されない)。
このアイコンをクリックで上下左右の矢印が出現。これはエンジンの候補手の位置を微妙に移動させる
野狐の他にタイゼム(Tygem)や Sina、バックグラウンドやフォアグラウンドといったものが用意されているが、環境によっては同期しないところもある。
※※「碁盤同期ツール(Alt+O)」は外部と通信をすることになるので Windowsのセキュリティ機能が働く。クリックすると、ユーザーアカウント制御を聞かれたり、実行するかどうかを聞かれることがある。「はい」または「詳細情報」から「実行」を選択すれば実行できる※※
上部ツールバーの「同期」にある「碁盤同期ツール(Alt+O)」で操作パネルを表示させ、[バックグラウンド]または[フォアグラウンド]にチェックを入れて、[範囲指定1]をクリックして同期させたい碁盤のやや内側をマウスでドラッグして範囲を指定する。(薄いグレーの範囲)
範囲を指定したら「同期状態を維持する」をクリックすると同期完了。
簡易的な方法として「碁盤同期ツール(簡易版)」がある。
まず予め同期させたい碁盤とLizzieYzyが重なり合わないようにウィンドウの大きさを調整して配置する。ここでは天頂7と同期させてみる。
「碁盤同期ツール(簡易版)」で操作パネルを表示させ、左上の「碁盤を指定」をクリックして、同期させたい碁盤のやや内側をマウスでドラッグして範囲を指定する。(青い線が見える)
範囲を指定したら「同期継続(200ms)」をクリックすると同期完了。この簡易版はウィンドウを動かすと表示がおかしくなるので注意が必要。
[kataGoのベンチマークテスト]
コマンドプロンプトを開き、 katago.exeのあるフォルダを指定[cd c:\katagoなど]してからコマンドを入れる。
[katago benchmark -config default_gtp.cfg -model default_model.bin.gz -tune -time 5 -v 3000]などのコマンドでベンチマークテストができる。
KataGoのベンチマークテストの結果、速度とスレッドに関する統計情報が報告されるので、default_gtp.cfg の numSearchThreadsなどの値を設定すれば良いパフォーマンスを得られるようになる。
ベンチマークで使用できるコマンドの詳しい説明はコマンドプロンプトで「katago benchmark -h」と入力すれば見られる。
なお、LizzieYzyの説明フォルダにある「KataGo検索スレッドの設定手順」をhope366さんが丁寧に解説されている。
別のエンジンまたはweightファイルを使いたければ、上部メニュー「設定」 → 「エンジン管理」で現れる登録画面で登録する。
【エンジンの登録】
LizzieYzyに例えばKataGoのGPUエンジン(CUDA版)を登録する場合は以下のようにする。
1、ダウンロードした「katago-v1.14.1-cuda12.1-cudnn8.9.7-windows-x64」のフォルダ(詳しくはKataGoの項参照)をLizzieYzyのフォルダ内に保存。
2、「エンジン管理」画面で空いている番号のところで、名前を例えば「CUDA 18B s-913」として、コマンド「生成」ボタンからエンジンを指定、次にweightファイルを指定、続いてkatago_configsフォルダにあるdefault_gtp.cfgを指定して適用。
下図参照。
3、最後に上部にあるコミを6.5にして[保存]をクリックすればエンジン登録が完了する。
もしこのエンジンを主として使うのなら、そのエンジンを選択した状態(青色になる)で、チェックボックス[デフォルト]をチェックして保存すると、デフォルト欄がYesと表示され、次回起動からこのエンジンが起動する。
設定画面を抜け、エンジン選択をすると登録したCUDAエンジンが選択できるようになっている。
なお、KataGoのTensorRT版を使う場合、katago-v1.14.1-cuda12.1-cudnn8.9.7-windows-x64フォルダにnvinfer.dllとnvinfer_builder_resource.dllが無いと起動しない場合がある。
【weightファイルの登録】
KataGoの最新のnetwork(weight)ファイルを使うなら、まず katagoのネットワークページに行く。
上の方に「Strongest confidently-rated network:」と表示されているファイルがその時点で最もレーティングの高いファイルなので、それをダウンロードするのがいい。ダウンロード先はLizzieYzyフォルダにあるweightsフォルダにする。
その後LizzieYzyの「エンジン管理」画面で変更したいエンジンのweightファイルの部分(拡張子がgz)を書き換える。またはコマンド「生成」ボタンからエンジンを登録すればいい。
LizzieYzy日本語版2 からKataGoの分散トレーニングに簡単に参加できるようになった。
GPU搭載パソコンを持っているなら効率が良くなるが、CPUのみのパソコンでも参加できる。
上部メニュー「貢献 → 貢献の設定」でアカウントを作成する。
ユーザー名の横の欄に任意のユーザー名を、その下にパスワードを入力して「登録」をクリックするとKataGoのサイトに誘導され、メールアドレスを指定すると、確認メールが来るのでメールにあるURLをクリックすればアカウントが登録される。
エンジンはデフォルトでKataGoのOpenCL版が指定されているが、他のバージョンを使いたい場合はKataGoエンジンのパスを自由に指定できる。
同時対局数はデフォルトで「6」になっているが、RTX30シリーズなど強力なGPUでは20以上の大きな数値にすれば効率が良い。
※※指定できるエンジンはKataGoのオリジナルエンジンであり、LizzieYzyに同梱されているエンジンは分散のオプションが無いので利用できない※※
※※この設定メニュー画面でそれぞれの項目にマウスカーソルを持っていくと内容説明がポップアップする※※
※※表示される対局ルールはこちらを参照されたい※※
アカウントとパスワードその他を入力したら下方の「貢献を開始」をクリックすると分散トレーニングがスタートする。
貢献を終了する場合、[通常停止(遅れ有り)]は進行している対局を全て終局してから終了する。
分散トレーニングの貢献度はこちらから見ることができる。貢献者リストの中に自分のアカウントを見つければモチベーションも上がるはず。
《CPUのみのパソコンの場合》
KataGoのページに行き、下方の例えばkatago-v1.10.0-eigen-windows-x64.zipをダウンロードしてCドライブに展開する。
C:\katago-v1.10.0-eigen-windows-x64 というフォルダーができるので、この場所を覚えておく。
続いて Lizzieyzyを起動し、上部メニューの[貢献]にある[貢献の設定]をクリック。
[KataGoエンジンのパス]の横の[指定]をクリックして上記katago-v1.10.0-eigen-windows-x64のフォルダにあるkatago.exeを「開く」。これでパスが指定された。
例えば "c:\katago-v1.10.0-eigen-windows-x64\katago.exe"となる。
次に[同時対局数]を 1または2の小さい数にする。
あとは適当なアカウント名とパスワードを記入して[登録]をクリックするとKataGoの専用サイトに飛ぶので、メールアドレスを記入してアカウントを登録する。
その後はLizzieyzyに戻って[貢献を開始]。
※※40ブロックニューラルネットのトレーニングなのでCPU版のkatago.exeの場合長時間かかる。同時対局がすべて終了するのに5~10時間程度は覚悟しなければならない。※※
《コマンドラインから実行する方法》
事前にkatago-v1.11.0-opencl-windows-x64フォルダにあるcontribute_example.cfgをメモ帳等で開いて、次の3つの項目を適切に設定しておく。
・username = Fill in your username here
・password = Fill in your password here
・maxSimultaneousGames = Fill in a number here
maxSimultaneousGames(同時対局数)は、ハイスペックのGPUなら24や36などの大きな数値が効率的に良いと思われる。
次にコマンドプロンプトでkatago.exeがあるディレクトリに移動する。(例として c:\Users>cd c:\Lizzieyzy-Japanese4\katago-v1.11.0-opencl-windows-x64 と入力してエンター)
続いて以下のコマンドを実行する。
katago contribute -config contribute_example.cfg と入力してエンター
進行中のメッセージが流れて
Maybe predownloading model ...
このメッセージの後しばらく画面が止まったままになるが放置しておけばいい。パソコンスペックにもよるが最初は5分~30分程度待たされる。
終了したい場合に「Ctrl+C」を実行すると、次のようなメッセージが表示される。
Signal to stop (e.g. ctrl-c) detected, KataGo will shut down once all current games are finished. This may take quite a long time. Repeat a second time to stop without finishing current games.
そのまま放置しておくと、「進行中の対局が終わり次第自動的に終了」となる。
放置せずに2度目の「Ctrl+C」を実行すると「強制的に終了」となる。
この機能により未完成の対局を無駄にすることなく、きりのよいところで終了することができる。
※※修正・追記(Mar 14, 2024)※※