その他
    ホーム インタビュー 将棋エンジンから生成AIまで。探求心を形にする、アピリッツのWebエンジニアのAI活用。
    将棋エンジンから生成AIまで。探求心を形にする、アピリッツのWebエンジニアのAI活用。
     

    将棋エンジンから生成AIまで。探求心を形にする、アピリッツのWebエンジニアのAI活用。

    好奇心から始まるものづくり。将棋エンジン開発のきっかけ

    ──本日はよろしくお願いいたします!鈴木さんは、2024年にアピリッツへ入社されたんですよね。

    鈴木:そうですね。前職ではPHPのWebシステムを開発していたのですが、Ruby好きが高じて2024年にアピリッツへ入社しました。現在はRuby on Rails を使ったチケットサービスのプロジェクトで、設計からテストまでを担当しています。

    ──実は鈴木さんとは中途ランチ会でお話ししたことがあるのですが、個人で将棋エンジンの開発をされていたりプライベートで合唱のサークルに入られていたりと、とても多趣味の印象を持っています!今も続けられているんですか??

    鈴木:はい、続けています。将棋エンジンの開発は『手抜き』という名前でGitHubにも公開しています。世界コンピュータ将棋選手権にも毎年出場しています。実はこの将棋エンジンは、2024年に開催されたアピフェスでも出展して、アピリッツの皆さんにも実際に試遊していただきました。合唱団では、バスパートを担当しています。

    ──お仕事もされながらプライベートもアクティブに活動されていて素敵です!ちなみに、実際に将棋もされるんですか??

    鈴木:小学生の頃に将棋部に入っていましたが、小学校を卒業してからは全然やらなくなっちゃいましたね。笑 今回の将棋エンジンの開発は、将棋が好きな友人から「将棋のプログラムってどうなってるの?」と質問されて、「じゃあ作ってみるか!」という話になったことが始まりです。友人である彼はプログラムができないので、私がプログラムを書いて彼にテストプレイしてもらう形で、タッグを組みながら二人三脚で開発をしています。

    将棋エンジン見てみたいです!」という取材班のリクエストに快く応えてくださった鈴木 太朗さん。一体どんなシステムなんでしょうか!

    ──将棋エンジンがどんなシステムなのか、実際に見せていただきました!

    浅田:どういうロジックで、次の手を決めているんですか?

    鈴木:局面の評価関数といわれるものがあって、なるべくその値が高くなるような手を探索して打っています。 探索にはミニマックス法を改良したアルファベータ法というものを使っていて、だいたい7〜8手先まで読んでいます。 ちなみに『手抜き』は、強豪ソフトの『たぬき(tanuki-)』さんの評価関数をお借りしています。

    浅田:過去の棋譜を学習させて、「この手を打ったらスコアが高くなるよ」みたいな情報を計算して動かしているんですか?

    鈴木:色々な学習方法があるのですが、『手抜き』が評価関数をお借りしている『たぬき』は自己対局によって学習しています。 つまり、たぬき同士で対局して生成した棋譜を学習データにしています。 そのほかには、Floodgateというコンピューター将棋同士が対局しているサイトがありまして、そこの棋譜を学習させるという手法もあります。
    ちなみに、かつては人間が手動で評価関数を作っていました。たとえば持ち駒が多ければ点が高いとか、王の近くに金がいれば点が高いとかのパラメータを人間が調整していたんですよね。その後、2006年に物理化学者である保木邦仁さんがBonanzaで評価関数の機械学習を始めたことがきっかけで、コンピューター将棋の棋力が大幅に向上しました。2018年には、たぬきチームの那須悠さんがニューラルネットワークで評価値を算出する評価関数NNUEを作り、さらに棋力が向上した結果、現代の将棋ソフトは人間に到底太刀打ちできないほどの強さになっています。

    ──コンピュータ将棋もこの数年で急成長しているんですね。ちなみに、鈴木さんが毎年参加されている世界コンピューター将棋選手権はどのようなものなんですか?
    鈴木:私が参加している選手権はトーナメント式で、それぞれが開発したエンジン同士を戦わせるのですが、毎年40~50チームが参加していてかなり盛り上がっています。私は10年ほど前から友人と一緒に出場しているのですが、試合の時は私がPCとにらめっこしている隣で、友人は手元にある将棋の盤面でコンピューターが打った指し手を検討しています。

    「なるほど、そうやって学習させているんですね!」と、浅田さんも将棋エンジン『手抜き』に興味津々のご様子・・!

    使うだけじゃなくて、作る。AI活用が広がるアピリッツ。

    ──鈴木さんは個人開発でもAIを活用されていますが、日々の業務でAIはどのように活用されているんですか?

    鈴木:開発に関わる内容はGitHub Copilotを使っていて、主にコードレビューやテストコードを書くときに利用しています。AIを使うことで見落としに気づけるので、とても役に立っています。開発以外で気になることは、浅田さんが開発されている社内用生成AI『USAGI』(以降、USAGI)を使っていますね。解決したい内容によって利用するAIを使い分けています。

    ──私もUSAGIはよく利用しています。浅田さん、USAGIの開発はどのように行われたんでしょうか??

    浅田:USAGIについては、自分はコードを一文字も書いてないです。笑 「こういうことを作りたいから、こういうライブラリと、こういうライブラリの構成で作って。このリポジトリの構成はこういう風に作って」というプロンプトを、CopilotやClaude Code等を使って段階的に作っていきました。最終的には自分の目で見てよさそうと思ったらそのまま進めますし、自分の意図と違うと思ったら「ここはこういう風に書いてください」とプロンプトを出して、それをずっと繰り返していった感じですね。

    ──社内用の生成AIもAIで作られていたんですね・・そういえば最近USAGIにアップデートが入ったんだとか。

    浅田:そうですね。自分のこだわりポイントとして、ユーザーが使っていない時はなるべくコストを下げようという発想があり、アクセスがあった時にだけ課金が発生するようなシステムにアップデートしました。今回はUSAGIでそれを実践しましたが、実際の案件でもAIを使う際のランニングコストをなるべく抑えたいというお客様からのご要望もあると思うので、そういう時に活用できるなと思っています。

    ──お二人ともありがとうございました!アピリッツでは、社内外を通してAIの推進に力を入れています。最新技術に興味がある方、AIを活用したWeb開発に興味がある方、気になったらとことん向き合う探求心の強い方、アピリッツの高度な専門技術・知識を持ったメンバーたちと一緒に働きませんか?ご応募お待ちしております。

    ▼生成AIを活用をした業務効率化事例6選!
    https://appirits.com/service/ai_case/

    ▼社外向けの勉強会も開催中!参加は無料です。ぜひご参加ください!
    https://wbccollege.peatix.com/events