💭
LLMを用いて囲碁の着手
はじめに
今回は私の趣味である囲碁(アマ初段程度の実力です)とLLMを組み合わせて囲碁の着手を試みます.
LLMを用いて囲碁の棋譜解説において、いくつかのスクリプトを作成しましたが、その中に、次の着手をAIに尋ねるものがありました。AIは解説として「Dの4が良いです」などと言ってくるのですが、実際に打つ着手はまったく別のロジックで考慮しているため、Dの4ではなく別の場所に打ちます。
そこで私は考えました。この解説通りに囲碁を打てるんじゃないの?
着手の作成
下記のようなプロンプトを作成します。
あなたは囲碁のプロ棋士です。19路盤の囲碁の初手からの棋譜は、です。
この局面で、次に打つ場所はどこですか?
C3やD15のようにアルファベットと数値の座標で回答してください。
Iは使わないでください。
回答
私は19路盤の囲碁の初手からの棋譜を知りませんが、一般的には初手は4-4点や3-4点に打つことが多いです。
ですので、次に打つ場所としては、例えばD4やC4のような4-4点に打つのが一般的です。
この回答の文字列から、棋譜情報を正規表現で抽出して、着手とします。
正規表現
[ABCDEFGHJKLMNOPQRST]1?\d
結果として、D4が打たれます。
少し進んで5手目です。
あなたは囲碁のプロ棋士です。
19路盤の囲碁の初手からの棋譜は、黒Q16白D4黒D16白Q4です。
この局面で、次に打つ場所はどこですか?
C3やD15のようにアルファベットと数値の座標で回答してください。
Iは使わないでください。
回答
黒D15
結果としてD15が打たれます。
星に打ち合ったところから、鉄柱です。
囲碁の常識とはかけ離れてしまっています。
ただ、囲碁を打つことはできています。
このようにして、大変雑ではありますが、LLMを用いて囲碁を打つことを実現できました。
これで大会に参加しようとしたのですが、テストプレイをしていて弱すぎたため、2手に1手だけをこのLLMによる思考で打つようにして、残りは従来のAIで打つようにしました。従来のAIとLLMとのハイブリットにすることで、既存のAIだけではない独創的な手を打つようになりました。
Discussion