OSSの将棋ソフトは何故一つになれないのか?

やねうら王系の将棋ソフトで採用されているNNUE評価関数がコンピューターチェスの代表格であるStockfishにportingされ、Stockfishのほうで驚異的な強さを発揮し、Stockfishに正式にマージされるのではないかというまでの勢いを見せている。WikipediaにNNUEの項目まで誕生した。

https://en.wikipedia.org/wiki/Efficiently_updatable_neural_network

Stockfishのその開発態勢には学ぶべきものがあり、多くの人が一つのソフトの開発のためにコントリビュートしている。逆に将棋ソフトでは何故そのような開発態勢にならないのであろうか。

コンピュータ将棋とコンピュータチェスとの違いについて考えてみると、2014年ごろは、コンピュータ将棋はまだプロ棋士と実力が拮抗していた。Ponanzaは他のソフトより頭一つ抜けていたが、他のソフトはまだそうでもなかった。明確にコンピュータのほうが強いと世間で認知されるようになったのは、2017年の電王戦でPonanzaが名人を下したあたりではないだろうか。

将棋ソフトの開発者のなかには「自分(のソフト)こそが名人を倒すぞ!」と意気込む人もいた。こういう開発者は他のソフトの開発者とは手を組まずにソースコードやノウハウを非公開にしていることも珍しくはなかった。

チェスの世界では、1997年にカスパロフ氏(チェスの世界チャンピオン)にチェスのソフトであるディープ・ブルーが勝利している。それからすると、(将棋とチェスとでは)コミュニティの温度に20年の差があるように思う。

あと、将棋ソフトのほうでは、ドワンゴが2017年まで電王トーナメントという賞金つきの大会を開催していた。5位までに入賞すると賞金がもらえたので、このせいもあって、他のソフトにコントリビュートするよりは自分のソフトで出場したい(そして電王戦で自分の作ったソフトでプロ棋士に勝ちたい)と思う個人の開発者が多かったように思う。

賞金に関して言うなら、WCSC29(第29回 世界コンピュータ将棋選手権/2019年開催)では、ドワンゴがスポンサーとして優勝賞金の100万円を提供した。(ついでに言うと、その優勝賞金はやねうら王が獲得した) 今後もWCSCにはどこかの企業がスポンサーについて賞金を提供する可能性も十分あるので、それを考えると(優勝圏内にいる)上位陣が、どうせなら自分のソフトで出場したいというモチベーションが湧くのも無理からぬことである。

それからAperyの出現まで真にOSSと呼べる将棋ソフトがなかったこともある。BonanzaもGPS将棋のソースコードは確かに公開されてはいたが、いずれもGitHubで管理されていなかったし(いまだにそうである)、前時代的であった。BonanzaやGPS将棋が、プルリクのような、外部からのソースコードの修正を受け入れてくれるかも怪しかった。

別の理由としては、開発者が大学関係者である場合、論文を書くのがその主たる目的であって、そしてわりと研究に忙しく論文以外の情報発信をしたくない、するほどの時間がないということもあった。いまだ当時の開発者にはツイッターすら使用していない人が多い。これでは、SlackやDiscordで、開発のノウハウを共有しましょう!とか言っても、「そんなの見てる時間ねーよ」と言われるのも無理あるまい。

そもそも、当時の研究者の方々は連絡手段がメールしかない人も多く、メールを送っても2週間ぐらい返ってこないことがざらで、いまどきのコミュニケーションツール(Twitter、Slack、Discord、etc…)を活用している世代とは隔世の感がある。まあ、ほとんどの研究者にとってはツイッターで情報発信しても得することなどはあまりなく、ツイッターはもっぱら情報収集専用と割り切っている人も多い。

コンピュータ将棋のコミュニティが、コンピュータチェスのコミュニティのようになれない理由をざっと書き出してみた。

コンピュータ将棋のコミュニティも、いずれは世代交代して、いまどきの開発スタイルに付いてこれない人はお断り!みたいな感じになるのであろうか。そうなった時、私もそれに取り残されていないでいる自信はないが。

11 thoughts on “OSSの将棋ソフトは何故一つになれないのか?

  1. ひょっとして、コンピュータチェスコミュニティは「いまどきの開発スタイルに付いてこれない人はお断り!みたいな感じ」なのですか?

    • お断りではないのかもしれませんが、わからないヤシは、redditなりStack Overflowなりで勉強してこい、わかるやつだけここにjoinしてくれたらいい、みたいな文化はあるような。(ある程度ハードルを上げても人口自体が多ければ、人が次々とやってくるので…)

  2. 私がコンピュータ将棋にのめりこんだ時に、やねうら王さんはじめ皆さん情報をオープンにしていてライブラリも豊富で優しい世界だなと感じました(笑)
    囲碁、チェス界隈はどうなのか知らないですが。。。

    • 2015年ぐらいから、情報自体はわりとオープンなのですけど、いまだGitHubの一つのリポジトリに対して、皆でcontributeする感じではないですね。

  3. 将棋ソフトの大会の方今でも勝負的要素が強いからではないの?チェスは複数回対戦させて紛れを少なくしてるけど将棋はレーティングよりも一発勝負を楽しむ大会なような気がする。自分からしてみれば競い合ってるのに大会前に公開しちゃうなんて開発者は心が広い人が多いね。いいものができたとしても心の狭い自分だったら公表しないでこっそりほくそ笑んでるわ絶対。

    • 賞金の出る大会は一発勝負にして運の要素が絡むようにしておかないと、事前にレーティング計測して、自分のソフトが上位でないとわかったら参加しない人も出てきて参加人数が減るので、運の要素大事という大会運営ノウハウがございます。

  4. 将棋開発者で賞金目当ての人いるのだろうか?明らかに開発費の方がかかるような。やねさんもネタで賞金目当て的なキャラだけど全く採算取れないだろうな。チェスは将棋より先後の差が大きいのと引き分けゲーだからある程度数こなさないといけないのも関係してるのかな。

    • 賞金だけが原動力の銭ゲバみたいな人はいらっしゃらないと思いますが(それだけのスキルがあれば、プログラムの仕事でもっと稼げる)、WCSC優勝・決勝進出などは自分の実績としては意味があると思うので、それなら運の要素が多少あるほうが、出場する時の期待値が0近くにならなくていい意味はあるかと。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です