DL系の将棋ソフトは何故CPUだけで動かすと弱いのですか?

囲碁ソフト(例えばKataGoや『天頂の囲碁』(マイナビ))は、CPUで動かしてもそこそこ強いらしい。それに比べて、DL(Deep Learning)を用いている将棋ソフトはCPUで動かすと何故こんなに弱いのか(※ ただしトッププロよりは強い)という質問というか罵声というか、ときには言葉の暴力みたいなのがやってくる。中には、KataGoみたいにopcl(OpenCL)を使わないから弱いんだろ、将棋の開発者は開発を怠っている、みたいな意見があったり、「将棋の開発者が開発にお金をかけないのが悪い。やねさんのお小遣いでやったぐらいでおっつかないだろ」みたいに言う人もいる。

これらについて手短に回答を書いておく。

機械学習の時だけGPUを使うのではないかと勘違いをしている人がいるけども、実際の対局中もGPUをガンガン使う。ガンガン使ったほうがたくさんの局面が読める。CPUで動かすと読める局面の数はGPUの時の1/10ぐらいになる。下手すると1/100ぐらいかも知れない。ともかく読める局面数は桁違いに減る。

それでどれくらい弱くなるかというと将棋の場合、探索局面数が2倍でR130程度強くなる。逆に探索局面数が1/2になるとR130ぐらい弱くなる。1/16ならその4倍でR130×4 = R520程度であるな。それだけ弱くなる。

囲碁の場合、どれくらい弱くなるのかはデータがないのでよくわからないけども、聞いた感じだと、囲碁の場合もそれくらいは弱くなるようだ。

では、それで何故囲碁のほうはCPUだけでもそんなに強いのかと言うと、元が強いからだ。GPUを使った時の強さが(トッププロを基準として)、将棋の場合より+R500以上違いがあるはず。なのでCPUで動かして、それによってR520弱くなろうと、人間からすると(トッププロと)+R1000以上離れてることになる。そりゃつえーわ。

それとは別の要因として、ブロック数を増やした時の棋力の伸びの違いが挙げられる。

DL系の囲碁や将棋ソフトで用いているモデルの構造は、ResNetと言うのだが(囲碁ではこれを改良したものも使われ始めている)、このブロック数(≒層の数)が多いほど大局観が良くなるとされている。ブロック数を2倍にするとnps(探索速度≒1秒間に読める局面の数)は、1/2になる。つまり、ブロック数を2倍にすると探索速度からするとR130ほど弱くなるわけである。その代わりに、大局観は格段に良くなるので、その分、良い指し手が指せるならこの損した分を取り戻せるわけである。

囲碁では、2倍のブロック数にした時に(同じ局面数を探索した時の比較で)+R200~R500ぐらい上がるとも言われている。
// 正確な数字はよく知らないので詳しい人、コメント欄でフォローお願いします。

+R200だとしてもnpsダウンで-R130弱くなる分より大きいのでブロック数は大きくしたほうが得である。そんなわけで囲碁では(KataGoなど)どんどん大きなモデルの学習を行うのがトレンドになっている。

// ブロック数に比例して学習時間は増えるし、ブロック数に比例して学習に要する教師の数も増えるので、ブロック数をN倍にすると学習に要するコストはNの2乗倍近くになる

将棋では、残念ながら10b(10ブロック)から20bに増やすとnpsが低下した分を回収できないようで(いまのところ)弱くなるようだ。

まあ、将棋の場合、大局観が良くなったところで、33手詰めを食らえばそれまでだし、大局観で詰みが回避できるわけでもないので、読みの量が減るのは良くないのであろう。

そんなわけで、将棋ではブロック数を増やして強くする、みたいなことが出来ていない。ここが囲碁と決定的に異なる点。

また、将棋で使っているモデルは、いまのところたったの10bが主流なので強化学習は早い段階でサチる(飽和する)し、囲碁ほど大きな計算資源を要求されるわけではない。「やねさんのお小遣い(いくら?)でやったぐらいでおっつかない」はたぶん誤り。将棋の場合、3080Ti 10基もあれば十分だと思う。(0からやっても3080Ti×10基×半年とかでサチると思う)

あと、冒頭で触れたOpenCLについだけども、将棋の場合もふかうら王(dlshogi互換エンジンのやねうら王)はTensorRT版だけではなく、CPU版とDirectML版、CUDA版を公開している。これらは、OpenCLに比べてパフォーマンスが劣っているわけではないと思うので、「OpenCLを使っていないから弱い」みたいな言説は誤り。

// ただ、KataGoはOpenCLに合わせてかなりチューニングしてあるらしいですが。

DL系の将棋ソフトは何故CPUだけで動かすと弱いのですか?」への14件のフィードバック

  1. ありがとうございました。ビジネスを考えなければ、トップをただ単純に目指すものでしょうし、そこにDLで、GPUをぶん回してトップが見えるものなら、それを目指すことを否定できないですね。実際alphaZero(囲碁)で、先読みにもテンソルフロウ(?)を使っているような記述も見たような気がします。
    ただ、実際のビジネスを見据えたソフトをより多くのユーザに提供しようとすると、消費電力と強さのトレードオフは必要な気がします。うーん、私の個人的見解ですが、対局時のGPU使用は商用可能なマシンに絞ってほしいですね。それが将棋ファンとしての私の希望です。GPUはM1縛りをするとか。(超個人的な見解なので、無視してくださいませ)では、私の疑問に答えてくださりありがとうございました。

    • 現在、ふかうら王、RTX3090でfloodgate R4250程度。(3990X 水匠がR4400程度)。あとR150ほどなんですけどね…。
      // 年内には超えるのではないかと…。

  2. GT710 ¥3516あたりで「これがdlパワーか!イェ~イ」ができるかどうか・・・dlはgpuと相性がいいので、4000円くらい出せばいいのにと思う。

      • CPUでdl将棋動かすとRだいたいどのくらいでしょうか?
        【ケースA】Threadripperみたいな1セット買うと80万円くらいのPC
        【ケースB】i7とかRyzen 7とか20万円以下で買えるデスクトップPC
        【ケースC】 i3 1005G1くらいの7万円レベルのノートPC

  3. https://xtech.nikkei.com/atcl/nxt/column/18/00138/042100271/

    囲碁の方が将棋より人間と差があるって本当なの?
    古い記事だから現在のRは知らないけど、AlphaGo Zeroはもう開発してないし、現在は絶芸が最強でAlphaGo Zeroを越えただろうと言われているレベルだから人間のトップに+1500~2000くらいなのではないの?囲碁はフリーで手に入らないから正確なRがわからないけど、将棋の場合も人間との差は似たようなものでは?囲碁ソフトの方がまれにシチョウや死活を見逃すような人間の目でもわかる大悪手がまだある気もするし。

コメントを残す

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