「Leela」サイト: SJENG.ORG - chess, go, audio and misc. software
1. Ubuntu 18.04 LTSへのインストール
上記サイトからUbuntu用インストールパッケージ「Leela 0.11.0 for Ubuntu (deb package)」をダウンロードし、「$ sudo apt-get install leela_0.11.0_amd64.deb」コマンドでインストールします。
インストールが完了したらアプリケーションメニューに「Leela」と「Leela OpenCL」が登録されていますが、「Leela OpenCL」はGPUを利用して高速動作するものなので、GPU非搭載の古いラップトップを使っているhatakazuは「Leela」のほうを起動します。
グラフィックインタフェースつきのパッケージで、プログラムの実体は「/usr/games」ディレクトリに格納されています。
2. 対局方法
「File」→「New Game」をクリックし、開いた画面で「盤サイズ」「手番」「置石」「コミ」などの条件を指定して、「OK」を押下すると対局がはじまります。
「Engine max level」は思考エンジンのシミュレーション数をあらわしていて、値が大きいほど強くなりますが、通常は「Unlimited」を指定すればO.K.です。
ふつうに条件を指定して対局するほかにも、勝敗におうじて段級位が変動し、それにともなって自動的に対局条件が設定されるレーティング対局もできます。
「File」→「Set Rated Board Size」でレーティングに挑戦する碁盤のサイズを指定して、「File」→「New Rated Game」でレーティング対局がはじまります。
勝ったら置石が減り、負けたら置石が増えるかたちで、次局の対局条件が実力にあうように調整されていきます。
3. 棋譜分析
対局以外の実用性の高い使いかたとしては、sgf形式などの棋譜を読みこんで、それをLeelaに分析させることができます。
「Analyze」→「Analysis Window」を表示させてから、「Analyze」→「Start/Stop Analysis」をクリックすると、「Analysis Window」に候補手とそれぞれの候補手を選択した場合の勝率が表示されます。
「Move」列に表示されている候補手をクリックすると、そのときに読んでいる変化図が碁盤に表示されます。
「Effort%」が高ければ十手以上先まで読み筋が出ますし、クリックするたびに図が変化して、かなり広く深く読んでいることがわかります。
「Tools」→「Show Best Moves」をオンにすると、色分けによる優先順位表示とともに、候補手を盤上に表示させることもできます。
「Analyze」→「Show Histogram」をオンにすると、手数の進行にともなう勝率の変遷が可視化され、どこでわるい手を打ったかひと目で把握できます。
「Leela」の棋力そのものが高いため、こうした分析内容の信頼性も高く、対局のみならず囲碁を勉強するツールとしても非常に貴重な存在であるといえます。
4. GTP版の使いかた
「Leela 0.11.0 engine only (commandline/GTP engine for Windows/Linux/macOS)」をダウンロードして、それにふくまれる「leela_0110_linux_x64」をGTPエンジンとして指定し、「Sabaki」などのGTPを解釈する囲碁GUIから利用することもできます。
その場合は「-g -p 1600 --noponder」(p値が大きいほど強くなるが、着手にかかる時間は長くなる)などといったオプションや、「time_settings 0 20 1;」(持ち時間なし、一手20秒以内で着手)のような時間指定を使って、強さと考慮時間のバランスをさぐる必要があります。
お気にいりの囲碁GUIがあって、それに特有の機能や操作を使いたい場合は、上記の方法で「GTP版Leela」を利用するのが便利です。
5. 個人的な目標設定
GPUをもたない古いラップトップで動かしているため、「Leela」の強さを完全に引き出すことはできませんが、それでもhatakazuにとってはじゅうぶん強い対戦相手です。
hatakazuは囲碁を勉強するとき(囲碁にかぎらず何事もそうですが)頭でっかちになる傾向があるので、時間の心配をする必要などなく対局できる「Leela」相手にどんどん打ってみて、そのなかでどうしたらいいかわからなかったり打ちかたを忘れてしまっていたりする場面が出てくるので、それを書籍にもどって見なおしておくという勉強法も効率的かなと思っています。
いまのところ、勝ったり負けたりして二子〜四子をいったりきたりしていますが、長期的には互先で勝負できるようになることを目標に勉強していくつもりです。
強くなるコツはありますか?知らない機能が分かったので使ってみます。ちなみにnuralnetはチェック入れなくて大丈夫ですか?