Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GTPの互換性向上(Lizzie用) #80

Merged
merged 2 commits into from
Dec 28, 2023

Conversation

kaorahi
Copy link
Contributor

@kaorahi kaorahi commented Dec 22, 2023

Lizzie や LizGoban 上で TamaGo を使えるように, GTP の互換性を改善する案です. (しっかりテストしてはいないので, しばらく試して様子を見たほうが安全かもしれません)

(1) 入力
GTP コマンドの前に ID (数字) がついた入力, たとえば 20 name などに対応します.
参照: 2.5 Command Structure

(2) 出力
ID がついた入力に対しては, = の直後に対応する ID を出力します. たとえば =20 TamaGo のように. また, 失敗時の出力は, = 抜きで ? unknown_command?20 unknown_command が標準のようです.
参照: 2.6 Response Structure

(3) lz-analyze
GUI が用いるいろいろな形式に対応します. Lizzie では lz-analyze 10, LizGoban では lz-analyze b interval 20 など. また, allow のような非対応機能は, 無視するのではなく失敗した旨を出力します (LizGoban は起動時にこれらを試して対応状況をチェックします).
参照: KataGo GTP Extensions

(4) undo
GUI 上で手を戻すために必要です. 非効率ですが, 「一旦クリアして初手から直前手まで打ち直す」という強引な実装をまずはしてみました.

なお, 現状では以下の制限があります.

Lizzie の場合:

  • あらかじめ Lizzie で [設定] > [表示] > [碁盤サイズ] を 9x9 にしてからエンジンを TamaGo に切りかえないとハングします. これを防ぐには, 「GTP とモデルの boardsize が合っているか」のチェックを client.py に実装する必要があります.
  • バージョンチェックの警告が出ます. これを黙らせるには, 初期の KataGo のように, version0.15 と詐称する小細工を client.py に実装する必要があります.
  • 置き石が TamaGo に無視されます. どうしても置き碁を扱いたければ, 白番をパスしながら手動で置き石を置く必要があります (あるいは (;SZ[9];B[gc];B[cg]) のような SGF を読み込む). これを直すには, GTP コマンドの fixed_handicap を client.py に実装する必要があります.

LizGoban の場合:

  • LizGoban は kaorahi/lizgoban@34247f0b7 以降 (もしくは次に出るはずの 0.8.0-pre4 以降) を使ってください.
  • LizGoban の config.json に次のような記述が必要です.
{
    ...,
    "preset": [
        ...,
        {
            "label": "TamaGo",
            "engine": ["/bin/python3", "/PATH/TO/main.py", "--model", "/PATH/TO/model.bin"],
            "board_size": 9,
            "komi": 7,
            "wait_for_startup": false
        },
        ...
    ]
}

@kobanium
Copy link
Owner

マージリクエストありがとうございます。
実装内容と制限事項について、承知しました。

動作確認をしてからmainブランチに反映したいので、Target branchをmainからdevelopに変更していただけますか。

@kaorahi kaorahi changed the base branch from main to develop December 25, 2023 20:01
@kaorahi
Copy link
Contributor Author

kaorahi commented Dec 25, 2023

お返事ありがとうございます.
ターゲットを develop ブランチに変更した上で, main ブランチ由来のマージコミット 3a5461d をプルリクエストから除きました.

@kobanium
Copy link
Owner

ご対応いただきありがとうございます。
なるべく早めに動作確認等をして次バージョンのリリースを行います。

@kobanium kobanium merged commit fa80979 into kobanium:develop Dec 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants