1. トップ
  2. 新着ニュース
  3. IT
  4. ネットトレンド

最強CPU将棋ソフト『水匠』VS最強GPU将棋ソフト『dlshogi』長時間マッチ観戦記 第一譜『水匠』杉村達也の挑戦

ニコニコニュース / 2021年10月19日 11時0分

 最強CPU将棋ソフト『水匠』と最強GPU将棋ソフト『dlshogi』が対決するイベント“電竜戦長時間マッチ「水匠 vs dlshogi」”が、2021年8月15日に実施された。

 ともにトップクラスの強さを誇る最高峰の将棋AIが激突したこの対局を、開発者は、プロ棋士は、どう見ていたのか。

 ライトノベル「りゅうおうのおしごと!」作者である白鳥士郎氏による観戦記を全4編に渡ってお届け。電竜戦長時間マッチの舞台裏を紐解いていく。

※インタビューは2021年8月20日に行われ、棋士の肩書き・段位等は当時のものになります。

第一譜『水匠』杉村達也の挑戦
第二譜『dlshogi』山岡忠夫の信念
第三譜『GCT』加納邦彦の自信
第四譜『プロ棋士』阿部健治郎の未来予測

取材・文/白鳥士郎

「……まさか?」

『水匠』開発者・杉村達也は、自身の開発した将棋ソフトの読み筋にその文字を見つけた瞬間、血の気が引いていくのを感じた。

『それ』が存在することを、杉村は事前に知ってはいた。
 同時に、極めて再現性が低いということも知っていた。ある棋士はその出現率を「2年で3~4回」と語っていたのだから……。
『それ』について、『やねうら王』の開発者である磯崎元洋(やねうらおのペンネームで知られる)もやはり「再現性がない」という理由で、大して取り合ってくれなかった。
 つまり、いつ出るかわからないし、出る確率も極めて低いということである。
 しかしそれが今、水匠の読み筋の中にはっきりと出現していた。

「え!? こ、ここで出るのか……」

 しかも『それ』が出たのは、水匠だけではなかった。
 検討のために別のパソコンを使って走らせていた、別のソフトでも……その『バグ』が出現していたのだ!

 このとき杉村には2つの選択肢があった。
 1つは、このまま対局を続けるという選択。
 もう1つは、開発者権限で投了し、すぐさま次の対局を開始するという選択。
 最初の『続ける』という選択肢を、杉村は即座に排除する。

「残念ながら将棋は終わっていました。それをこのまま続けるわけにはいかなかった。なぜなら――」

 なぜなら……もうすぐ『名人』が解説者として登場することになっているから……。
 こんな局面を……バグの出現によって無惨に歪んでしまった将棋を、大勢の視聴者の見る中で名人に解説させるなどということが許されるのだろうか?
 弁護士として、杉村はいかなる事件にも冷静に対処してきた。
 だが、この『事件』に関しては、冷静でいられない理由があった。

「……開発者権限で投了するのは、葛藤がありました。その理由は――」

 杉村がこのとき直面した葛藤を理解するためには、この長時間マッチを彼がなぜ開催したのかについて語らねばならない。
 電竜戦の成り立ちと、将棋ソフト開発者たちが置かれた状況について語らねばならない。
 時計の針を戻そう。
 全ての始まりは、2020年5月に行われた、世界コンピュータ将棋オンライン大会でのことだった――

『水匠』VS『dlshogi』長時間マッチ前夜

『電竜戦』――それは、将棋ソフト開発者たちが独自に立ち上げた、最強のソフトを決めるための大会である。
 特徴としては、オンラインで行われること。
 そして『TSEC』……指定局面戦と呼ばれる、普通の将棋の開始局面とは違う局面から対局をスタートさせる大会も存在することだ。TSECについては後述する。

 もともとは『カツ丼将棋』の開発者である松本浩志が、CSA(コンピュータ将棋協会)の主催する世界コンピュータ将棋選手権を見ていて「これなら自分1人でもやれる」と思い立ったことから、電竜戦はスタートした。

「私は将棋ソフトを作るよりも、システム周りを開発するほうが得意だったんです。最初に作った将棋ソフトもExcelで作ったくらいで。電竜戦のシステムも対局を管理する部分はExcelで作ってます。サーバ周りのシステムのExcelでない部分もほぼ私が作りました」

「去年はコロナもあって選手権がオンラインになったんですが、けっこう手軽にできたんです。これはいいと思って。『これなら俺1人でも管理できる』と」

 松本は2013年に行われた第1回将棋電王トーナメントにもエントリーした古参の将棋ソフト開発者で、普段は証券マンとして働く、パワフルな人物だ。
 3児の父でもあり、趣味に投じることができる時間は少ないが、オンライン大会であれば自宅から参加できるため負担も少ない。

「ドワンゴが主催していた将棋電王トーナメントが終わってしまい、大会が年1回、5月に行われる選手権だけになってしまった。でも将棋ソフトの発展のためには、大会は年2回あったほうがいい」

「CSAの瀧澤会長に例会で『秋にもオンラインで大会をやりましょう』と提案したんですが『やりたいけどリソースがない』と言われてしまって……それで勢いで『俺がやる!』と言ってしまったんです(笑)」

 松本はソフト同士の自動対局システム『電竜戦システム』を独力で作り上げ、それまで数人で分担していた作業を、実際にたった1人で行えるようにした。
 また松本は「大会をやるなら賞金を出すべき」という持論を持っていた。選手権は賞金は出ず、代わりに文部科学大臣賞が優勝ソフトに与えられる。いわば『名誉』のみの大会だ。

「ノーベル賞がどうして高額な賞金を出すかといえば、さらなる研究を続けるための資金に困らないようにするためでしょう。将棋ソフト開発の発展のためには、開発資金の原資となる賞金は必要ですよ」

 そのための財務基盤を整えるため、松本は電竜戦をNPO法人化し、寄付によって運営する体制を目指す。
 その申請の手伝いをしたのが、弁護士でもある杉村だった。正式名称は『特定非営利活動法人AI電竜戦プロジェクト』。理事長は松本。杉村は監事だ。

 かくして2020年11月に開催された第1回電竜戦は、賞金総額が100万円を超える規模となる。
 そして55ものソフトが参加し、加納邦彦の開発した『GCT』が頂点に立った。加納は今回の長時間マッチにおけるdlshogiチームの一員である。

 電竜戦は、開発者たちに好意的に受け容れられた。
 しかし世間の反応は冷淡だった。
 史上初めてディープラーニング系の将棋ソフトが優勝したという革命的な結果にもかかわらず、その開発者である加納には1件の取材すら来なかった。プロ棋士を筆頭とする将棋プレーヤーたちも、電竜戦やGCTのことを話題にする人間は皆無に等しかった。
 ……しかし実は、ある人物がディープラーニング系の将棋ソフトに興味を抱き、研究に取り入れるのだが……これについては加納が主役となる第三譜に譲ろう。

 一般社会からの反響は薄かったものの、松本は意気盛んだった。電竜戦をさらに盛り上げるため、さらなる一手を放つ。

「寄付をいただくわけですから、しっかりとした団体として運営しないといけません。棋譜も見やすいように公開したり。あと、寄付してくれる人へのリターンも必要です」

 松本が『リターン』として考えたのが、寄付者の望む指定局面からソフト同士が将棋を指すということだった。
 たとえば、将棋ソフトが本来ならあまり指さない相振り飛車。
 最初から飛車を振った状態から対局を開始させれば、将棋ソフトに飛車を振らせたのと同じことになる。
 また、プロ棋士の対局で課題とされている局面。
 複数のソフト同士で指し継がせることで、その局面が最新のソフトたちにどう評価されるのかを知ることができる。
 それらの指定局面を使った大会がTSECである。
 キャッチコピーは『人間が将棋の研究を行うのに最も適したソフトを選ぶ大会』だ。

 そして今年7月に行われた第2回電竜戦TSEC大会で優勝したのが杉村の水匠だった。
 上位ソフトだけで競うファイナル決定リーグで圧倒的な成績を残し、上位2ソフトの優勝決定戦であるファイナルでも『名人コブラ』に対して3部門(相振りB級その他・相居飛車・対抗形)全てで勝ち越すという完全勝利を果たした。
 水匠は2020年の選手権オンライン大会で優勝した、やねうら王が元となっているソフトだ。
 これはいわゆる『NNUE系』と呼ばれる、CPUで動く従来型のソフトであり、一般のパソコンでも高いパフォーマンスを発揮できる。
 その強さと使いやすさから、多くのプロ棋士が研究に取り入れていることでも知られている。
 これまで水匠は、相居飛車に特化して強化されていたため、振り飛車が苦手であるという弱点があった
 このTSECで優勝したことで、その弱点も克服したと証明されたのである

 しかし杉村には、気になる存在があった。
 ディープラーニングを使ったソフト――山岡忠夫の開発した『dlshogi』である。
 dlshogiは第1回電竜戦で優勝したGCTの元になっているソフトだ。
 当時の心境を杉村はこう語る。

「B級リーグではdlshogiが圧倒的な強さで優勝していました。だから思ったんです。長時間の対局で戦ってみたいと」

 B級リーグは、ファイナル決定リーグに進めなかった48チームで争われた。
 ファイナル決定リーグに進めなかったソフトも、NNUE系の強豪ソフト揃いだ。ディープラーニング系のdlshogiがそれらを下して優勝したということは、既にどのような局面においても、dlshogiがNNUE系のソフトと互角以上に戦うことができる証明でもあった

 ではなぜ、杉村は長時間で戦いたいと思ったのか?
 TSECは持ち時間3分(一手ごと2秒加算)だった。将棋ソフトの大会はこのくらいの持ち時間が一般的なのだが……。

「通常、将棋ソフトは2倍の時間を使って読ませると、レーティング(強さ)が100~150ほど上がる【※】といわれています」

「持ち時間をとっても長くしてみたら、レーティングが500~1000も上がった状態になる。そのとき、どんな棋譜が生まれるのか、見てみたかったんです」

※チェス界における棋力判定方法を将棋界に導入したもの。レーティング差200は、段位で言うと一段の差。

 それでは、どうして『90分(1手ごとに15秒加算)』という持ち時間となったのか?

「dlshogiは探索した全ての局面を保存しておかなければならないんです。だから、あまりに長時間動かし続けると、メモリが足りなくなってしまう恐れがあるとのことでした」

 ちなみに、将棋ソフトの大会では、一手ごとに持ち時間が加算される方式、いわゆるフィッシャールールが一般的である。この理由についても杉村は次のように語った。

「それは通信遅延による時間切れを防ぐためです。時間をかければかけるほど強くなるので、みんなギリギリまで考えさせるようになるんですが、1手毎の秒読みとすると時間切れになりかねない。でも一手ごとに加算というルールにすれば『残り何秒になったら指す』と設定することによって、時間切れを回避しつつ、加算される秒数のほとんど全てを思考時間に充てられますから」

 幾度かのやり取りの後に、dlshogiチームの山岡と加納からは条件面も含めて対局の同意を得ることができた。
 そしてやり取りを進めるうちに……杉村の中で、ある考えが浮かんでくる。
 この長時間マッチを大々的なイベントとして行うことで、電竜戦をもっと盛り上げることができるのではないか、と。

「最初は、興行的にするつもりはなかったんです。けれどCPUで動く最強のソフトとGPUで動く最強のソフトの対局というのは、興味を持つ人も多いんじゃないかと思うようになって……」

 とはいえ実現へのハードルは高かった。
 これまでの電竜戦は全て松本がほぼ1人で全ての業務をこなしていた。配信も、対局管理も、会計処理も。
 上は7歳から下は1歳半まで3人の子供を抱える松本は、自宅で電竜戦の配信を行うと妻の機嫌は当然悪くなる。翌日は3人の子供を公園へ連れて行かねばならない……。

「カツ丼さん(松本)にこれ以上の負担はかけられませんし、言い出したのは私ですから。今回は、私がイベントの準備や運営を行うつもりでした」

 手始めに杉村は交流のあったプロ棋士・佐々木勇気七段に解説役を打診する。
 その後、佐々木七段とのダブル解説を依頼するため、第2回電竜戦TSECで解説を務めた阿部健治郎七段にも声を掛けた。
 さらに、杉村が個人的に将棋ソフトの設定とパソコンの購入を手伝った渡辺明名人からも「そういうイベントがあるなら、解説しましょうか?」と言ってもらうことができた。

 最高峰の将棋ソフト同士の対局を、現役の名人にして将棋史上最強クラスの棋士である渡辺明が解説するという、願ってもない幸運
 杉村の中で、イベント成功への道筋が見えた瞬間だった。

「普段の将棋ソフト同士の対局は、持ち時間が5分とかなので、人間が解説するのに向かないんです。けれど長時間マッチは、人間同士の対局のようにゆっくり進むので、プロ棋士の先生に解説していただければ、視聴者にも楽しんでもらえると思いました」

 最高の解説者を招くことができた。
 ならば配信も、今までのような内輪のみのもので終わらせるのはもったいない。
 普段の電竜戦は、松本が自宅で、対局を管理する片手間に配信を行っていた。
 自作の将棋演歌『千駄ヶ谷エレジー』をBGMに行うその配信を視聴するのは、多くても100人前後。
 かつてドワンゴが行った電王戦の頃は数百万人が視聴していた将棋ソフトへの、これが現在の世間の注目度だった。
 しかし今回の座組であれば……この状況を打破できるはずだ。
 杉村は目標を立てた。

「同時視聴者1500人。対局終了後に、チャンネル登録者数1000人」

 YouTubeでは、チャンネル登録者数1000人等の条件をクリアすれば、スーパーチャットと呼ばれる寄付を受けることができる。
 杉村は弁護士としての業務経験から、このスーパーチャットで得られる金銭が意外と大きなものになると知っていた。
 これを電竜戦の賞金に充てることができれば、大会の魅力を高め、新たな開発者が参入してくれるきっかけになる……。

「とはいえ簡単に目標を達成できるとは思っていませんでした。将棋ソフトが公の場で名人を破った『Ponanza』と佐藤天彦名人の対局時ですら、以前の電王戦と比べると視聴者数は下り坂になっていましたから……」

 藤井聡太の登場による将棋ブームのさなかにおいても、たまに将棋ソフトの読み筋と藤井の読み筋が重なることで話題になることがあっても、将棋ソフト開発自体への世間の興味が復活することはなかった。
 しかし、だからこそ杉村は挑戦する価値があると思った。
 もともと杉村は『難しいことに挑戦するほど燃える』という性質があった。
 弁護士になったのも、司法試験が日本で最も難しい試験だからだ。
 そして杉村のもう一つの性質。それは――

「やるからには、自分が出せる力を全て出し尽くした時に、どんな結果が出るか見たい」

「『ちゃんとやったらどれくらいになるのか?』というのは、モチベーションになります。結果が出るものが好きなんですね」

 イベント本番までの短い期間、杉村は八面六臂の活躍を見せる。
 電竜戦公式チャンネルの開設。
 将棋系VTuber(バーチャルYouTuber)とコラボしたプロモーション動画の依頼。
 中継のための配信画面のフォーマットを作り、告知用ツイートの画像を作り、観戦記の執筆を依頼し、ニコニコ動画でも生放送できるよう担当者と折衝を行う。
 それらの多くに関して、杉村は独断専行するのではなく、SlackやDiscordといった通信ツールを使って他の開発者たちにアドバイスを求めながら進めていった。
 開発者たちは杉村の案を叩き台として、それぞれの得意分野を活かして、アドバイスを行った。
 将棋ソフト開発者たちはプログラマーが多いが、その職域は様々だ。
 知識があるぶんだけアドバイスの水準も高く、杉村は初めて行う作業に四苦八苦しつつ、課題を一つずつクリアしていった。
 対戦相手であるはずのdlshogiチームの加納は「杉村さんがあまりにもみんなからボコボコにされていたので私も少し協力したら、やっぱりボコボコにされました(笑)」と、楽しそうに当時のことを語っている。
 杉村も、当時のことを笑いながらこう回想した。

「文化祭をやってるみたいな感じでしたね。私は小さな法律事務所の弁護士なので、普段は一人で仕事をすることが多いです。けど開発者のみんなと長時間マッチのための準備をしている期間は、企業に勤めてグループで仕事をしているような感じがしました」


誰しもが予想しない形で決着となった長時間マッチ第1局

 そしていよいよ、イベント当日――8月15日を迎える。
 解説として登場する予定のプロ棋士たちも告知に協力してくれたため、事前の手応えはそれなりにあった。
 配信基地は、杉村の事務所である本八幡朝陽法律事務所のミーティングルーム。
 15時に佐々木が事務所へ到着し、配信の打ち合わせを始める。
 強気な佐々木は対局時の同時視聴者を「3000人は行くでしょう」と見ていた。

 16時からは、Zoomを使って開発者たちとのミーティングを行う。
 検討に使われるソフトは『Kristallweizen』。白ビールの愛称で知られ、水匠と同じく探索部にやねうら王が使われているソフトだ。

 16時30分。配信開始。
 まずはVTuberの真澤千星が司会をつとめる、水匠とdlshogiを紹介する番組が放送された。
 この時点で既にYouTubeの視聴者は1400人を超えていた。ニコニコ生放送でも同時配信していたため、実際の視聴者数はさらに多かったと思われる。

 解説者である佐々木と阿部が登場する頃には視聴者数が2000人を突破した。
 阿部は「定跡を使わずに戦うとのことなので、見たことのない将棋を見てみたい。終盤でどの程度、競るのか」と、世紀の一戦を前に興奮している様子だった。
 佐々木も「素晴らしいスペックなので、楽しみ」と、少年のようにワクワクしている。

 なお、マシンスペックについてである。
 dlshogi側は最新のGPUであるA100を8台。メモリは2TB。GPUの値段だけで1000万円を超える規模だ。
 一方、水匠のCPUは『Threadripper3990X』である。
 杉村が世界コンピュータ将棋オンライン大会で使用し、優勝したことで、その優秀さが知れ渡った、64コア128スレッドの世界最高峰CPUだ。『高級スリッパ』の異名を持ち、藤井聡太が購入したことで将棋ファンの耳にも馴染みがあるかもしれない。
 ただ、世界最高峰のCPUではあるものの、価格は50万円ほど。dlshogi側とは金額にして20倍もの開きがある。
 この差について、杉村はこう語っている。

「値段には差がありましたが、こっちも1000万かけたらもっと強いマシンが用意できるかというと、そんなことはないんです」

「Googleがクラウドで224コアのものを貸してくれるんですが、それよりもThreadripperを使ったほうが強いはずなので。個人で使えるという意味では、これがおそらく最善でした」

 そして17時。
 電竜戦理事長である松本の宣言によって対局が開始された瞬間の同時視聴者数は――3186人。
 どんどん増加していく視聴者数は、杉村の企画したこのイベントが予想を遙かに超えて成功したことを示していた。

 しかし増え続ける視聴者を焦らすかのように、先手のdlshogiは、なかなか初手を指さない。
 阿部が「定跡を切っているから長考するんですか?」と尋ねると、杉村はこう言ってそれを肯定した。

「お茶を飲んでいると思ってください」

 3分後。dlshogiはようやく初手を指す。
 角道を開ける7六歩だった。
 佐々木は「dlshogiは相掛かりを指すかと思ったけど……」と首を捻る。確かに、短時間の将棋ではdlshogiは初手に飛車先の歩を突く2六歩を指すことが多い。なぜ今回は違ったかについては、第二譜で開発者の山岡に語ってもらおう。

 水匠も長考で返す。
 阿部は「いつ終わるかすらわからない」と長期戦の覚悟だ。「手数は300を超えると思う」と、対局開始前に語っていた。
 その予想は意外な形で覆されることになる。

 スローペースな序盤を見ながら、解説役の佐々木と阿部は、親しげに言葉を交わす。
「アベケンは最近、人間界の棋譜を見ないの?」
「見てるけど、全ての棋譜は見切れない。ユウキは?」
「人間界中心で見てる。ソフトの対局は1日に50局とか入ってくるから追いつかない」
「人間界はどこまで見てる?」
「終盤はあんまり見ない。30手目くらいまで」
「それが効率のいい勉強なんだね」
 二人ともデビューから10年以上が経過し、若手から徐々に中堅へと移行しつつある。今後のプロ棋界の中心を担う世代の赤裸々なトークは実に興味深い。視聴者数も4000人を超えた。

 順調に増えていく視聴者数。
 そして後手の水匠の評価値も順調に増えていった。
 28手目の時点で水匠は自身に350点ほどつけており、これはコンピュータ将棋の序盤ではかなり高い評価【※】といっていい。
 序盤の立ち上がりを杉村はどう見ていたのか?

※評価値が350点離れた局面から水匠同士が対局した場合、計算上は8割以上の確率で350点リードした側が勝つと考えられるほどの差。

「水匠の勝ちパターンは、序盤でdlshogiに差をつけられないでついていくことです。具体的にはdlshogiが200点以下の評価値をつけたまま中終盤に入りたい。そうすれば逆転できる可能性が高いです」

「電竜戦システムでは、dlshogi側の評価値も見ることができます。序盤の評価値は、まあまあかな……くらいに思っていました」

「しかも矢倉の場合、持久戦模様だとdlshogiはムチャクチャ強いんです。しかし急戦だと……相掛かりや横歩取りに近い形だと、最後に読み抜けが起こる。だから戦型としては満足していました」

「最近は、dlshogi対水匠の将棋も教師として学習させています。すると水匠は、後手では急戦しか指さなくなった。持久戦が厳しいというのを学習し終わったのでしょう。学習段階でdlshogiの矢倉にボコボコにされているんでしょうね(笑)」

 戦型は、不満のない形になった。
 序盤の評価値的にも水匠は『自分が有利』と言っている。
 だが……盤上は不穏な空気が漂い始めていた。

 36手目。後手の水匠が9四歩と指すと、阿部は「先手がよく見えてきた。怖いところがない」と言う。
 佐々木も「私も。水匠がどうするか?」と同意する。

 対局開始から1時間が経過した18時。同時接続者4266人。
 41手目まで進んだ局面では、まだ形勢ははっきりしなかった
 水匠の指し手にも違和感があるが、dlshogiも飛車をかなり狭い場所に移動させており、プロ棋士的にはどちらもぎこちない指し方に映るようだ。
 しかし杉村は途中で画面に登場して「さすがに嘘じゃないですかね?」と、水匠の評価値に疑問を呈している。

「途中で水匠が300点くらい『自分がいい』と言い始めたんです。けど、局面としてはそこまでよさそうではない。dlshogi側がそんなに読めていないのに水匠だけがそこまではっきり『自分がいい』と言うのは、ちょっとおかしいぞと……」

「本当だったらいいなぁと思いながら見ていたんですが、その評価が変わらない。それで、これはおかしいぞと思って、読み筋を見たら――」

 そして冒頭のシーンに繋がるのだ。

 42手目。水匠は飛車先の歩を突き捨てて、4枚目の歩をdlshogiに献上する。
 もはや誰の目から見ても水匠の指し方がおかしいのは明白だった
 佐々木が「水匠は歩をたくさん渡してるけど大丈夫ですかね?」と不安そうに言えば、阿部も「駒落ちの上手の指し方になってる」と、水匠の指し手の不自然さを指摘する。

 44手目。
 水匠が5四歩と中央の歩を突いたとき、杉村は再度配信画面に登場して「すみません! ちょっと致命的なものでして……」と、事態の説明を開始した。
 やねうら王に存在する『バグ』の説明を。

(画像は電竜戦長時間マッチ「水匠 vs dlshogi」第1局 ゲスト:渡辺明名人 解説:阿部健治郎七段・佐々木勇気七段より)

「読み筋を見たら『8三飛成』というのが表示されていまして(苦笑)」

 成れるはずのない後手の飛車が、成っている。自分の陣地の中で……。
 このタイミングで発生したことに阿部は「え!? それは致命的ですね……」と驚愕し、佐々木は苦笑するしかなかった。
 読み筋の中だけとはいえ、この読みを前提にして水匠が思考している以上、いずれどこかで評価値がガクンと落ちるのは明白だ。将棋は既に終わっている。

「あの……知ってたんです。飛車成があるらしい、ということは」

 杉村は事前にこのバグを知っていた。
 知っていたどころか、解説役の阿部からバグの含まれた画像のスクリーンショットを送られて相談を受けたことすらあった。

「その時、やねさん(磯崎)にも相談したんです。けど『どうせハッシュが少ないんでしょ』とか『探索部を新しいバージョンに変えてみたら?』といったアドバイスで……私も自分の環境では阿部先生からいただいた局面で飛車成のバグを再現できなかったので、まあそんなもんかな、と考えていたのですが……それで今回『私もなるんかい!』と(笑)」

「ハッシュの衝突が起こっているだろうことは何となくわかりました。でも原因がどこかはわからないし、ましてや修正するのは……そもそも動いてる途中でバグが出ちゃったんで、どうしようもないですよね。対局を止めるわけにはいかないし……」

 存在は知っていたものの、遭遇するのは初めてのバグ
 しかも今回、水匠だけではなく、別のパソコンで動かしている検討用ソフトも同様のバグが発生していた。読み筋の中に表示される8一飛成という文字……。

(画像は電竜戦長時間マッチ「水匠 vs dlshogi」第1局 ゲスト:渡辺明名人 解説:阿部健治郎七段・佐々木勇気七段より)

 これだけ見れば再現性は高い。
 杉村は混乱していた。「いやぁ緊張感がヤバい」「どういうことなの……」「メッチャ面白いですね! いや、失礼」「白ビールが味方になってくれた? そんなことある?」と、まるで未知の手に遭遇した棋士のように画面の中で矢継ぎ早にボヤく。
 配信のコメント欄も盛り上がっていた。
 バグの存在を知っているというコメントもあり、検討用にソフトを使用している将棋ファンの中にはこのバグに遭遇した人がそれなりの割合でいることを示唆していた。

 杉村がバグの説明を終えた頃には、時刻は18時20分になっていた。
 予告された渡辺名人の登場まで、あと10分。
 決断を迫られた杉村は、イベントの運営に協力してくれていた開発者たちと協議する。

「このまま続けるか、それとも第1局を早く終わらせたうえで持ち時間を短くしてすぐに第2局を始めれば、それが終わるまで解説していただけるのではないかとか……」

「残念ながら飛車成のバグを引いた時点で将棋は終わっていたので」

「あまり(配信画面に表示される視聴者の)コメントを見られる状況ではなかったので、どれだけの人が『投了しろ』と言っていたかはわかりませんでした。ただ、続けて欲しいという人はそんなにいないと思っていて……」

 開発者権限での投了。
 それしか道はないと理解しつつも、杉村はなお、それをしたくないという思いがあった。

「『AWAKE』の2八角がありましたから……」

 AWAKEは、2014年に行われた第2回将棋電王トーナメントで優勝したソフトだ。
 そして翌年、電王戦FINALにて将棋ソフト側の大将としてプロ棋士の阿久津主税八段と対局した……のだが、実はAWAKEには弱点が存在した。
『2八角戦法』と呼ばれる当時流行したアンチコンピュータ戦略の一つで、後手を持った将棋ソフトの角がボロッと取られてしまうハメ手である。
 AWAKE開発者の巨瀬亮一は、そのハメ手を指されると、開発者権限で投了した。わずか21手での投了は、大きな反響と様々な議論を巻き起こした……。

「あの時にニコ生で流れたコメントは、見ていてけっこう辛いものがありました。それから久しぶりにバグを引いたコンピュータ将棋になったわけですけど……」

 この時のことは後に映画の題材にもなったが、投了に賛否両論あったのは確かだ。
 今回、外野からは「早く投了して次の勝負を始めろ」という声もあったが、AWAKEのこと、5000人に迫る視聴者のこと、そしてこの対局のために杉村が費やしてきた努力を思えば、投了という選択は簡単にできるものではない……。

 18時32分。
 予告された時刻より2分遅れで渡辺名人が登場すると、視聴者数はさらに伸びて、遂に5000人を突破した。
 とはいえ、将棋は既に解説をするような段階ではない。
 放送再開時、63手目の評価値は先手のdlshogiが2410点と勝勢を断言しており、水匠も反省して先手良しと言い始めていた
 現局面を解説しようがない佐々木と渡辺は、まだバグの影響が及んでいない序盤を振り返っていく。
 佐々木は「この将棋、間違いなく指されると思うんですけど。1週間後くらいにプロでも……」と話を振る。
 しかし渡辺の答えは「俺は出ないほうに賭ける」だった。

「だってこれは矢倉じゃないから。これをやるなら最初から相掛かりをやる。人間で矢倉を指す人は、厚みを活かした地上戦を得意としているベテランが多い。乱戦が得意な、若手同士の将棋で出るかどうかだね」

 極論として、人間が戦法を選ぶわけだからさ……鋭くそう分析する渡辺の言葉に、電竜戦システムを管理しながら配信を見ていた松本は深く感じ入っていた。

「中国のことわざに、『速い馬がいても、その実力を認めてくれる人がいなければ実力を発揮できない』というものがありますが……やはりプロの先生の解説があってこそ、将棋ソフトの凄さや面白さというのが見る人に伝わるんだなと思いましたね」

 渡辺に出演を依頼した杉村は、パソコン選びやソフトの設定を手伝った時のこともあり、また別の感想を抱いていた。

「……渡辺先生のセッティングって、本当に初期セッティングのままで、パソコンの性能を活かせていなかったんです」

「その渡辺先生が、新しいパソコンも購入して、dlshogiとNNUEの評価の両方を見られるようにした。今までも本格的だったかもしれませんけど、相当本腰を入れて……という感じかもしれませんね」

「それで今後、今までの将棋と何か差が出てきたら……いいなぁ、と思います」

 たとえ千里を走る名馬がいたとしても、それを見抜くことができる者がいなければ、並の馬と同じようにくだらない労役にこき使われて千里を走る前に死んでしまう。
 いかに高性能なソフトを高価なパソコンで動かしたところで、平凡な使い方をするのであれば……何も変わらないだろう。
 渡辺はこれまで自身が名馬として将棋界のトップを走り続けてきたが、これからは将棋ソフトをいかに使うかも問われることになる。

 75手目。
 dlshogiが9四成香を指した時点で、杉村は開発者権限で投了を選択した。
 責任者である松本も、視聴者に向けてメッセージを発する。

「このままでは不完全燃焼でしょうから、dlshogiが先手番の第3局を実施したいと思います。第2局以降の持ち時間を短くする設定もすぐに行います」

 18時53分。
 歴史に残る長時間マッチの第1局は、dlshogiの勝利となった。
 誰も予想していなかった形で。

 

 ……イベント後に行ったインタビューで、さすがに疲れた表情を見せながらも、杉村は大きな達成感を抱いていた。

「今回の目標は達成しましたし、私としては今回みたいに『精一杯やってみたらどうなるのか?』という実験でもありました。それでとってもご注目いただいたので、満足しています」

 イベント後、1ヶ月でチャンネル登録者数は2200人まで伸びた。目標の倍以上だ。
 財務基盤も整い、それを大会の賞金に回せば、開発者たちにとって電竜戦はさらに魅力のある大会になるだろう。

「コンピュータ将棋の開発って、とってもお金がかかるんです。賞金が出るのであれば『その金額分くらいは強くしよう』と思えるでしょうから」

 それに加えて今回のイベントが世の中に大きなインパクトを与えたのは、ディープラーニング系の将棋ソフトの強さだ。
 もともと序盤の力には定評があったが、長時間でその力がさらに際立っているように見えた。

「最近、ネット上でもdlshogiについて話題にする人がすごく増えた印象です。今回のことでもっと増えると思います。だからディープラーニング系を普及するチャンスではあると思うんですけど……」

「山岡さんには、とっても負担だと思うんです。『dlshogi、動かない』みたいな反応も多いので。そういうところをどうやって普及していくのか……しかも無償じゃないですか。普及も大事ですけど、生活だって大事です。難しい部分だと思います」

「私は、dlshogiが無料で公開されたら、まず『ありがとうございます!』とお礼を言って、『dlshogiこんな感じです! 勝率はこんな感じです!』みたいなのを出して、フィードバックする。それが役目だと思っています」

 では今後の将棋ソフト開発のために、賞金の他に何が必要なのか?
 私の問いに、杉村はこう答えた。

「フィードバックが欲しいんです。『将棋AIは~』とかだけじゃなく、『水匠は』とか『dlshogiは』と、ちゃんと言ってほしい」

「開発者の中には『名前すら言わないのは何なの?』と思っている人もいます」

「使ってみた感想を言ってほしいんです。『水匠ぜんぜん読み筋ダメじゃん!』みたいなことでもいいので、名前を言ってほしい。それだけでもいいので……」

 使用しているソフトについて言及するのは、プロにとっては自分の研究を知られてしまうリスクを負う可能性がある。そのことは杉村も理解している。
 今後も棋士たちとの交流を続けていくのだろうか?

「もちろんです! ただ、ちょっと私が出しゃばりすぎですよね……本来、ディープラーニング系のことであれば山岡さんですし、ソフトを使った勉強法や棋譜などを解析するのは『PAL』の山口さんや『Qhapaq』の澤田さんが詳しいわけですから、そういった方々とお繋ぎするようにできたら……と。そういう気持ちは、とってもあります」

「私や、電竜戦プロジェクトにコンタクトを取っていただいた場合は、どなたかに『こんな依頼が来たけど、やってみます?』と話を振ったり。そうやって交流の輪を広げられたらと」

「CSAは世界コンピュータ将棋選手権の開催に手一杯な部分もありそうなので、電竜戦のほうが足が速い部分はあると思います。面白いことがあればやってみて、失敗したら修正する。そんな感じで両方が補い合うように発展していくのが理想でしょうか」

 さすがに今回のような大がかりなイベントをすぐに開催できるような元気はまだ回復していないが、「ちょっと疲れました(笑)」と言いつつも、杉村の目は少年のように輝いている。

「今回の結果には満足しています。今後も楽しいことができていけばいいなと!」


長時間マッチ第1局で現れたやねうら王のバグについて

 ……ところで、やねうら王のバグについてである。
 これはいったい何が原因で発生したことなのか?
 イベント当日から開発者たちはその原因を特定し、野田久順の尽力により翌日にはほぼ修正を完了するまでになっていた。
 野田はNNUEを初めて実装した将棋ソフト『tanuki-』シリーズ開発チームの主要メンバーである。第5回電王トーナメントで優勝した、たぬきの着ぐるみを着ていた人……と言ったほうが伝わるかもしれない。

 やねうら王開発者の磯崎は、このバグが長時間マッチで発生したことを知った時、こう発言している。

『dlshogiが先手番で強いのは、やねうら王系のソフトの後手番で出現するこのバグを学習したからでは?』

 その推測が正しければ、将棋ソフトの発展にこのバグが無視し得ないほどの影響を与えているということになる。

 果たしてバグの原因は何だったのか?
 その影響はどこまで及んでいるのか?
 磯崎本人の口から聞くことで、第一譜の締め括りとしたい。


──このバグのことは、事前に知っていたんですか?

磯崎:
 読み筋に非合法手が入るという報告は、3~4件ほど聞いてはいました。しかし同じ条件でやっても再現しないし……読み筋だから、ま、いっか! くらいの気持ちでいました(笑)。

 詳しい原因自体はやねうら王のブログに書いたんですが……あれは将棋ソフトの開発者向けに書いたものですし、とにかく今回のバグは原因が複雑で……。

──技術的な部分についてはそちらのブログを読んでいただくということで、ここではバグが発生した背景について書いていきたいと……あの、もうバグは修正されてるんですよね?

磯崎:
 そうですね。結果的には修正しても強さに変わりはなかったし、dlshogiも特にこのバグを突くように成長したわけではなかったみたいです。再現性も低いから、プロ棋士の研究に影響を与えたということもないでしょう。

 『合法手のチェックが甘かったんじゃないか?』という指摘があるかと思うんですが……ただ、今回のバグを修正した方法って、合法手のチェックを強化したわけじゃないんです。

──そもそもなぜ後手の飛車が自陣で『竜』に成ってしまったのでしょうか?

磯崎:
 現象としては『先手の指し手と後手の指し手を間違えてしまった』というバグでございましてね。やねうら王の置換表には……。

──『置換表』というのは、ソフトが調べた局面情報を記憶しておく表のことですね。対するディープラーニング系のソフトは局面情報を全て記憶しておく必要があるからメモリの使用量が莫大になると。

磯崎:
 そうです。置換表は固定サイズのメモリが割り当ててあるので、古いエントリーを上書きしないと、足りなくなってくるんですわ。

 たとえば100局面分しか憶えられないのに、1000局面分記録しなさいと言われたら、900局面分はどっかに溢れちゃう。だから、要らないとおぼしきところから上書きしていくような感じなんですが……。

──なるほど。

磯崎:
 で、今回のバグは、長時間思考させたことでこの置換表が溢れてしまった時にのみ起きるバグだったんです。だからポンと局面だけを与えられて『ここでバグが出るからやってみ?』と言われても、再現することはできなかったんです。

──置換表が溢れた状態で検証する必要があったんですね。

磯崎:
 はい。それと、やねうら王の置換表には、先手の局面用のエントリーと、後手の局面用のエントリーとで、記録するところが分けてありまして。だから先手の指し手が後手の指し手に混入することは、本来、無いわけなんです。

──あ! 先後を最初から分けているから、指し手の情報にいちいち先手か後手かなんて記憶する必要がないわけなんですね!?

磯崎:
 そうですそうです! 想定していないんです!

──なるほど……いや、ちょっと待ってください。そもそもどうしてやねうら王の置換表は、先後をわけて記憶するようにしてるんですか? わけずに記憶してるソフトもあるんですよね?

磯崎:
 分けずに記録すると余分にチェックが必要になるからです。非常に細かい話なので多くの人がここを読み飛ばすと思いますが(笑)、順を追ってご説明しますね。

──よろしくお願いします。ちょっと怖くなってきました(笑)。

磯崎:
 まず、置換表上、指し手がどう表現されているかというと、駒を移動させる指し手の場合ですと『移動元の升(の番号)』、『移動先の升』、『成りかどうか』です。

──人間の棋譜だと、駒の種類と、移動先の升と、成りかどうかですね。やねうら王はちょっと違うと。

磯崎:
 例えば、先手が23歩成とする場合、この指し手は、【移動元が24+移動先が23+成り】という情報で構成されています。この指し手が先手の指し手であるとわかっている場合、この成りが合法かどうかのチェックを端折れるんです。なぜなら、23の升は先手にとっての敵陣ですから。

──あっ! そうか……。

磯崎:
 先手の駒であれば(そこに実際に移動できるかどうかは別として)成れることには間違いないです。これが後手の指し手である可能性が残されている場合、このチェックを端折れないんです。後手ですと24の升にある駒を23に移動させても成れないですしね。

 だから、局面を保存する領域を先手の局面用と後手の局面用とに分けてやることで、このチェックを端折れる、そういう狙いがあるんです。

──なるほど! いや、すごい工夫じゃないですか!

磯崎:
 しかし『Stockfish』が1年前に改良した部分をやねうら王に取り込んだことで、針に糸を通すような細い経路を通って、後手の局面を保存する領域に先手の局面の指し手が紛れ込んできまして、それで今回、先手用の指し手を、後手が指してしまっているんです。

──……ようやくバグの原因が理解できました。『今回のバグの原因は合法手のチェック(駒が成れるかどうか)が甘いことだろう』という大方の予想に反して、そのチェックは最初から意図的にやっていないというのが実際のところだったんですね……。

磯崎:
 そうです。『なんでそんな基本的なチェックすらやってないんだ、プログラミング素人かよ!』って思っている方も大勢いらっしゃるかと思いますが、こっち(私)はプログラミング45年もやってるわけでしてね(笑)。

──その今回のバグの遠因となったStockfishって、チェスのソフトですよね? チェスって取った駒を使えないし、駒が成ることもそんなにないじゃないですか。

磯崎:
 そうですね。プロモーション(成り)は、一番奥まで行ったポーンしかできませんし。

──でも将棋は持ち駒を自陣に打つこともできて、さらに駒が成ることも多い。だからStockfishでは潜在的に見過ごされていた現象が、将棋になったときにそれなりの頻度で発生するようになった……ということはありませんかね?

磯崎:
 そういう側面もあるでしょうね。まあ、Stockfishは非常に複雑で、しかもバージョンアップしたときに『ここは変わってへんやろ』とこっちが思ってる前提条件が変わってたりすることもあります。

──どうして今もStockfishがバージョンアップするたびに、やねうら王に取り込み続けているんです? そうしなかったら今回のバグは起こらなかったわけですよね?

磯崎:
 Stockfishの開発者の人たちは本物の天才集団で、Stockfishにはこの手のボードゲーム(将棋やチェス)全般でうまく動くような汎用性の高い探索部のコードが書いてあります。

──そんなに凄いソフトなんですか……。

磯崎:
 そのためチェスAIのプログラムであるStockfishの探索部を将棋AIのプログラムにコピペしてくるだけでかなり強くなるんです。ここ近年でもStockfishの最新版にキャッチアップするだけで1年でR50~100ぐらい強くなっています。

――よく選手権のアピール文章に『Stockfishの最新版を~』って書いてありますけど、あれはつまり『強くなってるぞ!』とアピールしてるわけですね。

磯崎:
 やねうら王では実際は、そこから将棋に向けてチューニングも行っているので何も考えずにコピペしているわけではありませんが(笑)。

 最近では9月下旬に、やねうら王V6.50というのをリリースしました。これは半年前のやねうら王からR50ぐらい強くなっています。水匠4の探索部よりも強く、現状NNUE系では最強です。これも全部Stockfishのおかげです

──Stockfishチートすぎる……。あの、Stockfishをベースにしていない将棋ソフトってあるんですか?

磯崎:
 最近はDeep Learning系の将棋ソフト(dlshogi、PALなど)が出てきて、これらはStockfishの探索部は参考にしていませんが、Deep Learningを用いないソフト(NNUE系など)は、上位のソフトすべてStockfishの影響を何らか受けていますね。

 2013年~2016年ごろには結構独自の探索部で大会に参加する開発者の方もおられたのですが、Stockfish系の探索部が優秀すぎて、独自に書いている開発者は軒並み予選落ちしてしまうんですよね。これではなかなかモチベーションが続かないというのもあるのでしょう。

──それはツラい……。頑張ってオリジナリティを出した小説よりも、あまり何も考えずに売れてる作品をコピーしたラノベのほうが売れるみたいな現象が起こっていたと……。

磯崎:
 時系列順に言うと……『Apery』の平岡さんが(2015年の電王戦FINALの後に)『Aperyをオープンソースにします』と宣言し、ソースコードを公開されたあと、やねうら王を含めて、ほとんどのソフトが評価関数についてはAperyと同等のものを使用しました。

 将棋ソフトは、探索部と評価関数という二つが車輪の両輪で、評価関数が同じということは、車輪の一つが同じパーツということです(笑)。あとは探索の差でしかない。

 しかし、その探索部は、Stockfishの探索部がすこぶる優秀だったので、結局、誰が一番早くStockfishの新しいバージョンを取り込んで自分のGitHubに公開するかという競争になりました。

 で、その競争が落ち着くと、その次は、いかに将棋に適した形に改良してNPS(探索速度)を上げるかの競争になったんです。評価関数はAperyのまま、探索部はStockfishのまま。そうなると探索速度で差をつけるしかありません。NPSが1番速ければ、たくさんの開発者がクローンを作ってくれて、改良していってくれるかと思って。

──オープンにする代わりに、みんなに使ってもらって強くしてもらうという戦略なわけですね。

磯崎:
 そうですね。やねうら王は、オープンソースの将棋ソフトの中で、デファクト・スタンダード(事実上の標準)になりたかったわけです。

 NPSが5%違うだけでレーティングは10~15くらい変わってくる。同じ評価関数を使ってもレーティングが上がるなら、みんなやねうら王を使うわけじゃないですか。

──確かに。ちょっとバグはあるけど強いソフトか、バグは無いけど弱いソフトかだったら、ほとんどの人は強いソフトを使いたがると思います。実際、プロ棋士もバグがあることを知りつつ、使い続けていたわけですから。

磯崎:
 そうですよね。だから昔から将棋ソフトというのは、安全面に対して危険方向に極限まで振り切って作ってるようなところがあって。これが勘定系のシステムだったらいまごろ大炎上していますよ(笑)。

──銀行で起きたしまったシステム障害のニュースを見ていると、よくわかります(笑)。どこまでチェックするかは、用途に合わせて変わってくるものなんですね。

磯崎:
 例えば、500円玉の代わりに韓国の500ウォン硬貨を加工した偽500円玉を自動販売機に使うという事件が1982年に多発しましたが、加工してなければまあ500ウォンが500円玉の代わりに使えることはないですよね。それくらいのチェックはしている。

 でも将棋ソフトでは、そういうチェックをするコスト(計算時間)が惜しいんです。NPSが低下しますからね。すなわち、500ウォンなんか入ってけーへんやろ、と思ってプログラムを書いているところがある。500ウォン入ってきたとしたら、そんなん入れる奴が悪いわ、と思ってプログラムを書いている節がある。NPSを追い求めるために。

──そうして、世の中の求めるものを作り続けていった結果、バグが出やすいものが残ったと。

磯崎:
 でも、このデファクト戦争というのは、2、3年くらい前に終わっちゃったんです。

──大会の決勝に残るソフトがみんな、やねうら王のクローンになるような状況が出現したと。

磯崎:
 はい。本来は独自に探索部のコードを書いて、新しい地平を切り拓ける人こそが残っていくべきだと私は思うのですが、そういう人たちが大会で予選落ちするのでどんどん将棋ソフト開発から離れていきました。

 最近のDeep Learningのブームまで残っていてくれたなら、もっと多様な将棋ソフトがある世界線もあったかと思うのですが……。


 様々な偶然が重なったことで、顕在化したバグ。
 杉村はイベント後にバグの検証を行った。

「あのバグを修正したあと、短時間の対局ではありますが、dlshogiと水匠を対局させて勝率を検証しました。結果は、ほぼ修正前と後で勝率は変わらなかったんです」

「だからdlshogiがバグを突く形で成長したというのは、おそらく……ないと思います」

 結果論ではあるが、長時間マッチを行ったことでバグの修正が行われ、水匠はさらに使いやすいソフトとなった。
 また、バグという衝撃の結末によって、『将棋ソフトに関心を持たない人々へのプロモーション』という長時間マッチ開催の目的にも資することになった。一歩引いた目で評価すれば、バグによる結末はプラスの面が大きいと言えるだろう。
 しかしこの結果に納得できない人物がいた

 第1局に勝利したdlshogiの開発者――山岡忠夫である

(第二譜につづく)

第一譜『水匠』杉村達也の挑戦
第二譜『dlshogi』山岡忠夫の信念
第三譜『GCT』加納邦彦の自信
第四譜『プロ棋士』阿部健治郎の未来予測

この記事に関連するニュース

トピックスRSS

ランキング

記事ミッション中・・・

10秒滞在

記事にリアクションする

記事ミッション中・・・

10秒滞在

記事にリアクションする

デイリー: 参加する
ウィークリー: 参加する
マンスリー: 参加する
10秒滞在

記事にリアクションする

次の記事を探す

エラーが発生しました

ページを再読み込みして
ください