spikingjelly: 大規模スパイキングニューラルネットワークの学習と推論のための PyTorch ネイティブフレームワーク
spikingjelly: 大規模スパイキングニューラルネットワークの学習と推論のための PyTorch ネイティブフレームワーク
解決する課題
SpikingJelly は、スパイキングニューラルネットワーク(SNN)の開発、学習、デプロイを簡素化することを目的とした PyTorch ネイティブフレームワークです。スパイキングニューロン特有の時間的ダイナミクス(従来の人工ニューラルネットワーク(ANN)とは異なる)を扱うためのインフラを提供しつつ、PyTorch エコシステムとの互換性を保ちます。
仕組み
このフレームワークはスパイキングニューロンモデル(例: LIFNode)とサロゲート勾配を統合し、標準的な勾配ベースの最適化で SNN を学習できるようにします。torch、cupy、triton の複数のアクセラレーションバックエンドをサポートし、ニューロンカーネルの実行を最適化します。従来の AI から移行するユーザー向けに、既存の人工ニューラルネットワークをスパイキング版に変換する ANN2SNN ツールも提供しています。
対象ユーザー
ニューロモルフィックコンピューティング、スパイクベースインテリジェンス、エネルギー効率の高い AI に取り組む研究者・開発者、そしてイベントベースデータセットを機械学習ワークフローに組み込みたい方を対象としています。
ハイライト
- PyTorch ネイティブ API: 親しみやすい PyTorch
nn.Sequentialとモジュールパターンで SNN を定義できます。 - 高性能バックエンド:
cupyとtritonをサポートし、ニューロン実行を高速化します。 - ニューロモルフィックデータサポート: ASL-DVS、N-MNIST など、多種多様なイベントベースデータセットへの組み込みアクセスが可能です。
- デプロイ準備完了: NIR、Lava、Lynxi を介したニューロモルフィックハードウェアへのモデルエクスポートインターフェースを提供します。
- スケーリングツール: メモリ効率の高い学習(
memopt)やマルチ GPU ワークロード向けの分散実行を含みます。
Sources
- undefinedfangwei123456/spikingjelly