
2026/09/29 6:26
ESP32S3 クラスタで動作する 1.58 ビット(BitNet)言語モデル
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
分散型推論エンジンを用いることで、スライスされた 0.5B の BitNet 言語モデルが ESP32-S3 マイコンコントローラー 7 台に跨って実行され、低コストハードウェアが大規模 AI タスクの共同処理を実現することが示されました。クラスタアーキテクチャは、高速 SPI デイジーチェーンを介して接続された 1 つのマスターノードと 6 つの計算ノードから構成され、リソース制限のあるエッジデバイス上でデータを効率的に管理するためにカスタムファームウェアを活用しており、1.58 ビット三元演算および SPI DMA 転送を利用しています。本プロジェクトは ESP-32-s3-Story-maker-LLM や BitNet アーキテクチャ概念といった先行取り組みから着想を得ており、BitNet 向けにクオント化対応トレーニング (QAT) テクニックを拡張し、電力制限環境におけるパフォーマンス最適化を図っています。システムはモデル層を戦略的に分割しており、マスターノードがトークン化(BPE)、INT4 エンベッディング(フラッシュメモリ上に約 14MB)、最終的な RMS ノルム、言語モデルヘッダー、および貪欲サンプリングを担当し、計算ノード 1 と 6 がそれぞれレイヤーブロック 0–3 および 20–23 をホストします。これらには 1.58 ビットのアテンション層と MLP 層が搭載されています。主要なファームウェアコンポーネントには
bitlinear.cpp、qwen_attention.cpp、および lut_table.cpp が含まれます。開発者は提供されている Python スクリプト(例:crop_token.py、bit4_embedding.py)を用いてモデルの準備、トークンシーケンスを 32K に Crop 処理、マルチスレッドによるフラッシング手順の実行など、すぐにこの設定を実装できます。包括的なガイドでは、配線接続、パーティションテーブルの設定 (partitions.csv)、ファームウェアのフラッシング、外部依存関係なしに推論ワークフローを開始する方法までを網羅しています。結論として、このオープンソースソリューション(MIT ライセンス)は、高価な単一プロセッサへの依存ではなく、安価なマイコンコントローラーをクラスタ化することで高度な AI 機能を導入することを可能にし、教育および専門的な産業アプリケーション向けに高度なエッジ AI をアクセス可能にします。本文
ESP32-S3 複数デバイスにおける分散型パイプライン推論エンジン
BitNet 言語モデル(1.58 ビット精度)の適用
アーキテクチャ概要
本プロジェクトでは、0.5B パラメータの大規模言語モデル(LLM)をスライス分割し、7 基の ESP32-S3 クラスター上で動作させます。システムは「マスターノード」と「ワーカーノード」に分かれて構成されており、以下の役割分担を持っています。
- マスターノード:
- トークナイザー(BPE)
- 埋め込みベクトル層
- ファイナル処理および出力生成
- ワーカーノード (6 基):
- 注意機構(Attention)レイヤー
- MLP(多層パーセプトロン)演算
デバイス間通信
- マスターノードとワーカーノードの間は、高速な SPI デイジーチェーン(直列接続)を通じて通信を行います。
システム構成図
┌─────────────────────────────────────────────────────────┐ │ マスター ノード │ │ │ │ [ プロンプト ] ---> BPE トークナイザー │ │ │ │ │ トークン埋め込み │ │ (INT4 精度、フラッシュメモリ約 14MB) │ │ │ │ │ (SPI CH A - ノード 1 へ送信) │ └───────────────────────┬─────────────────────────────────┘ │ ヒッドン状態ベクトル(FP32) ▼ ┌─────────────────────────────────────────────────────────┐ │ コーPUT ノード 1 │ │ (SPI CH B - マスターからの受信) │ │ │ │ ► レイヤー 0〜3(4 ブロックのトランスフォーマー) │ │ • RMSNorm(FP16 を FP32 スケールして処理) │ │ • **1.58 ビット精度**の注意機構(Q,K,V,O プロジェクト層)+RoPE │ │ • KV キャッシュ(PSRAM 使用) │ │ • **1.58 ビット精度**の MLP(Gate, Up, Down プロジェクト層) │ │ │ │ (SPI CH A - ノード 2 へ送信) │ └───────────────────────┬─────────────────────────────────┘ │ ...(ノード 2〜5 の同様の構成) │ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ コーPUT ノード 6 │ │ (SPI CH B - ノード 5 からの受信) │ │ │ │ ► レイヤー 20〜23(4 ブロックのトランスフォーマー) │ │ • **同上の 1.58 ビット精度**アーキテクチャ │ │ │ │ (SPI CH A - マスターへ返送) │ └───────────────────────┬─────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ マスター ノード │ │ (SPI CH B - ノード 6 からの受信) │ │ │ │ ファイナル RMS Norm │ │ (FP16 精度、'fnorm' パーティションに 64KB 確保) │ │ │ │ │ LM ヘッド(INT4 埋め込みと結合) │ │ │ │ │ グリディサンプリング │ │ │ │ │ [ 出力 ] <--- 次のトークン ID │ └─────────────────────────────────────────────────────────┘
プロジェクト構造
プロジェクトの開始については、
をご参照ください。workflow.md
ディレクトリ構成
: プロジェクトの説明文書README.md
: ビルドファイルおよびバイナリに対する git ignore 規則.gitignore
: アーキテクチャ図およびハードウェア写真docs/images/
ファームウェアソースコード
マスターノード (master_board/
)
master_board/ESP-IDF ベースのファームウェアです。
: マスターオーケストレーター、ユーザー I/O および BPE トークナイザーの実装main/main.cpp
: INT4 埋め込みの検索ロジックmain/embedding.cpp
: LM ヘッドのマッピングおよびグリディサンプリングmain/lm_head.cpp
: マスター用のデュアルチャネル SPI ドライバーmain/spi_bus.cpp
: カスタムパーティションテーブル(トークン、モデル、fnorm)partitions.csvCMakeLists.txt
ワーカーノード (node_firmware/
)
node_firmware/ESP-IDF ベースのファームウェアです。
: ワーカーノードのエントリーポイントおよび推論ループmain/main.cpp
: 1.58 ビット精度の三元線形レイヤー実装main/bitlinear.cpp
: 1.58 ビット精度向けに最適化されたアセンブリ MAC 演算main/bitlinear_forward.S
: Qwen 注意機構、RoPE および KV キャッシュのランタイム処理main/qwen_attention.cpp
: 極限まで性能を向上させるためのルックアップテーブルmain/lut_table.cpp
: デイジーチェーン SPI DMA リシーバーおよびトランスmittermain/spi_bus.cpp
: ノード用のレイヤーパーティション配置partitions.csvCMakeLists.txt
PC 側ツール (python_tools/
)
python_tools/量子化および事前処理のためのスクリプト群。
| スクリプト | 機能 |
|---|---|
| 語彙のトリミング(トークン数を 32K に縮小) |
| 埋め込み行列のスライシング処理 |
| BitNet QAT(Quantization-Aware Training)によるファインチューニング |
| 埋め込み用の INT4 重みパッカー |
| トークナイザー規則を ESP32 ファイル形式へシリアライズ |
| 物理的なアライメントに対応するための 1.58 ビットレイヤーチャンクのバンドル化 |
| ファイルの構造を確認するためのデバッグツール |
| マルチスレッド高速フラッシャースクリプト |
ライセンス
本プロジェクトは MIT ライセンスのもとで配布されています。詳細は
ファイルをご確認ください。LICENSE
謝辞・参考文献
- [ESP-32-s3-Story-maker-LLM]: ESP32-S3 単一ノードでの量子化 LLM デプロイメントのコンセプト提供
- [esp32s3-distributed-ai]: マイクロコントローラー上でのマルチノード分散 AI アーキテクチャに関するインスピレーション
- [BitNet]: 1.58 ビット精度の三元量子化概念およびアーキテクチャ