2021年9月27日月曜日

コンピュータ将棋ソフトを動かす。

 先日のブログでも触れたように、おじさんonnxruntimeを自由自在に使えるようになりました。

いつもMNISTばっかりだとつまらないので、ディープラーニングのふかうら王をビルドしてみました。


https://yaneuraou.yaneu.com/

https://github.com/yaneurao/YaneuraOu


このソースコード本当によく整備されています。

ディープラーニング系も非ディープラーニング系も誰でも簡単にいろいろなビルドオプションでビルドができます。


囲碁とか将棋のディープラーニングのソフトは、モンテカルロツリー検索 (MCTS)をしてゲームプレイの手を決定するんですね。

ソースコードを見ているだけで本当にいろいろ勉強になります。

ソースコード少ないし、簡単にビルドできるし、将棋ソフトってディープラーニングや強化学習の勉強にとっても良い?


いろんな条件で学習させたデータで将棋ソフト同士を対戦させるのも面白いね。

elmo囲い強いなぁとか将棋の勉強にもなります。


BERTを使った将棋ソフトもあるようです。

https://github.com/nyoki-mtl/bert-mcts-youtube

いままで全然気づかなかったけれど、たしかに、NLPの文章の単語入力と将棋の盤面データ入力はデータ構造的には似てるもんね。


実際に将棋ソフトをカスタマイズしてビルドして動かしてみてわかったのですが、

これ学習結果を利用してコンピュータ将棋ソフトを動かすだけでも相当スペックの高いPCがいるね。

人間よりめちゃくちゃ強いけど人間よりめちゃくちゃ遅い。

それで藤井聡太さんがRyzenThreadripperを買うのね。

さらに、学習結果を利用するだけでこれこんだけ遅いから、将棋を学習させるのに1000万円くらいのGPUがいる。


将棋に限らず、ディープラーニング系のソフトを動かすといつも思うのですが、このブログで書いているようなことを学習させるのに、だいたい100万円位のGPUが8枚くらいいります。

腕時計に例えると、

ロレックスサブマリーナ、ロレックスサブマリーナ、

ロレックスサブマリーナ、ロレックスサブマリーナ、

ロレックスサブマリーナ、ロレックスサブマリーナ、

ロレックスサブマリーナ、ロレックスサブマリーナ、


ロレックスをじゃんじゃん買えるような人でないと最先端のディープラーニングの学習ってできないのです。


おじさんの持ってるGPUは腕時計でいうとSeiko5

見た目は似てるよねー。

おじさんも日本語のBERTやりたかったのですが、ディープラーニングって一部のお金持ちしか学習させることができないのでしょうか?

一般の人が買えるGPUで学習させられるのはMNISTとRESNET50くらいだよね。

みんなどうやって学習させてるの???


0 件のコメント:

コメントを投稿