ESP32S3 クラスタで動作する 1.58 ビット(BitNet)言語モデル

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
    : プロジェクトの説明文書
  • .gitignore
    : ビルドファイルおよびバイナリに対する git ignore 規則
  • docs/images/
    : アーキテクチャ図およびハードウェア写真

ファームウェアソースコード

マスターノード (
master_board/
)

ESP-IDF ベースのファームウェアです。

  • main/main.cpp
    : マスターオーケストレーター、ユーザー I/O および BPE トークナイザーの実装
  • main/embedding.cpp
    : INT4 埋め込みの検索ロジック
  • main/lm_head.cpp
    : LM ヘッドのマッピングおよびグリディサンプリング
  • main/spi_bus.cpp
    : マスター用のデュアルチャネル SPI ドライバー
  • partitions.csv
    : カスタムパーティションテーブル(トークン、モデル、fnorm)
  • CMakeLists.txt

ワーカーノード (
node_firmware/
)

ESP-IDF ベースのファームウェアです。

  • main/main.cpp
    : ワーカーノードのエントリーポイントおよび推論ループ
  • main/bitlinear.cpp
    : 1.58 ビット精度の三元線形レイヤー実装
  • main/bitlinear_forward.S
    : 1.58 ビット精度向けに最適化されたアセンブリ MAC 演算
  • main/qwen_attention.cpp
    : Qwen 注意機構、RoPE および KV キャッシュのランタイム処理
  • main/lut_table.cpp
    : 極限まで性能を向上させるためのルックアップテーブル
  • main/spi_bus.cpp
    : デイジーチェーン SPI DMA リシーバーおよびトランスmitter
  • partitions.csv
    : ノード用のレイヤーパーティション配置
  • CMakeLists.txt

PC 側ツール (
python_tools/
)

量子化および事前処理のためのスクリプト群。

スクリプト機能
crop_token.py
語彙のトリミング(トークン数を 32K に縮小)
crop_model_weight.py
埋め込み行列のスライシング処理
qat_158.py
BitNet QAT(Quantization-Aware Training)によるファインチューニング
bit4_embedding.py
埋め込み用の INT4 重みパッカー
pack_tokenizer_bin.py
トークナイザー規則を ESP32
.bin
ファイル形式へシリアライズ
pack_model_bin.py
物理的なアライメントに対応するための 1.58 ビットレイヤーチャンクのバンドル化
look_model_structure.py
.safetensors
ファイルの構造を確認するためのデバッグツール
flash_*.bat
マルチスレッド高速フラッシャースクリプト

ライセンス

本プロジェクトは MIT ライセンスのもとで配布されています。詳細は

LICENSE
ファイルをご確認ください。

謝辞・参考文献

  • [ESP-32-s3-Story-maker-LLM]: ESP32-S3 単一ノードでの量子化 LLM デプロイメントのコンセプト提供
  • [esp32s3-distributed-ai]: マイクロコントローラー上でのマルチノード分散 AI アーキテクチャに関するインスピレーション
  • [BitNet]: 1.58 ビット精度の三元量子化概念およびアーキテクチャ

同じ日のほかのニュース

一覧に戻る →

2026/09/29 5:23

ジェフ - ホームで学習した Jev 互換の 08B 意思決定モデル、約 30ms

## Japanese Translation: 「Jeff」スートは、**Qwen3.5**および**Gemma 4**アーキテクチャに基づく独立したファインチューニング済みモデルの集合であり、テキスト生成や外部パースなしで超高速なゼロショット分類を可能にします。これらの Apache 2.0 ライセンス付きモデル(NVIDIA GPU/PyTorch または Apple silicon MLX 経由の `uv` で入手可能)は、単一のフォワードパスで校正された確率を返し、ハイエンド消費者向けハードウェア上での意思決定時間は約**22–30ms**(より大きな独立したプロジェクトに比べて著しく高速)です。従来の手法とは異なり、TypeSafe Jev エコシステムとは互換性を持つが affiliated ではないリクエストフォーマットを用いて、ローカルコードに直接スロットリングします。ベンチマークでは、Jeff モデルが分類やグラウンディングタスクにおいて未トレーニングのベースモデルと同等かそれ以上に優ることが示されています(例:Jeff-Qwen3.5-2B のスコアは 83.1 で、Jev の 83.0 を上回っています)が、小さいパラメータ数においては推論能力には限界があります。重要な点は、成功は特定のプロンプトフォーマットに依存しており(標準的な Jev プロンプトでは機能せず、結果の文言を明記する必要がある)、選択肢の構造が一貫していることです。このスートは軽量パイプライン向けの展開で独自の利点を提供し、一部のバリエーションはファインチューニングを通じて特定のゲーム様態タスクにおいてより大きなモデルを上回るパフォーマンスを示しますが、開発者は 2B バリエントにおける潜在的なリスク回避傾向や、高いベンチマークスコアが必ずしもプレイアビリティの信頼性を保証するわけではないという注意点に対処する必要があります。

2026/09/26 19:16

12,000年前のゲベクレテペ墓から分骨の謎が解明された

## Japanese Translation: 考古学者は、トルコの Göbeklitepe における埋葬慣行を解明し、先陶器新石器時代 B 期(紀元前 8700–8000 年頃)に属する未発掘の地下 2 つの埋葬を検出しました。Burial 1 は、L09-65 トレンチ内の長方形建物の床下に発見され、少なくとも 3 名の遺骸が含まれていました:女性(35 歳以上)、男性(20–30 歳)、少女(11–14 歳)。Burial 2 は DR1 トレンチに位置し、左側を向いて屈曲した東向きで寝ている 20–30 歳の青年女性でした。どちらの埋葬も切断痕、熱損傷、またはオクロを使用していない点で特徴的であり、骨は齧歯類による咬み跡および圧力あるいは石灰質堆積物による骨折を示していました(これらは Burial 2 の大部分を破片化しました)。これらの通常の床下墓は後に土壌移動や斜面崩壊によって乱され、緩い骨の断片が斜面を下ってモニュメンタルな建物へと運ばれました。このプロセスは、1995 年以来回収された数百個の散在する断片(単独の頭蓋を含む)を説明し、遺骸の混雑が単一の異常な儀式の結果ではなく、主に自然な移動によるものであることを示しています。これにより多くの証拠の説明が可能となりますが、以前の意図的な頭蓋変形や頭蓋骨断片のより高い比率は、一部の個人が依然として特別扱いを受けたことを示しており、複数の慣習が共存していた可能性が高いです。これらの発見は Göbeklitepe の新石器時代埋葬伝統の解釈を再構築させ、研究者が各断片が独特な儀式に属するとは見なすことなく人口動態パターンを再構築することを可能にします。今後の研究では、直接年代測定と詳細な骨分析を通じてこれらの異なる慣行が発生した時期を特定することに焦点を当てます(PloS One, 2026 年発表)。

2026/09/29 3:58

マイクロLLM ラブブラウザで7つの超小型LLMを試せ

## 日本語訳: ## まとめ: 本システムでは、ブラウザセッション内での持続的なデコード速度と精度を測定することで AI モデルのパフォーマンスベンチマークを行い、すべてのデータがプライバシー保護された状態かつローカル環境で留まることを保証します。このアプローチは、外部の歴史的な基準値よりもリアルタイム評価を優先し、ユーザーのマシーン上で直接迅速な反復を可能にします。特に、テストフレームワークは、1.35 億パラメータ版のような小型モデルであっても特定のチェックで失敗するよう許容しており、限界を隠蔽せずに正確な機能報告を保証します。パフォーマンス推定値では、利用可能な場合、ユーザーの最新のトークン/秒(tps)値をデフォルトとして採用し、即時的な文脈を提供します。セキュリティと一貫性を確保するため、JavaScript 評価エンジンではページのカレントオリジン内で厳密に `eval()` を使用し、外部コードの注入を防ぎつつ信頼性を維持します。モデルが評価されるにつれ、最新設定されたスイートに基づいてグラフが自動的に生成され、各ランのデコード済みテキスト出力に対する具体的なパフォーマンスを反映します。このローカリゼーションされた手法により、ベンチマークは直近の環境に厳密に紐づけられ、クラウドストレージやサーバーサイド履歴への依存を排除しつつ、現在の機能を透明視認可能にし、迅速かつプライバシー保護されたモデル比較を促進します。

ESP32S3 クラスタで動作する 1.58 ビット(BitNet)言語モデル | そっか~ニュース