Electriz — PyTorch NNUE を搭載した UCI チェスエンジン
概要
Electriz は、UCI(Universal Chess Interface)プロトコルに準拠したチェスエンジンで、PyTorch による NNUE 評価(ResNet ベース)を組み合わせています。従来のアルファベータ探索とニューラルネットワーク評価を併用し、PGN からの教師あり学習パイプラインを通じて評価関数を学習可能です。性能目標として 25M NPS が掲げられており、TCEC 等の大会参加を意識した設計になっています。学術的・実験的な実装として、Python での迅速な開発と実験が可能です。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 4
- ファイル数: 8
- メインの言語: Python
主な特徴
- UCI プロトコルに完全対応したエンジンインターフェース
- アルファベータ探索(マテリアル評価併用)による探索基盤
- PyTorch による ResNet ベースの NNUE 評価ネットワーク
- PGN を用いた教師あり学習パイプラインと TCEC 対応を意識した設計
技術的なポイント
Electriz の技術的ハイライトは「古典的な探索」と「モダンな学習ベース評価」の組合せです。探索部はアルファベータ法を中心に据え、評価関数として PyTorch 実装の NNUE(ResNet 風アーキテクチャ)を呼び出します。NNUE の利点は局所的な差分更新が効く点ですが、本実装は Python+PyTorch であるため、C++ 実装に比べ推論レイテンシやスループットの面で制約が出やすいです。そこで想定される技術的対策として、TorchScript/ONNX による静的最適化、半精度(FP16)推論、バッチ化・マルチプロセス推論、量子化や pruning、さらには C++ バインディング(libtorch)や SIMD 命令を用いた高速化などが挙げられます。学習面では PGN からの教師データ整備と損失設計、過学習対策が重要で、対局データのフィルタリングやデータ拡張(可逆変換)も有効です。またエンジン性能向上のための探索改善(反復深化、トランスポジションテーブル、ムーブオーダリング、null-move、LMR、PVS など)や評価関数と探索の協調学習(例:自己対局で強化学習)への拡張も将来的な方向性です。TCEC を目指す場合は一貫した速度計測・プロファイリングと C++ 部分の導入が鍵になります。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file(ビルド中に無視するファイル指定)
- LICENSE: file(ライセンス情報)
- README.md: file(プロジェクト概要と使用方法)
- electriz: dir(エンジン本体の Python モジュール)
- (内部には探索、評価、UCI インターフェース等の実装が含まれている想定)
- pyproject.toml: file(依存管理とパッケージ設定) …他 3 ファイル
リポジトリは小規模で、エンジンコア、NN モデル定義、学習スクリプト、UCI ハンドラが一通り含まれている構成です。README によれば ResNet ベースの NNUE と PGN からの学習パイプラインが主要なコンポーネントになります。
まとめ
Python+PyTorch で手早く実験できる NNUE チェスエンジンの良い出発点。
リポジトリ情報:
- 名前: electriz
- 説明: 説明なし
- スター数: 1
- 言語: Python
- URL: https://github.com/Timodur/electriz
- オーナー: Timodur
- アバター: https://avatars.githubusercontent.com/u/114092280?v=4
READMEの抜粋:
Electriz
A UCI chess engine with PyTorch NNUE (Efficiently Updatable Neural Network) evaluation.
Features
- UCI Protocol: Full UCI (Universal Chess Interface) compatibility
- AlphaBeta Search: Classic alpha-beta pruning with material evaluation
- PyTorch NNUE: ResNet-based neural network for position evaluation
- Training Pipeline: Supervised learning from PGN games
- Performance: Targeting 25M NPS (nodes per second)
- TCEC Ready: Designed for Top Chess Engine Cha…