spikingjelly: 大規模スパイキングニューラルネットワークの学習と推論のための PyTorch ネイティブフレームワーク

spikingjelly: 大規模スパイキングニューラルネットワークの学習と推論のための PyTorch ネイティブフレームワーク

解決する課題

SpikingJelly は、スパイキングニューラルネットワーク(SNN)の開発、学習、デプロイを簡素化することを目的とした PyTorch ネイティブフレームワークです。スパイキングニューロン特有の時間的ダイナミクス(従来の人工ニューラルネットワーク(ANN)とは異なる)を扱うためのインフラを提供しつつ、PyTorch エコシステムとの互換性を保ちます。

仕組み

このフレームワークはスパイキングニューロンモデル(例: LIFNode)とサロゲート勾配を統合し、標準的な勾配ベースの最適化で SNN を学習できるようにします。torchcupytriton の複数のアクセラレーションバックエンドをサポートし、ニューロンカーネルの実行を最適化します。従来の AI から移行するユーザー向けに、既存の人工ニューラルネットワークをスパイキング版に変換する ANN2SNN ツールも提供しています。

対象ユーザー

ニューロモルフィックコンピューティング、スパイクベースインテリジェンス、エネルギー効率の高い AI に取り組む研究者・開発者、そしてイベントベースデータセットを機械学習ワークフローに組み込みたい方を対象としています。

ハイライト

  • PyTorch ネイティブ API: 親しみやすい PyTorch nn.Sequential とモジュールパターンで SNN を定義できます。
  • 高性能バックエンド: cupytriton をサポートし、ニューロン実行を高速化します。
  • ニューロモルフィックデータサポート: ASL-DVS、N-MNIST など、多種多様なイベントベースデータセットへの組み込みアクセスが可能です。
  • デプロイ準備完了: NIR、Lava、Lynxi を介したニューロモルフィックハードウェアへのモデルエクスポートインターフェースを提供します。
  • スケーリングツール: メモリ効率の高い学習(memopt)やマルチ GPU ワークロード向けの分散実行を含みます。

Sources