Lightweightのモデル公開(WCSC33ver)

第33回世界コンピュータ将棋選手権で使用していたLightweightのモデルファイルを公開します。 モデルファイルのみの公開のため、USIエンジンについてはdlshogiのビルド済みエンジン等をそのまま利用ください。 特徴 ・EfficientNetを主体とした軽量モデル※で…

Lightweightのモデル公開

第3回世界将棋AI電竜戦 (本戦/ハード統一戦)で使用していたLightweightのモデルファイルを公開します。(1/15時点ではまだ準決勝以降を残していますが、Lightweightは進出していないため先に公開します) モデルファイルのみの公開のため、USIエンジンにつ…

探索木の可視化

第3回世界将棋AI電竜戦も終わってひと段落がついたので、掲題の通り、前から気になっていた探索木の可視化をやってみました。将棋ソフト界隈ではαβ法などの説明でよく登場する探索木ですが、将棋ソフト開発者側も基本的にいつも見えているのはGUIが表示して…

【dlshogi】Google Colabのノートブック上でdlshogiのビルドができないときに

最近Google Colabでdlshogiをビルドしようとしたら躓いたのでメモを残しておきます。GCTの加納さんが公開されている以下ノートブックですが、 2022/11/7現在に実行しようとすると、usiのビルド部分でエラーを吐かれます。 colab.research.google.com 色々調…

探索部の実験メモ

Lightweightの探索部は基本的にdlshogiに倣っており、下記式が最大となるノードを選んでいます。 特に、の部分については、以下のように求めています。(これもdlshogi通りです) ここで、の部分に注目してみると、 は局面において選択した全ての手の合計回…

第32回世界コンピュータ将棋選手権に出場してきました

GWの2022年5月3から5日にかけて、「第32回世界コンピュータ選手権」が開催されました。 将棋ソフト関連大会の中では一番歴史が古い大会で、1990年から毎年開催されています。 今回、自分が開発する「S.Lightweight-EF」も本大会に参加してきましたので、忘れ…

S.Lightweight-EFについて

第32回世界コンピュータ将棋選手権が終わりましたが、そちらに出場していた「S.Lightweight-EF」について記載します。 どちらにしろ後からアピール文書としても出し直しますが、主にそちらには書かない部分について言及しようと思います。 ■概要 dlshogiをベ…

KL情報量調査の追試

少し前に山岡さんがdlshogiにおけるKL情報量の調査と時間制御への実装を行っていました。 手数毎におけるPolicyと各子ノードの訪問回数それぞれの確率分布の差異を可視化することで、 将棋、特にdlshogiにおいてはどこに時間をかけて探索するべきなのかがよ…

入力特徴量作成処理改善の取り込み&NPS測定

先日、本家dlshogiのほうで入力特徴量作成の速度改善が行われていたため、Lightweight-EFにも取り込みました。 また、同時にNPSの測定も行いましたので結果を以下に記載しています。 【測定結果】 ■前提 DNNモデル:第2回電竜戦で使用したLightweight-EF CP…

マルチGPU化を試してみる②

先日、マルチGPU化を実施しましたが、それによる性能測定や比較は実施できていなかったので今週末に実施しました。 また、ちょうどdlshogi本家側でマルチストリーム対応がなされていたので、それも同時に測定・比較を行っています。 【ベンチマーク測定】 ■…

ベンチマーク用スクリプトを使いやすくする

dlshogiに付属するベンチマーク計測用のスクリプトについて、少し使いにくい点があったためコードを一部書き直しました。■不便であった点 今回いじったbenchmark.pyは、スクリプト内にベタ書きされた局面を読み込み、それを秒読み指定で局面数分ループを回し…

マルチGPU化を試してみる①

第2回電竜戦も終了し、今年の大会がひと段落したところで以前より検討していたマルチGPU化を実施してみました。 実はdlshogiは既にマルチGPUによるスケールアウトに対応しているのですが、未だに自身のAWSアカウントのvCPUの上限緩和がされないため、本当に…

第2回世界将棋AI電竜戦に出場してきました

2021/11/20(土)に第2回電竜戦が開催されました。 7月のTSECに引き続き、自分も出場してきましたのでその所感をつらつらと書きます。 出場ソフトは全部で44チームで、ソフトのみ/人間のみ/ソフトと人間の合議制のパターン何れかで出場が可能。人間のみでの参…

第2回 電竜戦TSECを終えて

将棋ソフトの大会はいくつか存在して、いちばん世間的にも有名だったもので言うと電王戦なのですが、今は無くなってしまったため現在は以下のものが主な大会なんじゃないか思います。(自分で知っている限りは) ・世界コンピュータ将棋選手権 ・電竜戦 今回…

TensorRTへの最適化処理で落ちる現象とその解決

dlshogiのnetwork構成をTransformer系の一つであるViTに変えて学習させたのち、onnxファイルの作成まで漕ぎ着けたは良いものの、その後のtensorRTへの最適化でかなり苦戦したため、ここに備忘録として残します。 つい先日network構成を変えたものを作ったの…

パラメータカウント機能を追加する

掲題の通り、train_rl_policy_with_value_using_hcpe_bootstrap.pyにパラメータのカウント機能を追加しました。 この辺の機能は調べればツールとか既存のライブラリもありそうでしたが、上記ファイルを実行直後に分かるのでこれはこれで重宝しています。コー…

【朗報】Lightweightくん、やねうら王に初勝利した模様

掲題の通り、山岡さん、加納さんが公開されているデータセットを使って地道に育てていたLW(Lightweight)くんが遂にやねうら王(YaneuraOu NNUE 6.00 64ZEN2 TOURNAMENT)に勝利しました。 最初期は24手で敗北一直線だったことを考えると、かなり感慨深いです。…

Lightweightのコンセプト

GCT電竜が第一回電竜戦で成功を修めてから、各将棋ソフトのDLへの転換をよく耳にします。 現在進行形のやねうら王はもちろん、色々なチームがDL化を行うのかな......と考えてますが、またそれによって更にAWSによる大規模クラスタ勢も増えてきそうでもありま…

dlshogiのNetwork改造 2

掲題の件ですが、改造したNetworkで何度か学習を回してみたのでここで振り返ります。 結果は以下の通り。 GCT電竜のデータセットの一部を使用。 ■結果 学習データ :floodgate2008〜2013 テストデータ:floodgate_teacher_uniq-test-01 学習局面数 :33,539,…

【悲報】生後1日のLightweightくん、やねうら王に24手で敗北してしまう

感想、やねうら王強い。 と、一文で終わらせたくなるほどの大敗北でした。 まあ、COM将棋トップレベルのやねうら王と、生後1日&一回学習回しただけのDL系ソフトでは結果は火を見るよりも明らかなんですが。 ただ、ここまで圧倒的な差を見せられると 「これ…

学習後にいつまでもモデルが保存されない

仕事から帰ってきてすぐにPCを点け、学習を開始→朝に結果を確認するという生活ルーティンを取っていますが、朝に起きても学習が終わっていない(モデルが保存されていない)ことが続いていました。 ということで、困ったときの味方であるlogging君とprint君…

ONNXでSiLUが使えない件について

実験的にかなり少ないデータで学習させたモデルをONNXにコンバートしようとしたところ、SiLUはサポートされていないと怒られました。 これはおそらくONNXのバージョンのせいかと思われますが、アップデートしてまた動作確認して...という手間が激しく嫌なの…

dlshogiのNetwork改造 1

最近、dlshogiの環境構築が終わってようやくプログラムの方へ手をつけられるようになってきました。 ただ、掲題で改良と書かずに改造と書いたのにはちゃんと理由があって、それは良い方向に転がるか分からないからです。 実装の元ネタとなる論文とかを見た感…

自己紹介

ブログ自体は過去に一度作っていましたが、用途は分けたかったので新設しました。 興味のある機械学習や普段の日記としても活用する方針です。