AI News HubLIVE
サイト内リライト2 分で読了

8ドルのマイクロコントローラで2890万パラメータのLLMを実行

開発者が約8ドルのESP32-S3マイクロコントローラ上で2890万パラメータの言語モデルを実行することに成功。GoogleのGemmaモデルに由来するPer-Layer Embeddings技術を用いて、ほとんどのパラメータをフラッシュメモリに格納している。テキスト生成は完全にデバイス上で行われ、約9.5トークン/秒の速度で動作。従来の26万パラメータモデルからの大幅な進歩である。

ソースHacker News AI著者: boveyking

最近、ある開発者が約8ドルのESP32-S3マイクロコントローラ上で、2890万パラメータを持つ言語モデルを実行することに成功しました。このモデルはチップ上で完全にローカル動作し、サーバーにデータを送信することなく、接続された小型画面に毎秒約9.5トークンの速度でテキストを生成します。これはマイクロコントローラ上での言語モデル実行における大きな飛躍です。従来の同種モデルの最大パラメータ数は26万でしたが、新しいモデルはその100倍以上のサイズを誇ります。

要点:パラメータ総数2890万(うち2500万はフラッシュルックアップテーブルに格納);チップはESP32-S3、512KB SRAM、8MB PSRAM、16MBフラッシュを搭載;生成速度は約9.5トークン/秒;4ビット量子化後のモデルサイズはわずか14.9MB。

マイクロコントローラのSRAMは非常に限られているため(512KB)、従来はモデル全体をSRAMに常駐させる必要があり、小さなモデルに制限されていました。解決策はGoogleのGemmaモデルで使われているPer-Layer Embeddings(層ごとの埋め込み)技術です。言語モデルの巨大な埋め込みテーブル(2500万行)を低速なフラッシュメモリに格納し、各トークンに必要な約450バイトだけを読み出すことで、実際の計算を行う小型のコア部分は高速SRAMに残します。これにより、大規模モデルの大部分が実行リソースをほとんど消費せず、フラッシュに静置され、少量ずつサンプリングされるだけになります。プロジェクトの作者によれば、これほど小さなチップでこの設計を試みた例はこれまでになかったとのことです。

このモデルはTinyStoriesデータセットで学習されているため、短く一貫性のある物語を生成することに特化しています。質問応答、指示追従、コード作成、事実提供はできません。この制限は推論を担当する小型のコア部分に起因しており、フラッシュのトリックがそれを変えることはありません。このプロジェクトの意義は、巨大モデルを極小チップに収めるアーキテクチャの可能性を示したことにあり、モデルそのものの能力の高さではありません。

プロジェクトはGitHubでオープンソース化されており、ファームウェア、配線手順、トレーニングおよび量子化コードが含まれています。開発者は、パラメータ計算のバグにより数値が膨張していた初期の誤りとその修正過程を含む、混乱したコミット履歴を意図的に残しており、参考資料として提供されています。また、Andrej Karpathy氏のllama2.cプロジェクトに触発されており、限られたハードウェアでも巧妙なメモリ管理により比較的複雑な言語モデルを実行できることを示しています。リポジトリ内のRESULTS.mdには、実験手法、アブレーション研究、オンチップ測定結果が詳細に記録されており、今後の研究の貴重な参考資料となっています。