藤井二冠の自作PCについて最強将棋ソフト開発者に聞いたらトンデモないことが判明した件
藤井聡太二冠誕生────その報道に、日本全土が熱狂しました。
しかし世間の人々は、将棋のことそんなに詳しく知りません。
だから29連勝の時は食べ物のことで盛り上がりました。今はもう閉店してしまった『みろく庵』の出前が、豚キムチ雑炊を運ぶ写真が東京写真記者協会賞を受賞するなど、大手メディアの方々もこぞって飯の話題に飛び付きました。ねえ大手メディアくん……もっと将棋のこと報じよ?
ネット上でも、藤井四段(当時)の食事の注文について様々な意見が飛び交います。
『中学生が昼飯に千円以上のものを頼むなんて生意気だ』『いやいやプロなんだから食に投資するのは当然』『あのビリビリやる財布に親近感がわく……』等々。
じゃあ今回は何で盛り上がったのか?
それは……パソコンでした。
『パソコンマニアも驚愕する藤井聡太二冠の「自作PC」 CPUの値段は50万円』
こんな記事が大いにバズりました。
プロゲーマーが世界中で活躍するこの時代。将棋のプロも、プロゲーマーの一種なわけですから、将棋界よりもむしろゲーム界隈が大賑わい。今回は藤井二冠の選択に好意的な意見が多かった印象です。
そして今回も大手メディアは、インタビューでこぞって『自作PC』の話題を振って、藤井二冠の口から様々な情報を引き出しています。
けど、それだけです。
29連勝の時に豚キムチ雑炊や味噌煮込みが話題になったから他にも好きな食べ物があるかどうかとか、他にも食べ物に関するエピソードがあるかどうか聞いてるのと、何が違うんでしょう? まるで成長していない……。
重要なのは『高性能のパソコンを使用することで、藤井二冠がもっと強くなるのかどうか』であり、さらに言えば『藤井二冠に勝つためには、他の棋士もこのスペックのパソコンを用意しないとダメな状況になってるのか?』だと思います!
そんなわけで今回は藤井二冠も使用している将棋ソフト『水匠』の開発者・杉村氏と、その『水匠』をはじめたくさんの将棋ソフトの元となっている『やねうら王』の開発者・磯崎氏から、将棋ソフトの正しい使い方を聞いてみました!
取材・文/白鳥士郎
藤井二冠が購入したCPUは現時点で個人が購入できる最上のもの
──本日はよろしくお願いします。私がプログラミングの知識ゼロなため、こちらの質問に対して開発者のお二人が自由に喋っていただくスタイルで進めさせていただきます。
磯崎:
はい。よろしくお願いします。
杉村:
お願いします。
──さっそくですが、藤井二冠が50万円するCPUを購入してパソコンを自作したニュースがバズってました! このくらいのパソコンを用意しないと、将棋ソフトの本物の強さを引き出せないんですか?
磯崎:
藤井聡太先生が自作されたというのは、スレッドリッパー3990Xという、64コア128スレッドで動作するCPUです。将棋ソフトというのはCPUのコア数が多い方が基本的には強いということになるんですが、藤井先生の買われたこのCPUは現時点で個人が購入できる最上のものになります。
──と、いうことは……現状、ソフトを使用する環境でも藤井二冠は最強ってことですか?
磯崎:
そうですね。
──杉村さんは例のバズった記事でコメントしておられましたよね? 『家庭用パソコンのCPUが1秒間に約200万手読むのに対し、藤井二冠が使っているCPUでは30倍の6000万手読めます。短時間でより多くの局面を検討できるので、効率よく研究できます』と。
杉村:
はい。
──効率よく研究できる以上に、その……普通のパソコンでは示してくれなかったような手まで弾き出せるようになるんですかね?
磯崎:
まずですね……コンピュータ将棋の世界では、思考時間を2倍にすると、レーティングが210程度上がります。
──レーティングっていうのは、人間でいう段位みたいなものですよね? 藤井二冠もよく自分がどれだけ強くなったかを表現するときに使っている言葉です。
磯崎:
そうですね。レーティング200でだいたい一段だと思ってください。つまり2倍の時間かけると、ソフトは一段強い指し手を示します。
──はい。はい。
磯崎:
早いCPUやコア数が多いCPUを持ってくれば、より短い時間で強い指し手を教えてくれるということになりますね。人間がソフトを使って序盤研究をしようと思ったら、まあ普通は、起きてる時間しか研究できませんから……。
──なるほど……同じ時間研究しているとしたら、よいパソコンを使っている人のほうが、より深い研究ができるということになりますね。
磯崎:
今の将棋ソフトは、家庭用のノートパソコンで1手1秒思考させるだけで人間より強い手を教えてくれます。けどプロの世界で勝とうとしたら、そのレベルでは全然ダメで。
──みんな強いといわれるソフトをいいパソコンで動かして研究してるわけですもんね。
磯崎:
そうですね。
──そういえば少し前、やねうら王をスレッドリッパーにも最適化して、スレッドリッパーで実行した時に従来よりも強くなるような改良を施し、その実行ファイルを用意したと、磯崎さんがブログに書いておられたと思うんですが……。
磯崎:
ああ、よくご存知で。
──となると、やねうら王というソフトを動かす環境という点においても、藤井先生は理想的なパソコンを手に入れたということでしょうか?
磯崎:
そうですね。一番コア数が多いので。それにやねうら王はスレッドリッパー向けに最適化されているので、かなり効率よく思考できますね。
CPUを使うソフトとGPUを使うソフト
──水匠はどうでしょうか?
杉村:
水匠も……。
磯崎:
水匠も、やねうら王と同じですから。
──水匠は世界コンピュータ将棋選手権で優勝し、現時点で最強のソフトとされています。その水匠を最も効率よく動かせるということは……個人レベルでは、ソフトを使う上で藤井二冠を上回る環境を手に入れるのは無理だと……?
磯崎:
現実的には入手不可能ですね。ただ……。
──おっ! 何かあるんですか!?
磯崎:
将棋ソフトは現時点で2種類ありまして。CPUを中心に使うソフトと、GPUを中心に使うソフトです。
──GPUというのは、3Dグラフィックスを処理するのために開発された半導体チップですね。主にゲームの世界で使われていましたが、最近はディープラーニング【※】の分野でも活躍しています。
※機械学習の手法のひとつ。人間が何かしら手を加えずとも、コンピュータが自動的に大量のデータの中からそのデータの特徴を発見する技術を指す。
磯崎:
CPUを使うソフトが、やねうら王や水匠。GPUを使うソフトには、dlshogiやAobaZero といったものがあります。これらはまだ、やねうら王の強さには及ばないんですが……これがCPUで処理するソフトに匹敵するようになれば、GPUを使ったパソコンで、藤井先生の環境を上回ることもできるかもしれません。
──なるほど……そういえば藤井先生も、永瀬先生(永瀬拓矢王座)との対談(王将リーグ『棋士とニューノーマル#4)で「将棋ソフトもそのうちそういう可能性もありますけどね。GPUで動くという。」と、GPUを使ったソフトを意識した発言をしておられました!
磯崎:
ただ現状、CPUに特化したソフトのほうが優位にあるので。そういう意味でも、藤井先生の今回の選択はベストかな、と。
──今後、ディープラーニング勢のソフトが強くなり、さらにGPUもより高性能なものが開発されていけば逆転する可能性はある。しかし現時点ではCPU勢が強い。なるほどなるほど。
磯崎:
ただ、ソフトの性質が全然違うんですよ。GPUを使ったソフトは、大局観がすごく優れてるんです。
──ソフトの話で大局観の話題が出て来るとは思いませんでした! 大局観が優れているということは、序中盤が強いということでしょうか?
磯崎:
はい。ただ、1秒間にたくさんの局面を読むことはできない。少ない局面しか読めないんです。だから終盤で頓死することがあったり。
──ええ! ソフトって終盤がものすごく正確なイメージだったんですけど、性質によっては全然違うんですね!
磯崎:
だから仮に、やねうら王とdlshogiが互角の強さになったとして。そうなったら、序盤研究に使うのに適してるソフトがどっちかというと、当然dlshogiのほうが優れてるわけです。少ない局面で、優れた手を示してくれるわけですから。
──用途を序盤研究のみに絞れば、GPU勢のほうが優れていると。
磯崎:
そうです。勝率が五分五分だとしたらdlshogiを使うべきだと、私は思うんですけどね。
──しかし、まだそれは先の話なんですね。
磯崎:
そう……ですね。ただdlshogiのほうが優れているなと思う点はあります。
──ありがとうございます! 藤井二冠がどんな環境で将棋ソフトを扱っているかは、とてもよく理解できました! ……ところで我々のような将棋ファンが、将棋ソフトを導入してプロの対局を観戦しようと思ったら、どの程度の環境があったらいいんでしょう?
磯崎:
そうですねぇ……たとえば今なら4コア8スレッドのノートパソコンが5万円くらいで買えると思うんですけど。このパソコンで1手1秒で思考させれば、人間の強さでいうと十二~三段くらいはあると思いますから……。
──じゅ、じゅうさんだん!? アマチュアの全国大会で優勝すると六段がもらえるんですけど、それより遙かに強い……っていうか段位が上限突き抜けてません?
磯崎:
将棋倶楽部24だと九段までしかないんですけど、レーティングが200上がるたびに一段上がるとすると、計算上はそれくらい強いということになります。
──これ、1手2秒にするとレーティングがさらに210上がるわけですから……。
磯崎:
十四段になる。長い時間考えさせれば、いいマシンに匹敵しちゃうわけです。
──そうなんですね! 素人が家庭用パソコンを使ってプロの将棋を観戦しても「今の形勢はこんな感じか~」とか「さっきの手は、こっちのほうがよかったのか~」とか、かなり正確にソフトが教えてくれるんですね。
磯崎:
長い時間考えさせるところがミソかなと、私は考えてます。
──となると……強いソフトというのは、短い時間でいい手を教えてくれるってことでしょうか?
磯崎:
そうですね。同じ時間を使った場合の勝率の比較なので。片方だけ2倍の時間を考えてもいいなら、さっきの話と同じで一段差(レーティング210差)があっても同じ強さになりますから。
水匠の強さの工夫
──やねうら王からはたくさんのソフトが派生していて、その中でも杉村さんの水匠が現時点で一番強くなったと思うのですが、それはどんな工夫をなさったからなんでしょうか?
杉村:
そこはですね……水匠は、やねうら王ベースではあるんですけど、やねうら王の探索部はStockfishというチェスプログラムを参考に書かれていまして。
やねうら王のほうは探索部の更新がここ2年ほどなかったものですから、最新のStockfishの更新をやねうら王に反映させた人がいまして(mブランチと呼ばれる)。それが本家のやねうら王よりも短時間だったら勝率が高かったので、水匠では、これを採用しました。
あとは評価関数という……まあ、局面を読んだ上で評価する部分があるんですけど、それについても今まで公開されているソフトの中では一番強いだろうと。
──探索部と、評価関数。ここを改善して強いソフトを作ったんですね。
杉村:
あとは、スレッドリッパー3990Xという、一般人が手に入る一番いい……(笑)
──藤井二冠のパソコンと同じCPUを使っていると(笑)
杉村:
というのも、それまで世界コンピュータ将棋選手権の上位陣はAWSとかGCPという、クラウドコンピュータで動かして対局させていたんですけど……。
──AWSは、アマゾンが提供してるサービスですね。囲碁のプロはこれでソフトを動かしていると、一時期話題になりました。GCPはグーグル・クラウド・プラットフォームの略で、同じようにグーグルが提供するサービスです。
杉村:
スレッドリッパー3990Xを使ったほうが、それよりも強いということがわかったんですよ。
──聞けば聞くほど藤井二冠のCPU選びが好手だとわかって戦慄しますね……。あと水匠は定跡を作る際にも工夫をされたと、どこかで読んだのですが。
杉村:
定跡を作る際には、先手も後手もどちら側のソフトも『こっちが有利だよね!』っていうような、先後の評価が一致している棋譜を抽出するようにしました。評価が分かれていてあとからどっちかが『間違ってました!』と反省するような棋譜は省いています。
──なるほど! どっちも正しいと評価しているのであれば、より正確さが担保されているわけですもんね。
杉村:
はい。評価が分かれている棋譜だと、仮に勝ったとしても逆転勝ちだったのかもしれません。そのような棋譜をベースに定跡に入れてしまうと負けちゃう可能性があるので……。
私は『圧勝率』と呼んでいたんですけど、先後の評価が一致して勝利している棋譜、すなわち圧勝している棋譜のみを勝利扱いとする形で勝率を計って、その勝率をベースにして定跡を作るということをしていました。
──けど、どれだけ強いソフトでも、負けるということは……間違った序盤を指しているということになるんですね?
杉村:
それはそうですね。序盤の定跡を作っていても、間違った評価がなされている局面を基にしてしまった定跡というのも当然含まれているので。性能がいいパソコンで動かす性能のいいソフト相手には、序盤で負けたのか、序盤は上手く指したけど逆転負けしたのかはわかりませんが……。
100万局面以上の定跡を持ったとしてもまだまだ穴はある
──磯崎さんは、やねうら王で『テラショック定跡』という、ものすごい定跡をつくっておられるとうかがっていますが……。
磯崎:
はい。コンピュータ将棋の大会って持ち時間が短いので、事前に長い時間をかけて調べておけば、それだけ強い手を指すことができますから。
──さっきの、2倍時間をかけたら一段強くなるというのと同じことですね。それを事前にやっておくのが、ソフトの作る『定跡』なわけですね。
磯崎:
事前計算の一種ですね。
──プロ棋士が家で研究してきて、序盤はどんどん飛ばして指していくのと似たような感じでしょうか。しかしそうなると、ソフトが考える序盤というのはもうとんでもない強さになってると思うんですが……どんな将棋を指してるんですか?
磯崎:
何か、角換わりが多いとか……そこは杉村さんのほうが。
杉村:
floodgateといって、そこでコンピュータ将棋ソフト同士が対局してるんですけど、けっこう千差万別というか。人間が指す、相掛かり・角換わり・矢倉というのは全部指されています。雁木はプロ棋士の中では一時期ほど指されなくなっていると思うんですが、雁木も多い。この4つが多いです。
──『矢倉は終わった』なんて言われましたけど、ソフトも矢倉、指すんですね! 振り飛車はいかがでしょう?
杉村:
振り飛車はほぼ指さないです。振り飛車を専門で指すように仕向けたソフト以外は。
──プロの将棋はその時その時の流行があって、爆発的に指されるような状況が生まれることがありますが、ソフト同士の将棋も何か一つの戦型に収束していくようなことはあるんでしょうか?
杉村:
今の段階では、ないみたいです。居飛車であるということと……ソフト間では横歩取りがほぼ指されなくなったように、居飛車の作戦の一部が消滅することはあるみたいなんですけど。『絶対相掛かりがいいです!』とか『絶対矢倉指します!』みたいな、そういう収束はないみたいですね。
──プロの世界では、大流行した角換わりも先手がちょっと厳しいんじゃないかといわれたり、豊島先生(豊島将之竜王)もソフトだけで研究する方法にある種の行き詰まりを感じておられたりと、一時期より停滞しているような印象を受けます。ソフトはそういう行き詰まりみたいなのはなく、まだまだガンガン強くなってるんでしょうか?
磯崎:
ソフト自体は強くなってるんですけど、定跡が整備されてきているかというと……やはり大量に時間がかかりますから。私のテラショック定跡というのは、100万局面以上は定跡を持っているんですが……。
──ひゃ、ひゃくまん!
磯崎:
1手1時間思考させるとして、100万局面×1時間で、100万時間は費やしてるんですよ! その計算リソースを持ってる人は他にいないというか……そこに計算資源を突っ込める人は普通、いないので。
──いないでしょうねぇ……。
磯崎:
だから他の人は、floodgateの対局を見て、勝ってるほうの棋譜の序盤を定跡にするとか……そのレベルでやっちゃうので、バラつくんですよね。
──穴が生まれちゃうんですね。磯崎さんは、その穴が生まれないようにやってると。
磯崎:
いやぁ100万局面では、まだまだ……。穴がいっぱいあったりして……。
杉村:
ふふふ。
──大局観に優れるというディープラーニング勢のソフトと比べても、負けない定跡なんですよね?
磯崎:
大会の場合、1手30秒とかなんです。テラショック定跡はやねうら王で1時間かけて作ってるので……ただ、ディープラーニング勢のソフトのほうが序盤に関して優秀なら、それ使って定跡作りたいですよね。そういう気持ちはなくはないです。
──いずれ、そちらを使うかも?
磯崎:
シフトするかもしれないですね。定跡を作ることに関しては。
──しかし100万局面となると……仮に必勝戦法が生まれたとして、それを人類が暗記して使うのは無理なんじゃないですか?
磯崎:
主要な変化だけなら暗記も可能でしょう。たとえば横歩取りとかなら、憶えるだけは憶えられるかもしれない。細かいところは別として。
──ふーむ…………藤井二冠は、個人で揃えられる最強の環境を作って、ソフトを使って研究しているということなんですが……ぶっちゃけどんな研究をしてると思います? パソコンのスペックや使用してるソフトを聞いただけで、そういうことはわかるものですか?
磯崎:
結局、将棋ソフトの上でやっちゃうんで……。
──やっちゃうんで?
磯崎:
まあ、大した研究できないんじゃないかと。
杉村:
言うと思いました(苦笑)
──ええ!?
ソフトを使ってする研究は大したことない?
──藤井二冠がソフトを使ってする研究が『大したことない』って……どういう意味なんです!?
磯崎:
何を言いたいかといいますと……たとえば、角換わりの4八金型の将棋って大流行してますよね?
──はいはい。2九飛・4八金と構える形ですね。ソフトの影響で、あらゆる戦型で大流行していると勝又先生(勝又清和七段)のインタビューでも教えていただきました。
磯崎:
あの4八金、あれを3八金にしたらどうなん? っていう考えは当然あると思うんですよ。一路(1マス)場所が違った時に、果たして形勢はどうなるのかというのは。
──はい。確かに気になりますし、その発想は素人でも当然出てきます。
磯崎:
他にもたとえば、お互いに端歩を突き合っている局面だとどっちがいいのだろうかとか。
──びみょ~~~に、局面が違う場合ですよね。大勢には影響がなさそうに見えて、実は影響があるのかもしれない。そこは確かに人類が調べようと思っても、あまりにも局面が膨大だから調べ尽くせないところです。
磯崎:
けど、プログラマーだったら? 何かの駒が一路だけズレてる局面とか、任意の手数の交換が入ってる局面とか、条件を決めてやれば全ての組み合わせを列挙してそれぞれを思考させるようなプログラムを書けるんです。
──ふむふむ。
磯崎:
ところが藤井先生は将棋ソフトだけを使っているから、そんな網羅的にやるのは不可能なわけです。
──ああ! なるほど……そういうことなんですね。いくらいいパソコンを持っていようとも、マウスでポチポチやってるだけでは確かに非効率です。
磯崎:
だからチェスの世界では、プログラマーとチェスのグランドマスターとかが一緒になって研究をするような例もあるらしいんです。将棋ソフトも本来はそうなるべきかなと思うんですけど……。
──そこまでやってるっていう話は聞かないですね。
磯崎:
将棋の場合、優勝賞金は大きいんですが対局料自体はそこまで高額ではないので……プログラマーを雇うというのは難しいかもしれませんね。
──プログラムを組むことができるレベルの知識がないと、将棋ソフトを使ってても、有効と言えるまでの研究はできないんですね。
磯崎:
ただ、藤井先生のレベルにまでなれば、どこを調べればいいのか当たりを付けることはできると思うんです。網羅的に調べなくても、有効そうな部分に絞ってソフトに調べさせればいいと。
──それこそ大局観のようなものを使って、研究すべき局面を限定できると。なるほどそれも一理ありますね。
磯崎:
だから網羅的にやる必要がないといえば、そうなのかもしれませんけど。ただ網羅的にやる方が、これまで発見できなかった新手などを見つけられる可能性は大きいですよね。
現在のコンピュータ将棋ソフトの定跡の発想は『互角で渡り合ってとりあえず序盤はしのぐ』
──そういう網羅的に調べるプログラムって、どの程度の知識があれば書けるんでしょう?
杉村:
Pythonというプログラミング言語を用いるなら、Python-shogiというのを使って棋譜を取り込んで、Ayaneというのを使ってやねうら王を呼び出せば、そういうのは簡単にできるようになってるんですよ。Pythonを使える人はたくさんいますし、プロ棋士の谷合先生(谷合廣紀四段)はPython-shogiのコードを使った揮毫(きごう)を書いていたことがありましたね。
──プロ棋士になっても東大で研究を続けているという、あの谷合四段が! Pythonの教科書も執筆しておられる方ですから、自分で何でも作れちゃいそうですね。
杉村:
だからPythonをちょっと使えて、あとは『こういうふうにすれば、こういうことが調べられるな』という仕組みを理解すれば、プロ棋士の先生でも比較的簡単にできると思いますよ。
──杉村さんは本業が弁護士さんですよね? 本業をお持ちで、しかも文系だと思うんですけど、それでもすごく強いソフトを作ることができた……ということは、プロ棋士でも同じように強いソフトを作れちゃうんでしょうか?
杉村:
できると思います。私のプログラミングの知識は、磯崎さんからすれば幼稚園レベルだと思いますよ? けど『こういうふうにやってみようかな?』という気持ちがあって、『このレベルなら何とかなるかな?』っていうプログラミングを書いて、工夫したら、何とかなりましたから。
──ふーむ……。
杉村:
技術的な面だったら、プロ棋士の先生が1ヶ月……いや1ヶ月いらないくらい勉強すれば、たぶん私の技術には辿り着きます。
──……ほんとにそうなんですかぁ?
杉村:
ホントにそうです!(笑)
磯崎:
ま……司法試験に受かるレベルの頭のいい人が1ヶ月くらいあれば、簡単なプログラムなら書けるでしょうからね。
──それこそ谷合先生みたいにPythonの教科書を執筆するレベルなら……。
磯崎:
あの方なら、ガチでやねうら王を改造すること自体できるはずですけど。ディープラーニングを研究していらっしゃるそうなので、dlshogiを改造することもできるでしょうね。
──では……そういうプログラムを組んでソフトを使いこなしたとして、どのくらい棋力が上がるとお二人は思われますか?
磯崎:
序盤を調べ尽くしたとしても、それが決定打となって勝てるわけではないので……。藤井先生も、中終盤がめちゃめちゃ強いので『序盤で作戦負けしなかったら勝てるやん』くらいの話なのかもしれません。
──ソフトでゴリゴリ研究して序盤から圧倒する……というのとは、そもそも発想が違うと。
磯崎:
中終盤そんな強くない人が、序盤だけ何百万局面調べても、勝てないですよね。だから(ソフトを使って序盤を研究するということ自体)藤井先生がやるから意味があるのかなという気がしますし。
杉村:
うんうん。
磯崎:
現在のコンピュータ将棋ソフトの定跡の発想は、『必勝!』とか『有利にしてやろう』ではなく、『互角で渡り合ってとりあえず序盤はしのぐ』っていう考え方なんです。
──終盤に絶対の自信があれば、その発想に落ち着きますね……なるほど。