Lightweightのコンセプト
GCT電竜が第一回電竜戦で成功を修めてから、各将棋ソフトのDLへの転換をよく耳にします。
現在進行形のやねうら王はもちろん、色々なチームがDL化を行うのかな......と考えてますが、またそれによって更にAWSによる大規模クラスタ勢も増えてきそうでもあります。
もちろん、高いインスタンス借りてぶん回すのがDL勢の結果に一番作用するとは思うのですが、ここで将棋ソフト「Lightweight」はあえて別の方向に進んでいこうと思ってこれを書いています。
ここでようやく表題である開発コンセプトの話となるわけですが、LWのコンセプトは「下克上スタイル」です。
動機としては、エンジニアリングの大体の目指すところは効率化、小型化、軽量化なのでそれに習う形かなと。電話しかり、自動車しかり。
とりあえず試してみようと思っている手法がいくつかあるのだけど、問題はそれの実装力&dlshogiソースの解読力。
pythonならなんとかなりそうだけど、例えば指手生成やPUCTアルゴリズムを用いた探索部などはC++で書かれているため苦手意識が半端ない。(とか言ってるけど、そもそもPytorch自体も使ったことなくて死にそうになってる)
まあ、いきなり全て手をつけようとすると間違いなく破綻するので、まずはモデルと学習部分の解読から始める予定。