見出し画像

KENTO開発室 #2 『KENTOってどれくらい強いの?』

KENTOは『最新鋭の将棋AIを、だれでも、どこでも』をコンセプトに開発されたブラウザアプリです。

今回はKENTOが内部で利用している将棋AIの紹介と、KENTO独自の高速な評価値計算の仕組みについて説明します。


思考エンジンと評価関数

KENTOでは将棋AIの思考エンジンにやねうら王V4.88、評価関数にillqha4を利用させて頂いています。コンピュータ将棋に明るい方は、この説明だけで棋力について納得できるかもしれません。

やねうら王はやねうらお氏により開発されている将棋ソフトで、2019年の世界コンピュータ将棋選手権 (WCSC29) で優勝した強豪です。やねうら王の思考エンジンは他の多くのソフトでも利用されています。illqha4はめきっと氏により開発された評価関数で、やねうら王と評価関数illqha4の組み合わせは、現在公開されているなかでは最も棋力が高いと言われているものの一つです。

また、KENTOでは将棋AIをクラウド上 (AWS Lambda) で実行しています。そのため棋力は実行環境に依らず一定で、PCでも、iPhone・タブレットでも、全く同じ強さを発揮します。NPS (一秒間に何局面読めるか) は100万前後のようです。


並列計算

KENTOの最も大きな特長に、AWS Lambda を利用した評価値の並列計算があります。KENTOでは1局全体の評価値を計算する際に、初手から終局図まで全ての局面の評価値を並列で同時に計算しています。局面の数だけクラウド上に瞬時にパソコンが立ち上がり、それぞれが一斉に評価値計算を始めるイメージです。(実際には全体を6手毎に区切って、各マシンが6手ずつ評価します。細分化しすぎると、マシンの起動にかかる無駄な時間の割合が増えてしまうためです。)


1台の家庭用PC上で逐次計算する場合と比較してみましょう。1局120手として、1手2秒かけるとします。この場合、1局全体を評価するのに2秒×120手=4分程度の時間がかかります。

画像1


先ほどKENTOでは6手毎に並列計算していると言いました。120手を6手毎に20のグループに分割し、並列で評価値を計算します。結果として全体の実行時間は2秒×6手=12秒で済みます。

画像2

PCの場合4分かかった計算が、KENTOではたった12秒で終わりました!並列計算の威力がお分かりいただけたかと思います。

ただし、この単純な比較はややアンフェアです。逐次計算の場合、前の局面での探索情報がメモリに記録されており、新しい局面の計算が効率化されるため、並列計算よりも多少精度が高くなります。KENTOでも6手の中での時間配分を調整したり、分割数を変更したりと、工夫の余地が多く残っています。


今回はKENTOが利用している将棋ソフトの紹介と、KENTOの大きな特長である並列評価について説明しました。次回は、現在開発を進めている有料プレミアムプランのサービス内容を紹介します。

この記事が気に入ったらサポートをしてみませんか?