GCTの学習メソッドは強化学習の常識を覆すかも知れない

昨年の将棋ソフトのオンライン大会である電竜戦で優勝したGCT。最近、floodgate(コンピュータ将棋のオンライン対局場)にgcttest_x6_RTX2080tiという強いソフトが登場した。これはそのGCTの開発者である加納さんが放流されている評価関数の育成中のGCTである。このソフトが2080TiというGPUの性能からすると強すぎるので、2080Tiの6枚刺しではないか、シングル(1枚刺し)だろという議論(罵り合い?)がなんとかちゃんねるでさかんに行われている。

429 名無し名人 (ワッチョイ a301-xfeT)2021/04/06(火) 13:32:52.91ID:1YM8Ydqj0

加納さんのツイートを見たけど、どこにもgcttest_x6_RTX2080tiが2080Tiシングルっていう
ツイートは見当たらないよ。

前に序盤定跡を少しだけ使用してレート4100くらいのgct_rtx2080tiっていう2080tiシングルのものをツイートで見たことはあるけど。あと2080tiシングルでだけで22局とはいえ4441もレートがつくことはないはず

結論から書くと、これは、2080Tiの1枚刺しである。gcttest_x6_RTX2080tiの「x6」は学習の6周目という意味だ。

GCTの開発者の加納さんは、昨年のGCTから現時点でさらに+R200以上強くされている。(長時間の対局では+R300~400ぐらい上がっているのかも)

現時点ですでに、やねうら王(NNUE)をスリッパ(AMD Ryzen Threadripper 3990X)で動かすより、この開発中のGCTをGeForce RTX 3090で動かすほうが強い可能性すらある。電竜戦直後は、私はあと1,2年でDeep Learning系の将棋ソフトのほうがスリッパよりコスパが良くなるかもと予想したが、半年経たずしてこの状況になるとは思いもしなかった。

しかも、加納さんが学習に使われているのはこの2080TiとGoogle Colabだけのようだ。その学習を時々停止させてその2080Tiでfloodgateに放流されているわけである。GPUの貧弱さと、強くなり具合がアンバランスでそこにまず驚かざるを得ない。

教師データ(強いソフトで自己対局させた棋譜)を(同じ会社で同じチームメンバーの)dlshogiの山岡さんのほうからもらっているのだろうと思う人もいるかも知れないが、「山岡さんからは電竜戦以降、おかわりはもらっていません」とのこと。

加納さんは、電竜戦のGCTまでに学習に使用された教師データは以下のノートで公開されている。つまり、教師データを追加で誰かからもらわず、以下にある教師データや公開されている棋譜等と、2080TiとGoogle Colabだけでどうにかこうにかやりくりしてこの強さにしたということである。

// dlshogi-DenryuSen-resnet10_swish-amp.ipynb : https://colab.research.google.com/drive/1beq7ncmE16lIvOhGTHLzxOwaQNzAcUqh?usp=sharing

詳しい学習メソッドについては今回は割愛するが、そこから得られる結果は、将棋の強化学習の従来の常識が崩れそうなほどのインパクトがある。

従来、将棋ソフトの強化学習はと言うと、(自己対局で)教師を生成して、その教師から評価関数(Resnetが使われている)を学習させ、その強くなった評価関数を使ったソフトでまた自己対局で教師を生成して…というのを繰り返すというものであった。

確かに強くなったソフトで作った教師のほうが教師の質はいいはずだし、そこから学習させればさらに強くなるだろうし、それを繰り返すのだから、これで強くなるはずではある。

ところが、この教師生成のためには、探索を行わなければならない。AobaZero(AlphaZeroの再現実験)プロジェクトでは1手800po(po=playout)で行っている。一方、学習の時は探索は行わない。このため、教師生成は、学習とは桁違い(10倍~1000倍ぐらい)の時間が必要だと考えられる。GPU富豪でもない限り、教師を作り続けるのは難しい。そこで少ない教師で学習を行えるように工夫する必要がある。

そもそもで言うと、1手読み(1手進めて評価関数の返すvalue(評価値)が一番高い指し手を選ぶ)時の棋力は、いまのGCTでもアマ初段あるかないかぐらいである。(もっと弱いかも?) floodgateのレーティングで言うとR1500あるかないかというレベルだ。これに対して800poも探索すれば、R3300ぐらい(トッププロレベル)にはなる。

アマ初段の教師として、トッププロレベルの教師であれば十分ではないのか?学習の初期のころならばともかく、ある程度評価関数が強くなってからは、その評価関数で800poで生成された教師からかなり長い期間に亘り学び続けることが可能なのではないのか?

これがGCTの加納さんの提起されたテーマである。(と私は理解している)

8 thoughts on “GCTの学習メソッドは強化学習の常識を覆すかも知れない

  1. floodgateに最近いるgct_v100x8_model-0000195はgctのv100の8基バージョンに見えるのですが、v100x8でも同じようなレーティングなのは、モデルが古いか、並列化がうまくいってないかなのでしょうか?

    • V100は加納さんがお持ちではないので(そんないいGPUを持っていたらここまで苦労されていない)、他の誰かが自分で育成しているmodelを放流しているのだと思います。

      並列化に関しては、Virtual Lossの都合、1スレッドでノード数を倍にした時(+R130程度)よりは効率が悪化するので、2倍のnpsで+R100ぐらいだと思います。
      なので、8倍で+R300。V100≒RTX3090として、GCT電竜相当のmodelであれば、R4400ぐらいではないかと…。
      // いまは先日のfloodgateの再起動で、レーティングが全体的に下降傾向のようですけども。

      ===

      と、ここまで書いたあと、電竜戦の予行5のページを見るとGCT電竜、V100×8のようで、それのテストの可能性が出てきました。うむむ?
      https://golan.sakura.ne.jp/denryusen/dr2_test5/members.html

    • よく見つけましたね!
      だとしたら、山岡さんのほうで育ててるモデルでしょうね。山岡さんのほうは、プログラムの改良等の実験を含むので、育ててるモデルはあんまり本気でない感もありますね。

  2. >> 入力特徴に盤面の駒の配置の他に、利き数と王手がかかっているかという情報を加えている

    『利き』は重要なんですかね??

    • 重要なようです。ブロック数が大きければ、利きを入力せずとも良いのかもしれませんが、10ブロックでは利きを入れるとずいぶん棋力に差が生じるようです。

  3. Deepの進化はすごいですね。
    もうとっくにここ最近のものはAlphaZero超えてる感じなのですか?
    ドスパラ賞もあるみたいで、応援しています!!

コメントを残す

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