2018年07月16日

コンピュータ囲碁プログラム「AQ」のインストールと使いかた - Ubuntu編

「AQ」は、山口祐さんが独力で開発しオープンソース化したコンピュータ囲碁プログラムで、自己対戦による深層学習の手法にもとづいています。
日本棋院ネット対局「幽玄の間」に導入されてプロ棋士の練習相手をつとめ、最初の一週間で「118勝8敗」、およそ一ケ月のあいだに「420勝23敗」という驚異的な成績を残したことでも知られています。

「AQ」GitHubレポジトリ
・ソースからビルド(GPUバージョンはLinuxバイナリ配布あり)。
・64bit対応。
・GPUバージョンおよびCPUバージョン。

関連記事
ネット対局「幽玄の間」に囲碁ソフト「AQ」を導入
囲碁AI「AQ」が驚異の118勝8敗
プロ練習に新囲碁AI 個人で開発、日本棋院導入

「AQ」の強さについては山口さんご自身が「トッププロ級」とおっしゃっていますが、これは高性能GPUを利用して高速演算できる場合の話で、GPUをもたない環境で動作するCPUバージョン「AQ-mini」は「大変弱く、アマチュア2~3段程度」とのことです。
hatakazuが囲碁を学ぶうえで「AQ」を利用したいのは、オープンソース化されているコンピュータ囲碁プログラムのなかで「コミ六目半の互先の碁」に最適化されているのは「AQ」だけ、だと思うからです。
逆にそのせいで、コミ七目半の中国ルールでは黒番半目負けになる可能性があることについて、山口さんご自身が以下のように注意を喚起されているほどです。

!!!Caution!!! This version was trained in Komi = 6.5 for the Japanese rule. So, AQ often loses 0.5 point at Black, but that is inevitable.


1. 前提となる環境
インストールするコンピュータの仕様は以下のとおり。

--
Dell Inspiron 14 7472 Core i7モデル 18Q42P
OS:Ubuntu 18.04 LTS 日本語 Remix
CPU:インテル Core i7-8550U (4Mキャッシュ、最大4.0GHz)
GPU:NVIDIA GeForce MX150 GDDR5 2GB
メモリー:8GB DDR4 2400MHz(最大16GB)
保存装置:128GB SSD (Windows10 Home 64bit) + 1TB 5400rpm HDD (Ubuntu 18.04 LTS 日本語 Remix)
--

「AQ」をインストールするさいの動作要件は、以下のように記述されています。

・OS: 64-bit Linux
・GPU: Nvidia GPU with CUDA capability of >=3.0
・CPU: CPU with SSE 4.2

64bit OSのみの対応、そしてGPUバージョンを動かすためには、Compute Capability 3.0以上のNVIDIA製GPUが必要です。
この条件を満たしていれば、配布されているLinux用バイナリをダウンロードして、かんたんに使いはじめることができます。
GPUをもたない環境では、CPUバージョンをビルドして使うことになりますが、これについてはまたべつの記事を作成します。
なお、「AQ」として公開されているのはGUIをもたない囲碁思考エンジン部分のみなので、グラフィカルに対局や棋譜分析をおこなうためにはGTPを解釈できる囲碁GUIと連携させる必要があります。

2. 「AQ」インストールファイルのダウンロード
「AQ」の現行バージョンは「v2.1.1」で、「AQ」GitHubレポジトリの「Releases」ページから「AQ_linux.tar.gz」をクリックして、GPUバージョンのLinux用インストールファイル「AQ_linux.tar.gz」を取得します。
CPUバージョンを使う場合は、ソースをダウンロードのうえビルドする必要があり、これについてはまたべつの記事を作成します。

3. 「AQ」のインストール
ダウンロードした「AQ_linux.tar.gz」ファイルを解凍すると、「AQ」ディレクトリが生成します。
この「AQ」ディレクトリのなかにGTP思考エンジン本体である「AQ」や設定ファイル「aq_config.txt」などがふくまれているので、この「AQ」ディレクトリをそのまましかるべき場所(たとえば「~/AQ」など)に設置すれば、インストール作業は終了です。

$ tar zxvf AQ_linux.tar.gz
$ mv AQ ~/


4. 「AQ」の設定
「AQ」ディレクトリのなかにGTP思考エンジン本体「AQ」といっしょに設定ファイル「aq_config.txt」が置かれており、この設定ファイル「aq_config.txt」の内容を編集することで、次回起動時以降「AQ」のふるまいを変更することができます。
以下に、編集する可能性のある項目だけ抜き出して、各項目の意味と設定方法を記述します。

### Hardware setting ###
# Set number of 1-8 for 'gpu count'.
# 'thread count' is number of the total usable threads.
-gpu count =1 # 利用できるGPUの数。CPUバージョンの場合は「0」になります。
-thread count =4 # 利用できるCPUスレッド数ですが、GPU一個の場合は「5」ていどまで、GPU二個なら「8」以上が有効になるようです。

### Time contorol setting ###
-main time[sec] =0 # 秒読みにはいるまえのいわゆる持ち時間を秒単位で入力。秒読みのみの場合は「0」に設定する。
-byoyomi[sec] =10 # 持ち時間が切れたあとの秒読みの長さを秒単位で入力。秒読みなし切れ負けの場合は「0」に設定する。
-emergency time[sec] =15 # 秒読みなしの場合に、持ち時間がここで指定した秒数より短くなると、ノータイムで打ちはじめる。

### Thinking setting ###
-japanese rule =on # 日本ルールの場合は「on」に、中国ルールの場合は「off」に設定する。
-komi =6.5 # 日本ルールの場合は「6.5」に、中国ルールの場合は「7.5」に設定する。
-use pondering =off # 相手の手番でも考慮する「ponder」機能を使う場合は「on」に、使わない場合は「off」に設定する。


5. GTP対応囲碁GUIとの連携方法
「AQ」として公開されているのはGUIをもたない囲碁思考エンジン部分のみなので、グラフィカルに対局や棋譜分析をおこなうためにはGTPを解釈できる囲碁GUIと連携させる必要があります。
「AQ」ディレクトリをたとえば「~/AQ」に設置したとして、「/home/username/AQ/AQ」(「username」はお使いのユーザ名)が、囲碁GUIに登録するべきGTP思考エンジンへのパスになります。

5-1. GTP対応囲碁GUI「GoGui」への思考エンジン登録
メニューバーの「プログラム」から「新規プログラム」を選び、あらわれた画面の「コマンド:」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば「AQ」ディレクトリを「~/AQ」に設置した場合、「コマンド:」欄に入力する絶対パスは「/home/username/AQ/AQ」のようになります。
そしてその下の「ワーキングディレクトリ:」欄に、「AQ」実行ファイルをインストールしているディレクトリのパス、ここではたとえは「/home/username/AQ/」を入力します。
「OK」ボタンを押下して何度か「待機」をクリックしながら待っていると、ステイタスバーに表示されていた「プログラムの開始中」メッセージが消えて新規プログラム登録画面が開くので、「ラベル:」欄にたとえば「AQ」などと入力して「OK」ボタンを押下します。
これで登録完了となるので、次回以降はメニューバーの「プログラム」 -> 「プログラムの起動」とすすんで「AQ」を選ぶと、「AQ」が起動して対局や棋譜分析に利用できるようになります。
登録した囲碁思考エンジン「AQ」と対局するには、「AQ」を起動した状態で、メニューバーの「対局」から「碁盤サイズ」「置石」「コンピュータの手番」を指定したうえで、「新規対局」をクリックします。
検討したい局面を指定して、そこで「AQ」がどう打つかをみることもできます。
「AQ」を起動したあと、メニューバーから「コンピュータの手番」を「なし」にして、どんどん石を置いていって対象となる局面をつくり、黒番の局面なら「AQに黒を打たせる」、白番の局面なら「AQに白を打たせる」アイコンをクリックします。
そのさい「GTPシェル」を開いておけば、読み筋や評価値も表示されるので、着手の意味を考えるときに参考になります。

5-2. 「Sabaki」への思考エンジン登録
メニューバーの「Engines」から「Manage Engines」を選び、あらわれた画面で「Add」をクリックします。
「(Unnamed Engine)」と表示されている欄にカーソルをもっていって、わかりやすい表示名を、そして「Path」欄に囲碁思考エンジンの絶対パスを入力します。
たとえば「AQ」ディレクトリを「~/AQ」に設置した場合、「(Unnamed Engine)」欄にカーソルをもっていって「AQ」と入力、「Path」欄に絶対パス「/home/username/AQ/AQ」を指定します。
登録した「AQ」と対局するには、メニューバーの「File」から「New」をクリックします。
開いた画面で「Board Size」「Handicap」「Komi」を指定のうえ、黒番と白番それぞれの担当者を選択します。
自分が担当する手番は「Manual」を選択、「AQ」に担当させる手番は登録されている思考エンジンの表示名から「AQ」を選んで、「OK」ボタンを押下します。
「Sabaki」にほかの囲碁思考エンジンを登録しておいて、「AQ」をほかの思考エンジンと対局させることもできます。
その場合は、対局させる思考エンジンの両方について「ponder」機能を無効化するように設定し、互いの思考をさまたげないかたちで対局をおこなう必要があります。


参考ウェブページ一覧表(順不同)

「AQ」開発者である山口祐さんのtwitter「https://twitter.com/ymg_aq」
https://github.com/ymgaq/AQ
https://github.com/ymgaq/AQ/releases
https://github.com/ymgaq/AQ/wiki/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95%EF%BC%88Windows%EF%BC%89
posted by hatakazu at 22:55| Comment(0) | 囲碁ソフトのこと | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください