将棋対局機能「人間 vs LLM」を実装。--- リアルAIの思考
将棋対局機能「人間 vs LLM」を実装。--- リアルAIの思考 はじめに Arctanoteに、新しく 「LLMと将棋」 機能を実装しました。 名前の通り、人間が将棋盤で指し、相手はLLMです。 ただし、ここでいうLLM将棋は、既存の将棋エンジンと対局するものではありません。Stockfish系のような探索エンジ...
将棋対局機能「人間 vs LLM」を実装。--- リアルAIの思考 はじめに Arctanoteに、新しく 「LLMと将棋」 機能を実装しました。 名前の通り、人間が将棋盤で指し、相手はLLMです。 ただし、ここでいうLLM将棋は、既存の将棋エンジンと対局するものではありません。Stockfish系のような探索エンジンでも、専用の将棋AIでもありません。 現在の盤面をLLMに渡し、LLM自身に次の一手を考えさせます。 もちろん、LLMが返した手をそのまま信じるわけではありません。アプリ側で将棋の合法手チェックを行い、不正な手であれば再問い合わせし、それでも駄目ならフォールバックする構成にしています。 それでも、盤面を見て、手を考え、理由を返すのはLLMです。 そういう意味では、これはかなり素朴で、そして面白い 「リアルAI将棋」 になりました。 きっかけ 最初の疑問はシンプルでした。 「LLMと将棋できるサイトはあるのか?」 将棋AIと対局できるサイトはあります。ブラウザで動く将棋盤もあります。将棋エンジンによる検討サービスもあります。 でも、今回作りたかったのはそれではありません。 作りたかったのは、将棋エンジンと戦うものではなく、LLMと将棋をする体験です。 人間が指す。 LLMが盤面を読む。 LLMが次の一手を考える。 LLMが理由を話す。 この形です。 普通に考えると、LLMは将棋専用AIではないので弱いです。実際、深い読みや詰み探索はまだ得意ではありません。 それでも、盤面を構造化して渡し、手番・持ち駒・直前の手・王手状態を伝えると、意外と将棋になります。 弱いけれど、普通に対局できます。 ここが面白いところでした。 「将棋エンジン」ではなく「LLMが指す」 実装方針で一番大事にしたのは、将棋エンジンに指させないことです。 アプリ側が強い評価関数で最善手を決めて、LLMに理由だけ話させるなら、それは通常の将棋AIに近くなります。 今回やりたかったのは違います。 この分担です。 アプリ側は、ルールを守るための審判です。 LLMは、実際に手を考える対局相手です。...