cpldcpu/BitNetMCU

Neural Networks with low bit weights on low end 32 bit microcontrollers such as the CH32V003 RISC-V Microcontroller and others

何を解決するか

BitNetMCU は、非常に限られたメモリ(例:2KB RAM と 16KB Flash)を持つ極めて低性能なマイコン(CH32V003 など)上で高精度のニューラルネットワークを実行できるようにします。また、ハードウェア乗算命令を備えていないマイコンにも対応可能です。

動作方法

本プロジェクトは、PyTorch をベースとしたトレーニングパイプラインを使用しており、Quantization Aware Training(QAT)とモデル構造のファインチューニングを採用しています。これにより、モデルをバイナリ、トリナリ、2ビット、4ビット、8ビット、NF4 などの低ビット形式に圧縮できます。トレーニング済みの重みは ANSI-C コードにエクスポートされ、ハードウェア乗算器のないマイコンアーキテクチャを含む、さまざまな MCU で実行可能なポータブルな推論エンジンを提供します。

対象ユーザー

TinyML に注力する組み込み開発者や AI 研究者で、特に RISC-V や ARM Cortex-M0 マイコンといった極めてリソース制約の厳しい環境にニューラルネットワークをデプロイしたい方。

特徴

  • 極めて高いメモリ効率:MNIST で最大 99.55% の精度を達成しながら、16KB Flash と 2-4KB RAM に収まる。
  • 乗算を必要としない推論:乗算命令を使用せずに推論を実行できる量子化スキームをサポート。
  • 柔軟な量子化:バイナリ、トリナリ、NF4、非対称 4 ビット量子化など、幅広い低ビット形式をサポート。
  • ポータブルな C エンジン:ANSI-C で実装された推論エンジンにより、さまざまなマイコンアーキテクチャへの移植が容易。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト