4ドルのマイコンでパイプラインパラレリズムを実現:42Mモデルの分割
このオープンソースプロジェクトは、2つのESP32-S3マイコン上でLlamaアーキテクチャの大規模言語モデルをパイプライン推論する方法を示し、単一チップのメモリ制限を突破して最大42Mパラメータのモデルをサポートします。ESP32クラスのハードウェアで初のマルチチップパイプラインLLM推論であり、INT4量子化とUART通信を使用し、0.5〜1.4 tok/sの速度を実現します。
最近、組み込みAIコミュニティで「ESP-32-s3-Story-maker-LLM」というオープンソースプロジェクトが注目を集めています。このプロジェクトは、2つのESP32-S3マイクロコントローラ上でLlamaアーキテクチャの大規模言語モデルをパイプライン並列推論することに成功し、総パラメータ数42Mに達し、単一のESP32-S3チップの16MBフラッシュと8MB PSRAMの制限を突破しました。
開発者のharmansingh4163-aiによるこのプロジェクトの核となるアイデアは、LLMのレイヤーを2つのチップに分割することです。重みはINT4量子化(グループ内で32スケールを共有)され、メモリマップドフラッシュパーティションにストリーミングされ、RAMはまったく使用しません。計算では、アクティベーションはINT8精度を維持し、整数精度のグループ内ドット積を使用し、各行列乗算行は各チップの両方のLX7コアに分割されます。2つのチップ間はUARTで接続され、転送速度は460800 bps、データフレーム形式はA5 5A | cmd | len | payload | CRC16で、トークンあたり約1.2KBの往復データ量があり、トークン処理時間の約3%に相当します。
信頼性を確保するため、プロジェクトは厳格な検証を行いました:すべてのテスト可能なコンポーネントはハードウェアに先立ってテストされ、フォワードパスはNumPy参照と3e-7以内の誤差で一致し、分割されたパイプラインモデルはモノリシックモデルとビット完全一致し、UARTプロトコルはファズテストされ、ノイズを無視しCRCエラーのフレームを正しく拒否することが確認されました。既存のESP32 LLM移植プロジェクトと比較して、このプロジェクトはパラメータ数と出力品質で大幅な向上を示しています:単一のESP32-S3で15Mパラメータモデルを実行すると約1.4 tok/sで複数段落のストーリーを生成でき、デュアルボード構成では42Mパラメータモデルで約0.5 tok/sを目指し、より一貫したプロットを生成します。
このプロジェクトを使用するには、ある程度のハードウェアとソフトウェアの知識が必要です:シングルボードモードでは16MBフラッシュと8MB PSRAMを備えたESP32-S3が1つ、デュアルボードモードでは2つのボードと3本のジャンパーワイヤーが必要です。開発者は、モデルのダウンロード、量子化、フラッシュ書き込み、ファームウェアのコンパイル、ハードウェア接続の詳細な手順を提供しています。プロジェクトはシリアル経由での対話をサポートし、ユーザーはプロンプトを入力してストーリーを生成し、コマンドで温度、トップpサンプリング、生成長さなどのパラメータを調整できます。将来の計画には、実機での42Mモデルの測定、PIE SIMD命令による行列乗算の高速化、PC不要のタッチスクリーンUIの開発が含まれています。