青野流再来(2021)

青野流と言えば現在横歩取り戦法が減った原因である先手の急戦策ですが,

個人的には第5回電王トーナメントでshotgunが勝ち上がった得意戦法でもあります。

当時は評価値を出しても互角なのに手が進むとどうしても先手が良くなるという蟻地獄のような仕掛けになっていました。

実際後手は丁寧に受けていれば長手数の将棋には出来るのですが当時のコンピュータや棋士でこれが出来るかと言えば相当困難なものでした。

 

その後棋士もコンピュータも後手で横歩を避けるようになりました。また,避けなくても相当定跡を準備して受けるなどの工夫が必須となりました。

 

時代は変わったのを今日感じました。(事後公開予定ですが2021年4月29日に書いています)

WCSC31に投入予定スペック(A100x16)の二番絞りが数秒で深さ55程度まで読んで横歩青野流へと手を進めました。探索が浅いと角換わり相掛かりに進むはずですし,後手が横歩へ誘導しても36飛と引く形が本シリーズ評価値の特徴だったはずです。

ハイスペックマシンの影響で探索が深くなった場合,青野流の方が評価値判断でも良いと結論付けたようです。これも計算機の能力向上のお陰です。

 

さて,選手権では横歩局面は出現するのでしょうか?

 

二次予選結果

リアルタイムで御覧になった方はもう分かっていると思います。

 

live4.computer-shogi.org

 

白ビール無敗の1位通過,二番絞り11位予選落ちでした。

 

決勝行くつもりだった二番絞りスタッフとして言い訳しておきます。

まず長時間の探索が生かせないって印象は40ブロックと大きなモデルを使ってるウチに限ってはありませんでした。

むしろ見たことが無いレベルでえげつないくらいです。

  

  

当日GCPインスタンスが立ち上がらないってオチでした。

リハーサルの半分で本戦を迎えるのはちょっと厳しいですね。

事前にシアトルに打診しておけばよかったかも。

floodgateに流れているのは予選用のモデルですが,決勝用のモデルは別に用意しておりました。そのうち供養としてfloodgateにでも流します。

  

白ビールの方はアレですね。

意外とやりますね。

floodgateでは吊るしのサンドバッグになってますが基本的に弱くはないんですかね。

 

一昨年の引き分けを気にして,前回のオンライン大会では全部勝つつもりで千日手を無理に避けたのが仇となりました。今回はその辺戻しています。

それからクラスタ構成は昨年と同じ。(一昨年とは違います)

あと小さいところで2,3味付けでしょうか。

 

昨日もそうですが,準備が全て。あとは祈るだけです。

 

画像

世界コンピュータ将棋選手権参加へのお誘い

www2.computer-shogi.org

 

明日開催です。

公式中継サイトも頑張ってくれているのでオンライン観戦も楽しめると思います。

また多くの参加者がリアルタイムで動画配信されるとの噂です。

私もどこかに顔出すかもしれません。

ということで余裕あれば複数接続して頂けると尚面白いかもしれません。

 

ところで,このタイミングですが未だ開発が終わっていない参加者がいるようです。

選手権への参加者はオンライン対戦が出来なければならないのですが,将棋所を用いるとUSIプロトコルと言うもので対戦練習出来ていれば問題ありません。

実装すべきものは以下です。

1.USIプロトコルのパーサ

2.受け取った局面での合法手生成

3.どの手を指すかの決断(これを世間ではAIと呼ぶ)

 

本来1,2は軽く終わらせて3が主題のはずの大会です。1と2は敢えて言うとどこかの実装を参考にコピーしても良いところです。

じゃ,どれを参考にってことなんですがスクラッチ勢初心者は以下をお勧めしておきます。

短いので飽きずに移植できると思います。短すぎて何してるか分からない人は丁寧に解釈してみましょう。

展開した方が高速化するとか気づいたら貴方には高速化の才能があるということです。

大変シンプルな実装なのでどの部分も少し改良するだけですぐに強くなります。

最初の強敵は将棋所同封のLesserKaiです。

 

 

Python勢は以前も紹介したpython-shogiか山岡さんのcshogi使いましょう。

AobaZeroが40ブロック移行だそうです

戦いは数だよ兄貴!」と或る方が仰ってました。

 

github.com

 

AobaZeroで遊ぼうシリーズを随分やって来ましたが初めて追われる立場になりました。

40ブロック移行に関してのみ私の方が若干先行していたわけです。

 

bleu48.hatenablog.com

 

調子に乗ってこいつを主軸に強化学習を進めてきましたがどうやら桁違いの計算機リソースを要求するようでほぼ学習が進んでおりません。

といってもうちで最強のモデルは40ブロックであることには変わり有りません。

 

で,AobaZeroが40ブロック化するのでそちらは大量の計算機を利用されるので今後はそっちの棋譜を流用する二番絞りになりそうです。

 

うちの方は40b_n013_RTX3070が40ブロック化して13番目のファイルですが,RTX3070を擁してfloodgate上レート4000ちょいといったところです。まぁ,この辺りになると高級スリッパことTR3990X勢にも一発入ることがあるのが楽しみですね。計算速度的には10ブロックの4倍,20ブロックの倍とほぼ比例しているくらいです。

RTX3070で6000nps付近です。

 

で,AobaZeroはどうでしょう。

GTX1060で確認してみました。20ブロックが1400npsで,40ブロックが700npsと丁度半分くらいですね。

他のGPUでのベンチマークは後程追記しようと思います。

 

ついでに気づいたのですがダウンロードファイルサイズはほぼ変わりません。展開したテキストファイルも二倍にはなっていないようで確認したところ有効数字が8桁から6桁に減らされている様子。ということで上記の計算速度から見てチャンネル数などは同じと考えて良さそうです。

 

公式のレート計測が1点だけありましたので確認したところ20ブロックに対して既に100程度の向上があるようです。今後に期待ですね。

もしかして選手権にも40ブロック投入なのでしょうか!?

 

www.yss-aya.com

探索制限入りMCTSの件

前回に続いて探索制限の話

 

bleu48.hatenablog.com

 

甘く考えておりました。

5b_007_1060がレート3600超えてました。

Player Statistics

これを基準に探索制限を800, 12800, 50000と三つやったのですが全部随分下です。

 

思ったよりも酷いことになる感じですね。

探索ノード制限は想像以上に終盤弱くなっているみたいで,特にレート3300の番人技巧にやられています。

 

加えて最弱としてポリシーのみのエンジンも投入しています。

これは最もポリシー精度が高い40ブロックにしてありますが,レート保持エンジンには全然勝てません。

AobaZeroのポリシーのみが2000台(山下さんのBBSより)ってのはうちの子より高精度ってことなんでしょうか?探索して5手詰見逃すエンジンが探索なしで詰ますのは偶然なんでしょうか。 

---

追記:

結局40ブロックのポリシーのみでは100戦以上やってもレートが付きませんでした。どこかで偶然回戦切れとかで1勝できればって感じでした。

やねさんも同意見でそのまま棋譜覚えた序盤は初段以上あるだろうけど中盤以降両取りは見えないし級位レベルだろうなとの話でした。 

やはり将棋の華は中終盤ですね。

コンピュータ将棋の近況(2021年4月)

変な時間に起きてしまったので寝起きポエムでも書きます。

先日も講演依頼があったので恥ずかしいが簡単な自己紹介から入りました。

コンピュータ将棋参加は2017年の第5回電王トーナメントからで,電王トーナメントを見たのはその前年か第3回かくらいだったと思います。そもそも機械学習というものを触ったのが2017年でした。

偶然にも初参加で準優勝して以来世界選手権参戦し4年間1位か2位を維持しています。相当の強運かと感じます。

 

誤解があってはいけないのですが,まず例年皆相当強くなってます。

私は研究職と言う立場上技術的なものは独占より広く普及する方が良いと思っているので説明データが整い次第公表するようにしてます。参考にして頂いていることが多いので一年後には類似技術が普及する様子は分かります。

新技術を導入したものに対して単純な古典的レーティングを出すのは誤解が多くあまり適したものと思っていないので伏せておきますが,一年ごとに強化されており二年差あると別世界と言えるレベルで対戦成績が出ます。戦型もがらっと変わっている雰囲気です。

つまり一度上位を得たといってそれを維持するのは相当向上しているってことです。

上位陣の入れ替えを見れば分かるかもしれません。

 

それに加え強い方が勝つってのも漠然とした話でfloodgate的にも下剋上はイメージしているより多く発生しているのは分かると思います。

経験的にKristallweizenの評価関数公開直後などは非常に対戦成績が安定していたのですが,これは同じ評価関数で性能の違うPCで多数投入されていたんじゃないかと推察しています。これは完全に強弱で勝ち負けがきれいに割れます。

現状選手権前ってこともあって多種多様のエンジンが投入されています。特に私は多目に放り込んでいます。

 

正直運がいいだけだと第5回電王トーナメントでは思っていましたが,ある程度データを取ると統計的に優位が示されるという感じになっています。ただ,強い弱いが一列に並ぶイメージは未だもっていません。単純に戦型って話でもありません。

ざっくり将棋はそんなに浅くないって感じでしょうか。

事実私が事前調査した頃と比較して,平均手数でも相当変化が出ているとCSA瀧澤会長も近年強く強調されています。今は200手以上の棋譜が珍しくなくなりました。

もしかすると近いうちに囲碁棋譜より長くなるのかもしれませんし,既に序盤中盤終盤の分類基準が変わって来ている感じもしています。定量的な再定義ができればとか考えています。

 

ええ,割とカオスな思考状態ですしそういう乱戦だと認識しています。

選手権前はfloodgateに投入して自分の位置を確認するのはそういう不安を払しょくする意味があるのでしょう。

実験系のエンジンは低めに,古い評価済みエンジンは高めのマシンで放り込んであります。興味ある人は御確認頂ければと思います。

Kristallweizen-TR2990WXが上位にいるままなんです。二年前の評価関数に二年前のPCです。ちょっと胃液上がってくる気分ですね。

 

今年の選手権は特に深層学習系がエントリー多いようですので対戦相性的な問題が多数発生しそうで乱戦必至といった感じでしょう。

たらたらと書いているうちに何か頭の整理になると思ったのですが無理ですね。

今年の選手権には松下さんに無理言って白ビールと二番絞りの両方を投入します。

floodgateより少し上の世界を二日間だけお見せできると思います。

(十分準備ができているとは言ってない)

p800という制限

f:id:the48:20210420092124p:plain

 

AobaZeroでp800を基準で投入されてます。最近になってポリシーのみの対局でレート2150程度と実験されてます。

コンピュータ将棋や囲碁の掲示板

 

うちの子もfloodgateで5b, 15b, 40bを投入してみました。

15bと40bは代り映えがしない感じでAobaZeroと同じゾーンにおりますね。5bは2800しかありませんので,探索ノード数を4倍にしてみましたが結局3000に満たない感じです。(ただ,これ3200ノードにしてもGTX1060で1秒未満です)

 

大凡分かるのが15bと40bはAobaZeroと遜色ないくらい学習ができている感じです。(贔屓目に見ると15bとか勝ってるようにも見える)

5bは同ノード比較すると論外だけど15bの三倍速く計算可能なので時間当たりノード数は相当伸びます。同GPUでノード制限なしならAobaZeroよりやや強いところまで行くかんじです。

 

で,ノード制限ってのが相当弱くなるのが分かりますが,これでいいのかってことですね。例えばp800だとKristallweizenの1000kとelmoの10Mとgikou2_1cが三枚僅差のレートで抑え込む形になってます。たまたまレート順に探索ノード数が多く,これは探索深さ順にもなっていると思われます。

そこでふと考えてみるとp800ってどこまで深く探索可能だろうかと。もしかして評価関数関係なくp800でこれら(特に後者二つ)を打ち負かすのって相当高難易度なんではないかと考えました。

 

真面目に書いてると卒論くらいのネタにはなるでしょうか?

---

 さらに4倍してp12800放流中です。こういうのを見る限りp800では頭押さえられるんじゃないかという仮説が強化されます。