2021-01-01から1年間の記事一覧
dlshogiをOpenCLに対応させたいと思っている。 現在のdlhsogiはTensorRTを使用しているため、再配布の制限があり、環境構築が大変になっている。 OpenCLは、必要なdllを同梱すれば環境構築が不要になるので利用者にメリットがある。OpenCLのコードを一から作…
先日の水匠とdlshogiの長時間マッチの第1局で、水匠側にバグが発生するというハプニングがあった。 原因などの詳細は、やねうら王ブログを参照して欲しい。 先日の電竜戦、長時間マッチで現れたやねうら王のバグについて | やねうら王 公式サイトここで、こ…
dlshogiの先手勝率について質問されることがあるので、計測してみた。持ち時間1分1秒加算で、dlshogi(dr2_exhi)の自己対局と、dlshogiと水匠4の対局で計測した。 対局条件が持ち時間だと、ある程度手が揺らぐため完全に同じ手順になるのは防ぐことができる。…
ほぼ個人用メモ。「改訂新版 OpenCL入門 1.2対応 マルチコアCPU・GPUのための並列プログラミング」を買って、OpenCLをお勉強中。 OpenCL 1.2とバージョンが古いが、KataGoもOpenCL 1.2で実装されているので問題ない。 そもそもNVIDIAはOpenCLに対してやる気…
dlshogiは現在TensorRTを使用しているが、TensorRTは再配布できないなどライセンスが厳しいのと、環境構築が大変なため、OpenCLに対応させたいと思っている。OpenCLでも、NVIDIAのGPUのTensorCoreをPTXインラインアセンブリという方法で使用することができる…
dlshogi(第2回世界将棋AI電竜戦エキシビジョンバージョン)のWindows版ビルド済みファイルを公開します。 ダウンロード Release 第2回世界将棋AI電竜戦エキシビジョンバージョン · TadaoYamaoka/DeepLearningShogi · GitHub のAssetsからダウンロードしてくだ…
明日8/15(日) 17:00から、私の開発した「dlshogi」と電竜戦TSEC優勝ソフト「水匠」との長時間マッチを行います。 対局の様子は、YouTubeとニコニコ動画で生配信されます。 先手、後手入れ替えて計2局行います。 第1局は、阿部健治郎七段と佐々木勇気七段のダ…
前回、neuronコアを複数使用して推論を行うことを試した。 今回は、推論速度の測定を行った。参考にしたいのは、dlshogiでの推論速度であるため、C++のdlshogiの推論部分に組み込んで、どれくらいのNPSがでるのかを確認した。 C++での推論の実装方法 C++でne…
前回AWS inf1 インスタンスでdlshogiのモデルの推論ができることを確認したが、今回はマルチGPUで推論できるかを確かめてみた。マルチGPUにするには、Inferentia チップが複数あるAWS inf1 インスタンス(inf1.6xlargeとか)が必要と思っていたが、よく調べる…
dlshogiをAWS inf1 インスタンスで動かせないか試している。 AWS inf1 インスタンスは、推論に特化したAWS Inferentia チップが搭載されている。現在のdlshogiは、TensorRTを使用して推論を行っているため、NvidiaのGPUで動かすことが前提になっている。 onn…
ほぼ個人用メモ 参考文献管理 Mendeleyを使う。論文の場合は、PDFを登録する。書籍の場合は、Google Scholar ボタンを使用して、Bib Tex形式をコピーしてMendelayに張り付ける。 参考: Google Scholarプラグインから書籍のBibTeXを取得してMendeleyに突っ込…
7/17~18にかけて実施された第2回 電竜戦TSECにdlshogiというソフトで参加しました。 チームとしてはGCT電竜でも参加しています。 第2回世界将棋AI 電竜戦TSEC -中継サイトファイナルリーグとB級リーグに分かれて実施されて、7/3に行われた予選で上位2チーム…
開発しているPythonの高速な将棋ライブラリcshogiに、ブラウザでUSIエンジン同士の対局が行える機能を追加した。 python -m cshogi.web.app --engine1 E:\game\shogi\gikou2_win\gikou.exe --engine2 E:\game\shogi\apery_wcsc28\bin\apery_wcsc28_bmi2.exe …
備忘録 settings.jsonのprofilesのリストに以下の設定を追加する。 { "closeOnExit": true, "colorScheme": "Campbell", "commandline": "cmd.exe /c \"set CHERE_INVOKING=1&& set MSYSTEM=MINGW64&& C:\\msys64\\usr\\bin\\bash.exe --login\"", "fontFace…
同一データを学習した際に、ResNetのブロック数とフィルタ数とSE(Squeeze-and-Excitation)有無により、精度、強さがどう変わるかを比較した。 比較対象 ResNet 10ブロック、192フィルタ ResNet 15ブロック、224フィルタ ResNet 20ブロック、256フィルタ 上の…
今までdlshogiの学習を行うために、python環境を作成して、boostをインストールして、C++からPythonモジュール(cppshogi)をビルドしてという手順が必要だったが、pipコマンドでインストールできるようにPyPIに登録した。 pip install dlshogiアップデートの…
dlshogiの学習では、SWA(Stochastic Weight Averaging)を導入している。今までは、1世代学習するごとに、平均化した重みを出力して、次の世代ではその重みを使用して学習していた。 しかし、SWAは通常複数エポックに渡って平均化してから、最後に平均化した…
以前に、dlshogiの自己対局でノードの再利用を行うと、テスト損失が上昇する(過学習する)という問題が起きたことを書いた。方策の分布を学習するようにしたため、問題も起きにくくなっている可能性があるので、ノードの再利用(ルートノードはクリア)を行…
以前にdlshogiで方策の分布を学習できるようにしたが、方策の分布を学習したモデルで対局すると、指し手のみを学習したモデルよりも弱くなるという問題が起きている。 温度パラメータの調整である程度強くできたが、指し手のみを学習したモデルには及んでい…
世界コンピュータ選手権も終わったので、feature/hcpe3やfeature/hcpe3_averageに分かれていたブランチをmasterに統合して整理した。 リファクタリング 重複局面の平均化や、評価値の補正をオプション(それぞれ--use_averate、--use_evalfix)で有効/無効化で…
dlshogi with GCTのWCSC31バージョンのモデルの学習に使用したデータセットを公開します。https://drive.google.com/drive/u/3/folders/1Lkh4HL0tMx9p3NNbHue9lvh_HOSBGxhv加納さんのご厚意により、Googleドライブの無料枠を大幅に上回る容量を提供してもら…
Discordで、評価値と勝率を変換する際の以下のシグモイド関数の係数aは、dlshogiはelmo_for_learnの自己対局から求めた756.0864962951762という値を使用しているが、floodgateの棋譜などを学習する場合はもっと低い値になるので補正すべきというやり取りがあ…
dlshogi with GCT(WCSC31バージョン)のWindows版ビルド済みファイルを公開します。 ダウンロード Release 第31回世界コンピュータ将棋選手権バージョン · TadaoYamaoka/DeepLearningShogi · GitHubNVIDIA GPUに対応したTensorRT版と、NVIDIA GPU非搭載のWi…
「dlshogi with GCT」として、第31回世界コンピュータ将棋選手権に参加しました。 本日は予選2日目で、dlshogiはシードのため2日目からの参加でした。 上位8チームが決勝進出になります。結果は、30チーム中14位と決勝進出ならず残念な結果でした。昨年の電…
dlshogiの自己対局で生成したデータを学習すると、方策損失がNaNになるというissueをもらった。 自己対局棋譜を用いるとPolicyのlossがNaNになる · Issue #44 · TadaoYamaoka/DeepLearningShogi · GitHub 原因 実際にデータをもらって、調査したところ、強化…
プログラムの修正やモデルを学習した後の強さの計測に変更前後の自己対戦のみだと、系統が違うソフトに対して強くなっていないことがあるため、基準となるソフトを加えたリーグ戦で確認を行っている。連続対局には、cshogiを使用して、PGNファイルを出力して…
以前に方策の分布を学習することで、Actor-Criticで学習するよりも精度が上がることを確かめた。 dlshogiの強化学習でも、方策の分布を学習するように移行した。しかし、テストデータに対する精度は上がるが、実際に対局すると弱くなっているという問題が発…
コンピュータチェスのCeresでは、PUCTによるノード選択の処理をAVXを使って高速化している。 これは、Ceres独自の「parallelized descent algorithm」(並列降下アルゴリズム)と合わせて使用することで、効果を発揮するもののようだ。Ceresで実際にどれくら…
前回の続き。 dlshogiの強化学習で、方策の分布を含む棋譜を生成し、そのデータを用いてモデルの学習を行い、方策の分布の有無による精度の違いを検証した。 棋譜生成 dlshogiの自己対局で、200万局面(29315棋譜)を生成した。 学習条件 Resnet10ブロック、活…
以前に、指し手を学習するより、方策の分布を学習した方が、方策の精度が上がるということを書いた。 しかし、現在、dlshogiの強化学習で生成している教師局面フォーマット(hcpe)では、方策の分布を記録していない。そこで、方策の分布を出力できるように、…